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
|
|
|
}
|