Onboarding
route name in code: Onboarding · 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 |
|---|---|---|
| Home | navigate | — |
| Profile and settings | navigate | — |
| Escape the Crowd | navigate | — |
| Sign-in prompt | navigate | — |
Outgoing
Section titled “Outgoing”| Outgoing | kind | Control |
|---|---|---|
| Home | navigate | — |
Capabilities on this screen
Section titled “Capabilities on this screen”| Capability | Status | Proof | ADO |
|---|---|---|---|
| App language picked on the first step | works | RNTLOnboarding.language ✓RNTL OnboardingScreen.test.tsx ✓ | — |
| Location consent; after a refusal, a city picked from the catalogue | works | RNTLOnboarding.consentAllow ✓RNTL Onboarding.consentSkip ✓RNTL OnboardingScreen.test.tsx ✓RNTL OnboardingScreen.test.tsx ✓ | — |
| Tourist profile in three steps: name and age, interests, pace / crowds / budget / transport / meals / context | works | RNTLOnboarding.name ✓RNTL Onboarding.interest ✓RNTL Onboarding.transport ✓RNTL OnboardingScreen.test.tsx ✓ | — |
| Five progress dots visible from the very first screen | works | RNTLOnboarding.dot ✓RNTL OnboardingScreen.test.tsx ✓ | — |
| Transitional screen: the button turns into Start once the server is awake; after 8 s the user may enter anyway | works | RNTLOnboarding.transitionalCta ✓RNTL OnboardingScreen.test.tsx ✓RNTL OnboardingScreen.test.tsx ✓RNTL OnboardingScreen.test.tsx ✓ | — |
Controls
Section titled “Controls”| Control | Label | element | Proof (last green build) |
|---|---|---|---|
onboarding-progress | no label | View | no proof |
onboarding-dot-* (dynamic) | no label | View | RNTL×8 |
age-* (dynamic) | no label | Chip | no proof |
context-* (dynamic) | no label | Chip | RNTL×1 |
budget-* (dynamic) | no label | Chip | RNTL×1 |
transport-* (dynamic) | no label | Chip | RNTL×1 |
meals-* (dynamic) | no label | Chip | RNTL×1 |
language-* (dynamic) | no label | Chip | RNTL×1 |
city-* (dynamic) | no label | Chip | RNTL×1 |
onboarding-shell | no label | ScrollView | RNTL×2 |
onboarding-name | Your name | TextInput | RNTL×4 |
onboarding-next-1 | Next | Button | RNTL×2 |
interest-* (dynamic) | no label | Chip | RNTL×2 |
onboarding-next-2 | Next | Button | RNTL×2 |
onboarding-finish | Start the adventure! | Button | RNTL×2 |
onboarding-lang-next | Continue | Button | RNTL×5 |
onboarding-consent-allow | Allow location | Button | RNTL×2 |
onboarding-consent-skip | Skip for now | Button | RNTL×2 |
transitional-scroll | no label | ScrollView | no proof |
transitional-interest-* (dynamic) | no label | View | RNTL×1 |
transitional-warm-failed | no label | View | RNTL×1 |
transitional-cta-* (dynamic) | no label | Button | RNTL×7 |
step-* (dynamic) | no label | View · StagedChecklist | RNTL×6 |
ai-disclosure-banner | no label | View · AiDisclosureBanner | RNTL×4 |
ai-disclosure-ok | Got it | Button · AiDisclosureBanner | RNTL×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)