Millian Lamiaux
3d026b68ee
feat: implement beautiful toast notifications with Sonner
...
- Install sonner package for toast notifications
- Add Toaster component to root layout with dark theme styling
- Replace all alert() calls with toast.success() and toast.error()
- Add descriptive messages for success states
- Toast notifications match the app's dark theme design
2026-03-17 11:45:29 +01:00
Millian Lamiaux
9dd1a4fe7c
feat: add workout form component with advanced test mocking
...
- Add WorkoutForm component for creating/editing workouts
- Implement tabbed interface (Basics, Timing, Content, Media)
- Add form validation and error handling
- Add sophisticated mock infrastructure for Supabase
- Include 32 test cases covering rendering, validation, and submission
- Setup dynamic mock functions for testing different scenarios
2026-03-14 20:42:59 +01:00
Millian Lamiaux
6adf709dce
feat: add media upload component with comprehensive tests
...
- Add MediaUpload component for thumbnails and videos
- Implement drag-and-drop file upload
- Add upload progress tracking
- Include 42 test cases covering all scenarios
- Achieve 90%+ test coverage
2026-03-14 20:42:51 +01:00
Millian Lamiaux
3df7dd4a47
feat: add form input components with tests
...
- Add TagInput component for equipment tags
- Add ExerciseList component for workout exercises
- Both components include comprehensive test suites
- Add data-testid attributes for testability
2026-03-14 20:42:36 +01:00
Millian Lamiaux
71e9a9bdb5
feat: add reusable UI components with tests
...
- Add Select component with test coverage
- Add Switch component with test coverage
- Add Textarea component
- All components follow design system conventions
2026-03-14 20:42:30 +01:00
Millian Lamiaux
2ad7ae3a34
feat: Apple Watch app + Paywall + Privacy Policy + rebranding
...
## Major Features
- Apple Watch companion app (6 phases complete)
- WatchConnectivity iPhone ↔ Watch
- HealthKit integration (HR, calories)
- SwiftUI premium UI
- 9 complication types
- Always-On Display support
- Paywall screen with RevenueCat integration
- Privacy Policy screen
- App rebranding: tabatago → TabataFit
- Bundle ID: com.millianlmx.tabatafit
## Changes
- New: ios/TabataFit Watch App/ (complete Watch app)
- New: app/paywall.tsx (subscription UI)
- New: app/privacy.tsx (privacy policy)
- New: src/features/watch/ (Watch sync hooks)
- New: admin-web/ (admin dashboard)
- Updated: app.json, package.json (branding)
- Updated: profile.tsx (paywall + privacy links)
- Updated: i18n translations (EN/FR/DE/ES)
- New: app icon 1024x1024
## Watch App Files
- TabataFitWatchApp.swift (entry point)
- ContentView.swift (premium UI)
- HealthKitManager.swift (HR + calories)
- WatchSessionManager.swift (communication)
- Complications/ (WidgetKit)
- UserDefaults+Shared.swift (data sharing)
2026-03-11 09:43:53 +01:00