import { Icon } from '../shared/Icon'; import { STATUS_MAPPINGS } from '../../data/referenceData'; const CATEGORY_COLORS: Record = { Completion: '#22c55e', 'Rider cancel': '#ef4444', 'Driver cancel': '#f97316', 'System cancel': '#eab308', 'Active trip cancel': '#ec4899', 'Driver confirm': '#06b6d4', 'Assignment (special)': '#8b5cf6', }; const TERMINAL_STATUSES = [ 'TRIP_BOOK_FINISHED', 'TRIP_BOOK_OPERATION_RIDER_CANCELED', 'TRIP_BOOK_OPERATION_DRIVER_CANCELED', 'TRIP_BOOK_SYSTEM_CANCELED', ]; export function StatusMachineSection() { return (
TRIP_STATUS → BOOKING_STATUS Mapping {STATUS_MAPPINGS.length} entries
{STATUS_MAPPINGS.map((m) => { const color = CATEGORY_COLORS[m.category] || '#64748b'; return ( ); })}
Trip Status Booking Status Category
{m.tripStatus} {m.bookingStatus} {m.category}

Terminal States

Once a booking reaches a terminal state, no further transitions are allowed. The fnUpdateBookingStatus middleware includes a guard that skips updates if the current status is terminal.

{TERMINAL_STATUSES.map((s) => ( {s} ))}
); }