Skip to content

v0.9 Phase 3: Settings page (About + Danger zone)#66

Merged
jacuzzicoding merged 1 commit into
developmentfrom
feature/v09-phase-3-settings
May 3, 2026
Merged

v0.9 Phase 3: Settings page (About + Danger zone)#66
jacuzzicoding merged 1 commit into
developmentfrom
feature/v09-phase-3-settings

Conversation

@jacuzzicoding
Copy link
Copy Markdown
Owner

@jacuzzicoding jacuzzicoding commented May 3, 2026

Summary

Phase 3 of v0.9.0-beta per docs/v0.9-plan.md § Phase 3. Adds the /settings route with About and Danger zone sections. No Appearance section per locked decision #3 — Meadow is the only theme in v0.9.

What changed

  • src/components/SettingsPage.tsx — full-page Settings UI: About (version from VITE_APP_VERSION, GitHub source link, live storage summary derived from store, credits) + Danger zone with two confirm()-guarded actions ("Reset donations for active town" ghost, "Reset everything" solid red). Esc + close button navigate back to active town home (or / if no town).
  • src/components/SettingsRoute.tsx — route wrapper that mounts Sidebar + SettingsPage so the sidebar (active town card, nav, footer) stays in place at /settings.
  • src/App.tsx — adds <Route path="/settings" element={<SettingsRoute />} />.
  • src/lib/store.ts — adds resetActiveTownDonations() and resetAll(). resetAll() also clears ac-curator-search-history from localStorage (forward-compatible with the Phase 8 search history key).
  • src/index.css — Settings page styles ported from docs/design-handoffs/v0.9.2_curator/addons-styles.css (.ac-settings*, .ac-about-list, .ac-settings-danger, .ac-danger-*, ac-fade-up keyframe). Responsive collapse at ≤700px (title 56→40px, About list single-column, Danger rows stack with full-width buttons).
  • src/components/Sidebar.tsx — drops the Phase 2 "coming in Phase 3" tooltip on the Settings link.
  • CHANGELOG.md, CLAUDE.md — Phase 3 entries.

Decisions

  • Settings is a top-level route (/settings) rather than nested under /town/:townId/settings. Settings is an app property, not a town property — and a user mid-Reset everything wouldn't have an active town to nest under.
  • "Reset donations for active town" is disabled (not hidden) when there's no active town — keeps Danger zone shape stable.
  • Eyebrow header text is "Museum Tracker", not "Curator". Matches the brand-wordmark choice from Phase 2 (codename note in the plan: no user-facing copy says "Curator").
  • Reset everything clears ac-curator-search-history defensively even though that key isn't written until Phase 8. Safer than coming back later. The legacy in-memory recentSearches from useSearch is naturally cleared by component unmount; nothing to wipe.
  • Used window.confirm() for both danger actions per locked decision feat(home): add home screen with seasonal availability and progress overview #7 — a styled confirm dialog is a v1.0 polish item.

Status

  • npm run build — pass (tsc + vite, no TS errors)
  • npm test — 59 tests pass
  • npm run lint — pass (no typecheck script in this repo; tsc --noEmit runs as part of build)

Test plan

  • Visit /settings from sidebar footer link — page renders with sidebar intact
  • About section reflects live townCount and totalDonations
  • GitHub source link opens in new tab
  • "Reset donations for active town" → confirm → only that town's donations clear
  • "Reset everything" → confirm → all towns + donations gone, redirected to /, search-history key removed from localStorage
  • Esc closes settings (navigates back to /town/:id/home)
  • Close ✕ button does the same
  • Mobile ≤700px: title shrinks, About rows stack, Danger buttons full-width

Out of scope (per plan)

About + Danger zone sections per locked decisions #3 and #7.
No Appearance section (Meadow-only per #2).

- SettingsPage: About (version, source, live storage summary, credits)
  and Danger zone (reset donations, reset everything) with native confirm()
  guards. Esc and close button navigate back to active town home.
- SettingsRoute wrapper renders Sidebar + SettingsPage so the sidebar
  stays in place at /settings.
- Store: resetActiveTownDonations() + resetAll() (also clears
  ac-curator-search-history from localStorage).
- /settings route added in App.tsx; Sidebar Settings button no longer
  carries the Phase 2 "coming soon" tooltip.
- Styles in index.css mirror docs/design-handoffs/v0.9.2_curator/
  addons-styles.css with the Curator-codename strings dropped.

Build, lint, and 59 unit tests pass.
@vercel
Copy link
Copy Markdown

vercel Bot commented May 3, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
animalcrossingwebapp Ready Ready Preview, Comment May 3, 2026 10:38pm

@jacuzzicoding jacuzzicoding merged commit 236fde7 into development May 3, 2026
3 checks passed
@jacuzzicoding jacuzzicoding mentioned this pull request May 4, 2026
6 tasks
@jacuzzicoding jacuzzicoding deleted the feature/v09-phase-3-settings branch May 4, 2026 23:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant