Skip to content

Add widgets - #82

Merged
alanvardy merged 15 commits into
mainfrom
alanvardy-var-1065-add-widgets
Sep 27, 2026
Merged

alanvardy merged 15 commits into
mainfrom
alanvardy-var-1065-add-widgets

Conversation

@alanvardy

Copy link
Copy Markdown
Owner

No description provided.

@linear-code

linear-code Bot commented Sep 26, 2026

Copy link
Copy Markdown

VAR-1065

@alanvardy
alanvardy marked this pull request as ready for review September 27, 2026 03:07
@alanvardy
alanvardy force-pushed the alanvardy-var-1065-add-widgets branch from a3379f1 to 230db05 Compare September 27, 2026 03:07
@alanvardy
alanvardy force-pushed the alanvardy-var-1065-add-widgets branch from 230db05 to d711ead Compare September 27, 2026 11:31
@alanvardy
alanvardy force-pushed the alanvardy-var-1065-add-widgets branch from d711ead to b843763 Compare September 27, 2026 11:40
The label text made the button read "Create reminders" inside the
widget; the multi widget already used an icon-only button. Keep the
localized string as the accessibility label so VoiceOver still
announces the action.
The single-checklist widget now shows a big circular play button filling
the space under the checklist name. The multi-checklist widget's row
titles move from .body to .title3 so the list reads larger.
A widget renders snapshots, so the app's play -> spinner -> checkmark
pattern needs persisted state rather than view-model state:

- WidgetRunStateStore (Core) records beginRun/finishRun per checklist in
  the App Group, with the app's 1s spinner floor, a 1.5s check window, an
  abandoned-run timeout, and validated reads.
- RunChecklistIntent marks the run before its EventKit work and finishes
  it after, so the store's reload hook can render the spinner mid-run.
- The display model carries a per-row WidgetRunIndicator, and both widgets
  render it (green check on success, play otherwise).
- Timeline planning emits the entry that drops the check back to the play
  icon, so the sequence completes without another tap.

Only a full success shows the check, matching the app's never-flash-
success rule.
The bordered-prominent fill drew a blue ring around the white
play.circle.fill glyph. A plain style leaves the icon alone as the whole
button, and the success check now colours the glyph itself, matching the
list widget.
@alanvardy alanvardy added land tested Manually verified and removed human labels Sep 27, 2026
@alanvardy
alanvardy merged commit 35c9d87 into main Sep 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

land tested Manually verified

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant