// Dart imports: import 'dart:async'; // Flutter imports: import 'package:flutter/material.dart'; /// /// Компонент для выполнения отложенных операций /// class Debouncer { /// /// Компонент для выполнения отложенных операций /// /// Пример использования /// /// ```dart /// final Debouncer _searchDelayer = Debouncer( /// delay: const Duration(milliseconds: 300), /// ); /// /// Widget _buildButton(BuildContext) { /// return ElevatedButton( /// onPressed: () { /// _debouncer.run(() { /// debugPrint('Type your code here'); /// }); /// }, /// ); /// } /// ``` /// Debouncer({ required this.delay, }); /// Время через которое необходимо вызывать функцию final Duration delay; /// Таймер Timer? _timer; /// /// Запуск отложенного события /// void run(VoidCallback action) { _timer?.cancel(); _timer = Timer(delay, action); } }