TimerModel class

A countdown timer model.

The timer counts down from timeout duration, ticking at interval intervals. When the timer reaches zero, it sends a TimerTickMsg with timeout: true.

Example:

final timer = TimerModel(timeout: Duration(seconds: 30));
final (model, cmd) = timer.init();
// Start the timer
final (model2, cmd2) = model.update(TimerStartStopMsg(true, model.tag));
Inheritance

Constructors

TimerModel({required Duration timeout, Duration interval = const Duration(seconds: 1), DateTime nowProvider()?})
Creates a new timer model.

Properties

hashCode → int
The hash code for this object.
no setterinherited
id → int
Returns the internal ID for this timer.
no setter
interval → Duration
How often the timer ticks.
final
running → bool
Returns whether the timer is currently running.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
tag → int
Returns the tag for this timer instance.
no setter
timedOut → bool
Returns whether the timer has timed out (timeout <= 0).
no setter
timeout → Duration
The duration to count down from.
final

Methods

copyWith({Duration? timeout, Duration? interval, bool? running, int? id, int? tag}) → TimerModel
Creates a copy of this model with the given fields replaced.
init() → Cmd?
Initializes the timer.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
start() → Cmd
Creates a command to start the timer.
stop() → Cmd
Creates a command to stop the timer.
toggle() → Cmd
Creates a command to toggle the timer on/off.
toString() → String
A string representation of this object.
inherited
update(Msg msg) → (TimerModel, Cmd?)
Updates the timer based on incoming messages.
override
view() → String
Returns the view of the timer.
override

Operators

operator ==(Object other) → bool
The equality operator.
inherited