diff --git a/lib/components/debounce.dart b/lib/components/debounce.dart new file mode 100644 index 0000000..dda6999 --- /dev/null +++ b/lib/components/debounce.dart @@ -0,0 +1,18 @@ +import 'dart:async'; +import 'dart:ui'; + +class Debounce { + factory Debounce() => _instance; + + Debounce._(); + + static final Debounce _instance = Debounce._(); + + static Timer? _timer; + + static void run(VoidCallback action, + {Duration delay = const Duration(milliseconds: 500)}) { + _timer?.cancel(); + _timer = Timer(delay, action); + } +}