import 'dart:async'; import 'dart:ui'; import 'package:flutter/cupertino.dart'; 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); } }