fix(balance): pre-seed balance_starter_proposed pref for new profiles (S1)
Before this commit, a brand-new profile briefly showed the StarterAccountsModal even though the 4 starter accounts were already seeded — the modal rendered 4 collision rows with no actionable choice before being dismissed. Pre-seeding the pref in consolidated_schema.sql suppresses the modal on first /balance visit for new profiles entirely. Existing profiles already running the app are unaffected: they handle the modal once on their first /balance visit (the pref-write happens on dismiss). No migration is needed for them. Suggestion S1 from PR #185 review (#187). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
8c3a64d172
commit
445822b792
2 changed files with 9 additions and 4 deletions
|
|
@ -288,6 +288,12 @@ INSERT OR IGNORE INTO user_preferences (key, value) VALUES ('theme', 'light');
|
|||
INSERT OR IGNORE INTO user_preferences (key, value) VALUES ('currency', 'EUR');
|
||||
INSERT OR IGNORE INTO user_preferences (key, value) VALUES ('date_format', 'DD/MM/YYYY');
|
||||
INSERT OR REPLACE INTO user_preferences (key, value) VALUES ('categories_schema_version', 'v1');
|
||||
-- Suppress StarterAccountsModal on first /balance visit for new profiles
|
||||
-- (Issue #179). The 4 starter accounts are already seeded above, so the
|
||||
-- modal would only show 4 collision rows with no actionable choice. Pre-
|
||||
-- writing the pref skips that briefly-empty UX entirely. Suggestion S1
|
||||
-- from PR #185 review (#187).
|
||||
INSERT OR IGNORE INTO user_preferences (key, value) VALUES ('balance_starter_proposed', '{"shown_at":"seed","accepted":[]}');
|
||||
|
||||
-- ============================================================================
|
||||
-- Seed v1 — IPC Statistique Canada-aligned, 3 levels, Canada/Québec
|
||||
|
|
|
|||
|
|
@ -58,10 +58,9 @@ export default function BalancePage() {
|
|||
|
||||
// Issue #179 — one-shot starter-accounts modal for existing profiles. The
|
||||
// pref `balance_starter_proposed` is written once (confirmed or dismissed),
|
||||
// so the modal never re-appears. New profiles get the 4 starters seeded
|
||||
// directly via consolidated_schema.sql and never hit this branch (the
|
||||
// first /balance visit will write the pref with accepted=[] silently
|
||||
// since collisions match all 4).
|
||||
// so the modal never re-appears. New profiles get both the 4 starters AND
|
||||
// the pref pre-seeded via consolidated_schema.sql, so they never hit this
|
||||
// branch at all (S1 fix from #187).
|
||||
const [showStarterModal, setShowStarterModal] = useState(false);
|
||||
useEffect(() => {
|
||||
let cancelled = false;
|
||||
|
|
|
|||
Loading…
Reference in a new issue