useAsyncCallbackDedup<T> function
Implementation
Future<T?> Function() useAsyncCallbackDedup<T>(
Future<T> Function() block,
List<Object?> keys,
) {
final cur = useRef<Future<T>?>(null);
final cb = useCallback(
() {
if (cur.value != null) {
return Future<T?>.value();
}
cur.value = block();
return cur.value!.whenComplete(() => cur.value = null);
},
keys,
);
return cb;
}