debounce method

void debounce(
  1. void callback(
    1. String text
    ), [
  2. Duration duration = const Duration(seconds: 1)
])

Calls callback after the user stops typing for duration.

This is a simple debounce mechanism for text input. Example:

controller.debounce((text) {
  print("User typed: $text");
}, Duration(milliseconds: 500));

Implementation

void debounce(
  void Function(String text) callback, [
  Duration duration = const Duration(seconds: 1),
]) {
  Timer? timer;
  addListener(() {
    timer?.cancel();
    timer = Timer(duration, () {
      callback(text.trim());
    });
  });
}