Files
Remever/lib/components/debouncer.dart
2025-03-03 20:59:42 +03:00

51 lines
1.1 KiB
Dart

// 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);
}
}