mirror of
https://github.com/gabehf/Fladder.git
synced 2026-03-13 17:30:31 -07:00
fix: Lots of navigation improvements
This commit is contained in:
parent
c299492d6d
commit
5174bb3a6c
55 changed files with 1019 additions and 832 deletions
|
|
@ -2,19 +2,22 @@ import 'package:flutter/material.dart';
|
|||
|
||||
class Throttler {
|
||||
final Duration duration;
|
||||
int? lastActionTime;
|
||||
int? _lastActionTime;
|
||||
|
||||
Throttler({required this.duration});
|
||||
|
||||
bool canRun() {
|
||||
final now = DateTime.now().millisecondsSinceEpoch;
|
||||
if (_lastActionTime == null || now - _lastActionTime! >= duration.inMilliseconds) {
|
||||
_lastActionTime = now;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void run(VoidCallback action) {
|
||||
if (lastActionTime == null) {
|
||||
lastActionTime = DateTime.now().millisecondsSinceEpoch;
|
||||
if (canRun()) {
|
||||
action();
|
||||
} else {
|
||||
if (DateTime.now().millisecondsSinceEpoch - lastActionTime! > (duration.inMilliseconds)) {
|
||||
lastActionTime = DateTime.now().millisecondsSinceEpoch;
|
||||
action();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue