timeRemaining method

Future<Duration> timeRemaining()

Gets the remaining time until the cooldown ends.

Returns Duration.zero if the cooldown has expired or was never activated.

Implementation

Future<Duration> timeRemaining() async {
  final last = await _lastActivated.get();
  if (last == null) return Duration.zero;
  final end = last.add(duration);
  final now = DateTime.now();
  return end.isAfter(now) ? end.difference(now) : Duration.zero;
}