hi-client/lib/utils/riverpod_utils.dart
2025-10-13 18:08:02 +08:00

24 lines
414 B
Dart
Executable File

import 'dart:async';
import 'package:hooks_riverpod/hooks_riverpod.dart';
extension RefLifeCycle<T> on AutoDisposeRef<T> {
void disposeDelay(Duration duration) {
final link = keepAlive();
Timer? timer;
onCancel(() {
timer?.cancel();
timer = Timer(duration, link.close);
});
onDispose(() {
timer?.cancel();
});
onResume(() {
timer?.cancel();
});
}
}