mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-07-20 18:08:55 +00:00
* feat(sync): nudge long-time users without sync to set it up Offline-first means a user who never configures sync has no backup at all; clearing browser data or losing the device wipes everything. Once the app has clearly been used for a while AND holds real data, show a calm, low-priority banner once encouraging sync setup. Trigger combines wall-clock age (>= 7 days since a lazily-seeded FIRST_USE_TIMESTAMP) with a task-count gate (>= 20 tasks), so it is robust both to users who restart many times a day and to those who leave the app running for weeks (where app-start count fails), and never nags an empty/dormant install. Shown at most once: both "Set up sync" and "Not now" persist a dismissed flag; a configured provider suppresses it entirely. Reuses the existing banner system and mirrors NoteStartupBannerService. * refactor(sync): apply review feedback to data-safety nudge - Rename LS.FIRST_USE_TIMESTAMP -> SYNC_SAFETY_FIRST_SEEN and document that it is not a true install date (seeded at upgrade time for existing installs), so no other feature reuses it as one. - Tests: add an unhydrated-config (undefined) skip case and assert the task-count selector, guarding the earlier race fix and a selector swap. - i18n: match each locale's existing register for the nudge message (pt/cs/sk/tr -> formal, id -> informal) per translation review. * test(planner): stabilize add-subtask-from-detail focus race Wait for the detail panel's deferred open-time auto-focus to settle before opening the inline subtask draft. The auto-focus lands ~200ms after the panel opens and, if it fires after the draft input is focused, steals focus and blur-closes the input — making toBeFocused() flake with 'element(s) not found'. Mirrors the guard already used in add-subtask-with-detail-panel-open.spec.ts. |
||
|---|---|---|
| .. | ||
| add-task-bar | ||
| app-features | ||
| autocomplete | ||
| boards | ||
| break | ||
| calendar | ||
| daily-summary | ||
| focus-mode | ||
| import-export | ||
| issue-provider-panel | ||
| keyboard | ||
| menu | ||
| migration | ||
| navigation | ||
| note | ||
| notes | ||
| performance | ||
| planner | ||
| plugins | ||
| project | ||
| recurring | ||
| reminders | ||
| schedule | ||
| search | ||
| settings | ||
| short-syntax | ||
| simple-counter | ||
| sync | ||
| tags | ||
| task-basic | ||
| task-detail | ||
| task-dragdrop | ||
| task-list-basic | ||
| work-view | ||
| workflow | ||
| worklog | ||
| all-basic-routes-without-error.spec.ts | ||