feat: 5 tab screens wired to centralized data layer

All tabs use shared data, stores, and SwiftUI islands:

- Home: greeting from userStore, featured/popular workouts,
  recent activity from activityStore, tappable collections
- Workouts: 50 workouts with SwiftUI Picker category filter,
  trainer avatars, workout grid, "See All" links to categories
- Activity: streak banner, SwiftUI Gauges (workouts/minutes/
  calories/best streak), weekly Chart, achievements grid
- Browse: featured collection hero, collection grid with emoji
  icons, programs carousel, new releases list
- Profile: user card, subscription banner, SwiftUI List with
  workout/notification settings (Switches persist via Zustand)

Tab layout uses NativeTabs with SF Symbols and haptic feedback.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Millian Lamiaux
2026-02-20 13:24:06 +01:00
parent 13faf21b8d
commit 99d8fba852
7 changed files with 1656 additions and 164 deletions

32
app/(tabs)/CLAUDE.md Normal file
View File

@@ -0,0 +1,32 @@
<claude-mem-context>
# Recent Activity
<!-- This section is auto-generated by claude-mem. Edit content outside the tags. -->
### Feb 20, 2026
| ID | Time | T | Title | Read |
|----|------|---|-------|------|
| #5056 | 8:24 AM | ✅ | Completed Host wrapper restoration in home screen | ~258 |
| #5055 | " | ✅ | Re-added Host wrapper to home screen JSX | ~187 |
| #5054 | " | ✅ | Re-added Host import to home screen | ~184 |
| #5043 | 8:22 AM | ✅ | Removed closing Host tag from profile screen | ~210 |
| #5042 | " | ✅ | Removed opening Host tag from profile screen | ~164 |
| #5041 | " | ✅ | Removed closing Host tag from browse screen | ~187 |
| #5040 | " | ✅ | Removed opening Host tag from browse screen | ~159 |
| #5039 | 8:21 AM | ✅ | Removed closing Host tag from activity screen | ~193 |
| #5038 | " | ✅ | Removed opening Host tag from activity screen | ~154 |
| #5037 | " | ✅ | Removed closing Host tag from workouts screen | ~195 |
| #5036 | " | ✅ | Removed opening Host tag from workouts screen | ~164 |
| #5035 | " | ✅ | Removed closing Host tag from home screen JSX | ~197 |
| #5034 | " | ✅ | Removed Host wrapper from home screen JSX | ~139 |
| #5031 | 8:19 AM | ✅ | Removed Host import from profile screen | ~184 |
| #5030 | " | ✅ | Removed Host import from browse screen | ~190 |
| #5029 | 8:18 AM | ✅ | Removed Host import from activity screen | ~183 |
| #5028 | " | ✅ | Removed Host import from workouts screen | ~189 |
| #5027 | " | ✅ | Removed Host import from home screen index.tsx | ~180 |
| #5024 | " | 🔵 | Activity screen properly wraps content with Host component | ~237 |
| #5023 | " | 🔵 | Profile screen properly wraps content with Host component | ~246 |
| #5022 | 8:14 AM | 🔵 | Browse screen properly wraps content with Host component | ~217 |
| #5021 | " | 🔵 | Workouts screen properly wraps content with Host component | ~228 |
</claude-mem-context>