import { Redirect, router } from 'expo-router'; import { useState } from 'react'; import { Pressable, StyleSheet, Text, View } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { TripSummary } from '@/components/TripSummary'; import { tripFromRide, useRide } from '@/lib/RideContext'; export default function TripCompleteScreen() { const insets = useSafeAreaInsets(); const { ride, completeTrip } = useRide(); // Keep the trip this screen opened with, so completing it doesn't redirect mid-transition. const [trip] = useState(() => (ride?.status === 'completed' ? tripFromRide(ride) : null)); const [saving, setSaving] = useState(false); if (!trip) return ; const done = async () => { setSaving(true); await completeTrip(); router.dismissAll(); }; return ( ✓ You’ve arrived Thanks for riding with {trip.driver.name}. Done ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#fff', paddingHorizontal: 24, justifyContent: 'space-between' }, header: { alignItems: 'center', gap: 8, marginTop: 48 }, check: { fontSize: 36, color: '#fff', backgroundColor: '#1a8f3c', width: 72, height: 72, lineHeight: 72, borderRadius: 36, overflow: 'hidden', textAlign: 'center', marginBottom: 8, }, title: { fontSize: 28, fontWeight: '700', color: '#111' }, subtitle: { fontSize: 16, color: '#666' }, button: { backgroundColor: '#111', borderRadius: 10, paddingVertical: 16, alignItems: 'center' }, disabled: { opacity: 0.6 }, buttonText: { color: '#fff', fontSize: 17, fontWeight: '600' }, });