mirror of
https://github.com/we-promise/sure.git
synced 2026-06-04 18:29:02 +00:00
* fix: Replace platform-wide broadcast_refresh with sync toast Instead of calling family.broadcast_refresh on every sync completion (which reloads the page for all connected family members), broadcast a lightweight static toast to the existing notification-tray. A new sync-toast Stimulus controller handles two cases: - User is idle (no focused form): auto-reloads after 500ms - User is mid-form: toast stays visible with a manual Refresh button This prevents in-progress form state from being wiped when a background sync fires (e.g. adding a transaction, filling an import form). The toast partial contains no user-scoped data, so the Current.user nil constraint in background jobs is no longer a concern. * fix(a11y): add explicit button types and aria-label to sync toast controls * fix(sync-toast): improve interaction detection and replace broadcast strategy - Increase auto-refresh delay from 500ms to 2000ms - Expand interaction detection to include contentEditable, dialogs, and role="dialog" elements - Switch from broadcast_append_to to broadcast_replace_to with dedicated #sync-toast target - Add explicit id="sync-toast" to partial for targeted replacement - Move sync_toast i18n keys from defaults/en.yml to views/shared/en.yml * fix(sync-toast): replace hardcoded white icon color with inverse token