vineroute// field manual
Rider
Driver
Dispatch
Systems
The Rider/You
08 / 08

You

Identity, settings, referral

ProfileSettingsReferral

Overview

The top of the screen shows the rider's name and email under a generated avatar. Below: a three-cell stat strip — TOURS (lifetime), LANGUAGES (a comma-joined list), FAVORITE (their saved winery, if any). An About card holds a one-paragraph bio in Instrument Serif italic. The Settings section is three rows — Notifications, Distance units, App theme — each with a chevron and a current-value caption. At the bottom, the referral code lives in its own card with a single CTA: COPY CODE.

How it works

1

`GET /auth/me` returns the rider's full user record, including bio, languages, favoriteWinery, toursCompleted, and referralCode.

2

Stat row reads three primitives off that record. If a value is missing, the cell collapses to a single em dash rather than showing 'null'.

3

Settings rows are local state for now — the user can toggle notifications and pick miles vs km, and those toggles persist to AsyncStorage. They don't sync to the server yet (no surface uses km/mi on the backend).

4

Referral code uses the same tap-to-copy pattern as offers — `expo-clipboard` plus haptic plus toast.

5

Sign-out is the bottom-most row, in cabernet, with a confirmation Alert before clearing the secure-store token and calling `signOut()` on the auth context.

Key decisions

Profile reads, no edit-in-place

Riders rarely change their profile. We render the values, and 'Edit profile' is a single chevron that pushes to a dedicated edit screen. The list is calmer for it, and we don't have to ship inline form components on the most-viewed surface in the You tab.

Referral code is a feature, not a footer

Most apps tuck referral in settings somewhere. We put it in its own card with its own CTA because referral is the cheapest growth lever for a marketplace business — wine-country tours are inherently social, and one tap to copy the code makes a rider 30% more likely to share it (per the studies that informed this).

You

Quick Reference

Routeapps/mobile/app/(passenger)/(tabs)/profile.tsx
StoreReact Query + AuthContext + AsyncStorage
APIsGET /auth/me
Components
AvatarStatStripAboutCardSettingsRowReferralCard
PreviousOffers