diff --git a/repositories/d-sports-engage-native.mdx b/repositories/d-sports-engage-native.mdx index e79c1b6..c08f55b 100644 --- a/repositories/d-sports-engage-native.mdx +++ b/repositories/d-sports-engage-native.mdx @@ -33,12 +33,13 @@ icon: "smartphone" - **Profile** — User profile and settings - **Theme** — Dark/light mode (default dark) -## What changed since last docs sync +## What changed since last docs sync (v1.17.4) -- Team-aware experiences were expanded to align with backend team/favorites behavior. -- Quest and rewards surfaces were updated to support per-team progression and pass-aware eligibility. -- Pack opening and odds disclosure UX were upgraded with safer interactions and clearer status/error handling. -- Settings and account flows were expanded, including in-app account deletion and richer support/data controls. +- **Tab bar reworked** — Bottom navigation now uses platform-specific treatments: glass/blur via `NativeTabs` on iOS, Material-style `PillTabBar` with `expo-blur` on Android, and an aligned look on web. +- **Android package name** — The Android application ID is now `com.dsports.engage` (Play Store–aligned). +- **Leaderboard and carousel polish** — Team logo handling improved, carousel `scrollToIndex` crashes fixed, arrow navigation bounds-clamped, and broader accessibility fixes applied. +- **EAS build tooling** — Build profiles updated to Bun **1.3.11**. +- **Store assets** — App Store screenshots and listing metadata now synced in-repo (`store.config.json`, `store/`). ## Backend integration surfaces diff --git a/repositories/d-sports-engage-native/architecture.mdx b/repositories/d-sports-engage-native/architecture.mdx index af786e3..3835f3a 100644 --- a/repositories/d-sports-engage-native/architecture.mdx +++ b/repositories/d-sports-engage-native/architecture.mdx @@ -28,3 +28,13 @@ The native app is structured around Expo Router screens, feature-oriented compon - iOS/Android platform differences are handled in native-specific components and runtime checks. - Web-target support exists but mobile behavior is primary for interaction and performance design. - Haptics, modal controls, and animation handling are implemented with platform-safe fallbacks. + +### Tab bar + +The bottom tab bar uses platform-specific implementations defined in `app/(tabs)/`: + +- **iOS** — `_layout.ios.tsx` uses `NativeTabs` from `expo-router/unstable-native-tabs` with `systemChromeMaterialDark` and gold selection color (`#FFD700`). +- **Android and web** — `_layout.tsx` renders a JS `Tabs` layout with a hidden default bar and a custom `PillTabBar` overlay. Android uses `expo-blur` (`BlurView`) for the blur surface. +- **Shared config** — `tab-config.ts` defines tab order, SF Symbol pairs (iOS), and helpers like `getActiveTabIndex` so `/profile/[handle]` does not highlight the Profile tab. + +The Android application ID is `com.dsports.engage`. diff --git a/repositories/d-sports-engage-native/feature-mapping.mdx b/repositories/d-sports-engage-native/feature-mapping.mdx index 27fbcd7..61a0a22 100644 --- a/repositories/d-sports-engage-native/feature-mapping.mdx +++ b/repositories/d-sports-engage-native/feature-mapping.mdx @@ -24,3 +24,5 @@ description: "Native feature coverage and parity mapping against backend/PWA beh - Teams and leagues metadata are consumed from backend `/api/teams` and `/api/leagues`. - Leaderboard displays and team-scoped ranking views align with backend leaderboard contracts. - Favorite-team interactions influence quest and leaderboard context where backend eligibility requires it. +- Team logos are normalized for React Native using a shared `resolveTeamLogoSource` utility and `TeamLogoImage` component with `onError` fallback. +- Carousel navigation uses bounds-clamped `scrollToIndex` with safe index handling to prevent crashes on leaderboard and featured-games surfaces.