Commit Graph

4 Commits

Author SHA1 Message Date
d0b78181a3 fix: Comprehensive authentication and UI fixes
Some checks failed
CI/CD Pipeline / Lint and Test (push) Has been cancelled
CI/CD Pipeline / E2E Tests (push) Has been cancelled
CI/CD Pipeline / Build Application (push) Has been cancelled
Authentication & Token Management:
- Add deviceId to token refresh flow (backend requires both refreshToken and deviceId)
- Fix React Strict Mode token clearing race condition with retry logic
- Improve AuthContext to handle all token state combinations properly
- Store deviceId in localStorage alongside tokens

UI/UX Improvements:
- Remove deprecated legacyBehavior from Next.js Link components
- Update primary theme color to WCAG AA compliant #7c3aed
- Fix nested button error in TabBar voice navigation
- Fix invalid Tabs value error in DynamicChildDashboard

Multi-Child Dashboard:
- Load all children into Redux store properly
- Fetch metrics for all children, not just selected one
- Remove mock data to prevent unauthorized API calls

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-05 16:10:11 +00:00
e8cf7d7ab6 feat: Complete high-priority frontend features - accessibility and UX
Some checks failed
CI/CD Pipeline / Lint and Test (push) Has been cancelled
CI/CD Pipeline / E2E Tests (push) Has been cancelled
CI/CD Pipeline / Build Application (push) Has been cancelled
**Error Boundaries (VERIFIED COMPLETE)**
- Comprehensive ErrorBoundary component already implemented in components/common/ErrorBoundary.tsx
- Features: Recovery UI, error logging, isolated error boundaries, development error details
- Global error boundary in root layout
- Page-level error boundaries in AI Assistant and dashboard
- Error tracking integration ready for Sentry

**Touch Target Sizes (WCAG 2.5.5 Compliance)**
- Fixed user menu IconButton: increased from 32x32px to 44x44px minimum (medium size)
- Created lib/utils/touchTargets.ts with accessibility utilities:
  * MINIMUM_TOUCH_TARGET = 44px (iOS/WCAG standard)
  * RECOMMENDED_TOUCH_TARGET = 48px (Android Material Design)
  * Helper functions: withTouchTarget(), validateTouchTarget()
  * Component-specific guidelines for IconButton, Button, FAB, Chip, etc.
- Verified existing components meet standards:
  * Quick action buttons: 140x140px ✓
  * Bottom navigation: 64px height ✓
  * Voice FAB: 56x56px ✓
  * Voice button in tab bar: 48x48px ✓

**AI Conversation History (VERIFIED COMPLETE)**
- Comprehensive conversation management already implemented in AIChatInterface.tsx
- Features verified:
  * Full conversation list with drawer (mobile) and sidebar (desktop)
  * Load conversations from backend API
  * Load individual conversation messages with scrolling
  * Auto-scroll to bottom on new messages
  * Conversation groups with collapsible organization
  * Delete conversations with confirmation
  * Context menu for conversation management
  * Thinking messages animation
  * Markdown rendering for AI responses
- Updated implementation-gaps.md to reflect completion status

**Documentation Updates**
- Updated docs/implementation-gaps.md:
  * Marked Conversation History as COMPLETED
  * Updated AI Assistant UI section with detailed implementation notes
  * Moved remaining features (Streaming Responses, Suggested Follow-Ups, AI Response Feedback UI) to "Remaining Features" section

**Impact**
- Error boundaries prevent full app crashes and provide graceful recovery
- Touch target sizes meet WCAG 2.5.5 (AAA) and mobile platform guidelines
- Conversation history enables contextual AI interactions with full persistence

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-03 22:10:47 +00:00
c1e37d30b0 feat: Implement frontend localization with i18n and measurement units
Some checks failed
CI/CD Pipeline / Lint and Test (push) Has been cancelled
CI/CD Pipeline / E2E Tests (push) Has been cancelled
CI/CD Pipeline / Build Application (push) Has been cancelled
Implemented comprehensive frontend localization infrastructure supporting
5 languages (English, Spanish, French, Portuguese, Chinese) with measurement
unit preferences (Metric/Imperial). This lays the foundation for international
user support.

**Core Infrastructure:**
- Installed i18next, react-i18next, i18next-browser-languagedetector
- Created I18nProvider component integrated into app layout
- Configured i18next with language detection and localStorage persistence
- Created 35 translation files (5 languages × 7 namespaces)

**Translation Namespaces:**
- common: App-wide UI elements, navigation, actions
- tracking: Activity tracking (feeding, sleep, diaper, milestones)
- ai: AI assistant chat interface
- auth: Authentication flows (login, signup, password reset)
- settings: Settings and preferences
- onboarding: Onboarding flow
- errors: Error messages and validation

**Custom Hooks:**
- useTranslation: Type-safe translation wrapper
- useLocale: Language and measurement system management
- useFormatting: Date, time, number, and unit formatting

**Measurement Unit Support:**
- Created unit conversion utilities (weight, height, temperature, volume)
- Metric: kg, cm, °C, ml
- Imperial: lb, in, °F, oz
- Bidirectional conversion functions

**UI Components:**
- LanguageSelector: Dropdown to change app language
- MeasurementUnitSelector: Toggle between Metric/Imperial
- Integrated both into Settings page Preferences section

**Next Steps (Remaining):**
- Add measurement preferences to backend user schema
- Create onboarding flow with language/measurement selection
- Apply translations to existing components (dashboard, tracking forms)
- Implement multi-language AI responses
- Add professional translations (currently using basic translations)

**File Highlights:**
- lib/i18n/config.ts: i18next configuration
- hooks/useFormatting.ts: Formatting utilities with locale support
- lib/utils/unitConversion.ts: Unit conversion logic
- components/settings/*Selector.tsx: Language and measurement selectors
- locales/*/: Translation files for 5 languages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-03 10:52:38 +00:00
f3ff07c0ef Add comprehensive .gitignore 2025-10-01 19:01:52 +00:00