Vaani/lib/shared/hooks.dart

25 lines
624 B
Dart
Raw Normal View History

2024-06-16 22:24:32 -04:00
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
void useInterval(VoidCallback callback, Duration delay) {
final savedCallback = useRef(callback);
savedCallback.value = callback;
2026-01-10 16:51:05 +05:30
useEffect(() {
final timer = Timer.periodic(delay, (_) => savedCallback.value());
return timer.cancel;
}, [delay]);
2024-06-16 22:24:32 -04:00
}
2024-08-20 10:14:07 -04:00
void useTimer(VoidCallback callback, Duration delay) {
final savedCallback = useRef(callback);
savedCallback.value = callback;
2026-01-10 16:51:05 +05:30
useEffect(() {
final timer = Timer(delay, savedCallback.value);
return timer.cancel;
}, [delay]);
2024-08-20 10:14:07 -04:00
}