Home
route name in code: Home · initial screen
How to get here / where to go
Section titled “How to get here / where to go”Incoming
Section titled “Incoming”| Incoming | kind | Control |
|---|---|---|
| Onboarding | navigate | — |
| Route builder — preferences | navigate | route-creator-back |
| Guided tour | popTo | — |
| Tour card | navigate | — |
| Route builder — start and time | navigate | route-builder-back |
Outgoing
Section titled “Outgoing”| Outgoing | kind | Control |
|---|---|---|
| Tour card | navigate | — |
| Before the tour starts | navigate | — |
| Map | navigate | — |
| Marketplace | navigate | browse-more-tile |
| Route builder — start and time | navigate | route-creator-button |
| Onboarding | navigate | — |
Capabilities on this screen
Section titled “Capabilities on this screen”| Capability | Status | Proof | ADO |
|---|---|---|---|
| Greeting and weather for the city: a manual pick beats the GPS city | works | RNTLHome.city ✓RNTL HomeScreenCity.test.tsx ✓RNTL HomeScreenCity.test.tsx ✓ | — |
| When no city resolves, the app offers a pick from the catalogue | works | RNTLHome.cityPrompt ✓RNTL HomeScreenCity.test.tsx ✓RNTL HomeScreenCity.test.tsx ✓ | — |
| Marketplace tour tiles: skeletons while loading, an honest error after 15 s, an empty card when nothing exists | works | RNTLHome.toursSkeleton ✓RNTL Home.toursError ✓RNTL Home.toursEmpty ✓RNTL HomeScreenSections.test.tsx ✓RNTL HomeScreenSections.test.tsx ✓RNTL HomeScreenSections.test.tsx ✓ | #134 (Resolved) |
| Two entries: Route Creator and Browse more tours | works | e2eHome.routeCreatorButton ✓RNTL Home.browseMoreTile ✓RNTL HomeScreenNav.test.tsx ✓ | — |
| A weather suggestion opens the map on the suggested place | works | RNTLHomeScreenNav.test.tsx ✓RNTL WeatherWidget.test.tsx ✓ | — |
| A guest sees the tour limit and the Premium banner; saving a route asks to sign in | works | e2eTopBar.limit ✓RNTL PremiumBanner.premiumBox ·RNTL TopBar.test.tsx ✓RNTL PremiumBanner.test.tsx ✓e2e j3-auth-variants.spec.ts ✓ | — |
| Signed-in free: Premium banner and badges; Premium: a days countdown instead of a limit, no banner; sign-out returns to guest | works | e2eTopBar.premium ✓RNTL TopBar.test.tsx ✓RNTL PremiumBanner.test.tsx ✓e2e j3-auth-variants.spec.ts ✓e2e j3-auth-variants.spec.ts ✓ | — |
| The offline banner appears after 3 s without network and can be dismissed until the next loss | works | RNTLOfflineBanner.dismiss ✓RNTL OfflineBanner.test.tsx ✓RNTL OfflineBanner.test.tsx ✓ | — |
Controls
Section titled “Controls”| Control | Label | element | Proof (last green build) |
|---|---|---|---|
home-city-prompt | no label | Card | RNTL×3 |
home-city-* (dynamic) | no label | Chip | RNTL×1 |
browse-more-tile | Browse more ready-made tours | Card | RNTL×1 |
tours-skeleton | no label | View | RNTL×3 |
tours-error | no label | View | RNTL×2 |
tours-empty | no label | Card | RNTL×1 |
route-creator-button | Route Creator | Button | RNTL×1 e2e×7 |
tour-price-tag | Free | Text · TourCard | no proof |
tour-event-badge | Event — expired | Text · TourCard | no proof |
premium-box | Premium banner — go to checkout | Card · PremiumBanner | no proof |
premium-box-cta | Get Premium | Button · PremiumBanner | no proof |
premium-banner | Premium banner — go to checkout | Card · PremiumBanner | RNTL×4 e2e×1 |
top-bar | no label | View · TopBar | no proof |
top-bar-avatar | Profile | Pressable · TopBar | RNTL×1 e2e×1 |
top-bar-premium | no label | Text · TopBar | RNTL×1 e2e×1 |
top-bar-limit | no label | Text · TopBar | RNTL×3 e2e×1 |
Controls are attributed one level deep: shared components count for the screen that renders them directly.
Last change of the screen file: 3e651f3 (2026-08-30)