mirror of
https://github.com/gabehf/Fladder.git
synced 2026-03-07 21:48:14 -08:00
20 lines
508 B
Dart
20 lines
508 B
Dart
import 'package:flutter/material.dart';
|
|
|
|
class Throttler {
|
|
final Duration duration;
|
|
int? lastActionTime;
|
|
|
|
Throttler({required this.duration});
|
|
|
|
void run(VoidCallback action) {
|
|
if (lastActionTime == null) {
|
|
lastActionTime = DateTime.now().millisecondsSinceEpoch;
|
|
action();
|
|
} else {
|
|
if (DateTime.now().millisecondsSinceEpoch - lastActionTime! > (duration.inMilliseconds)) {
|
|
lastActionTime = DateTime.now().millisecondsSinceEpoch;
|
|
action();
|
|
}
|
|
}
|
|
}
|
|
}
|