vineroute// field manual
Rider
Driver
Dispatch
Systems
The Rider/Trips
06 / 08

Trips

What you're booked on

ListReservationsHistory

Overview

Three vertically-stacked sections with mono uppercase eyebrows — TODAY, UPCOMING, PAST. Each section is a list of TripRow cards. A row contains the route name in Instrument Serif, the formatted date below, the party size and any reservation notes, and a status pill on the right (CONFIRMED, PENDING, CANCELLED). The PAST section is faded slightly — the rows still link, but they read as memory rather than action.

How it works

1

`GET /api/passenger/reservations` returns all reservations for the current user, including the joined route record. The client splits the array on the server-formatted dateISO field.

2

Status pills use the design system tokens — confirmed is sage (#8AAA72), pending is wheat (#A7A36B), cancelled is cabernet (#7E3A3A). Each pill is a mono uppercase label inside a 999px-radius border in the same color.

3

Tap routing: today's trip pushes to Today tab; upcoming trips push to a read-only `/(passenger)/trip/[id]` route with the route preview; past trips push to a log-style summary of stops visited and any driver notes.

4

If a section is empty, the empty state uses the same paper-card chrome as the other empty states in the app — consistency over per-screen flair.

Key decisions

Three buckets, not one continuous list

The 'rider has booked 4 trips' use case is the most common, and a single chronological list buries today behind two-week-old reservations. Splitting into TODAY / UPCOMING / PAST puts the actionable trip at the top and lets the past fade.

No filtering, no search

If a rider has more than 20 trips, search would help. But the use case at launch is 'I have a trip today and another next month' — that's six or seven rows tops. We will add filters when usage warrants them. Until then, the list is short enough to scan.

Trips

Quick Reference

Routeapps/mobile/app/(passenger)/(tabs)/trips.tsx
StoreReact Query
APIsGET /api/passenger/reservations
Components
TripRowStatusPillEmptyCard
PreviousStop detail sheetNextOffers