QuestViewModel class
One caller-supplied quest row — label/progress/target/claimed are
already resolved by the caller (typically read straight off
DailyQuestService.progressOf/targetOf/isClaimed for id); this
widget never talks to that service directly, same "pure/data-driven,
caller owns the source of truth" convention as LeaderboardEntry.
Constructors
Properties
- claimed → bool
-
final
- claiming → bool
-
ENH-70: forwarded to this quest's own Claim
CommonButton.loading— spinner + blocks double-tap while a caller-owned async claim (e.g. a server-validated claim) for THIS quest is in flight.false(default) unchanged from before this existed. Only the quest withclaiming: trueshows a spinner; every other quest in the sameQuestBoardPanelis unaffected, since this lives on each quest's own view model rather than a single flag on the whole panel.final - hashCode → int
-
The hash code for this object.
no setterinherited
- id → String
-
final
- isClaimable → bool
-
Completed but not yet claimed — the only state in which the row's
Claim button is enabled.
no setter
- isCompleted → bool
-
no setter
- label → String
-
final
- progress → int
-
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- target → int
-
final
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited