- Fix reset-filters button being a no-op (referential-equality bug with
the DEFAULT_FILTERS constant) and add an unlimited-distance toggle to
discovery filters
- Replace the "coming soon" settings stubs with working Notifications,
Privacy & Security, and Help & Support pages
- Rework the onboarding profile-questions step to walk users through
one question at a time instead of picking 3 then filling them all at once
- Enforce a 10MB client-side cap on photo uploads (onboarding + profile)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Applies a few Hook Model (trigger/action/reward/investment) patterns on top
of the existing swipe/match loop:
- Daily streak: a flame badge in the home header, backed by the new
checkin endpoint — an external trigger to return daily.
- Profile completeness meter + badge collection on the profile page
(client-computed from existing data) — the investment loop nudging
users to fill out bio/photos/answers.
- Bio editor on the profile page, shown on swipe cards and candidate
detail so profiles read richer.
- Catch the Hearts: a small tap mini-game (falling hearts, bonus items,
20s timer, persisted high score) shown instead of a dead end when the
discover feed runs out, so there's still a reason to stay in the app.
- Micro-animations: heart-burst on like, confetti on match, tap feedback
on all buttons (active:scale-95).
Fixed a React "purity" lint violation along the way (Math.random() can't
be called inside useMemo under this project's rules — moved to useState
lazy initializers, which run once on mount as intended).
- New /onboarding/photos step (upload/delete grid, needs >=1 photo to
continue), inserted as step 2 right after basic info.
- Pending screen gets an "edit your info" entry point into the wizard;
Rejected screen's edit button now goes there too instead of just
the read-only profile page.
- Step 1's back button now returns to /home instead of /login when
the user is already onboarded (was previously always /login).
- Progress bar segments become clickable to jump directly to any step
once the user is already onboarded.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Phone+OTP auth, staged onboarding, admin-approval-gated home screen,
and the full discovery/match/chat UI (swipe deck with drag gestures,
match modal, profile detail, filters, messages/chat) wired to the
real backend, styled after a Figma dating-app UI kit.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>