Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions repositories/d-sports-engage-native.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
10 changes: 10 additions & 0 deletions repositories/d-sports-engage-native/architecture.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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`.
2 changes: 2 additions & 0 deletions repositories/d-sports-engage-native/feature-mapping.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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.