import React, { useState } from 'react'; import { View, Text, ScrollView, TouchableOpacity, Alert } from 'react-native'; import { useAppTheme } from '@theme'; import { ScreenHeader, PrimaryButton } from '@components'; import { useAppDispatch, useAppSelector } from '@store'; import { advanceJobStatus } from '@store/commonReducers/job'; import { useNavigation } from '@react-navigation/native'; import { NativeStackNavigationProp } from '@react-navigation/native-stack'; import { AppStackParamList } from '@navigation/navigationTypes'; import { RouteNames, JobStatus } from '@utils/constants'; import { getStyles } from './confirmPickupScreen.styles'; export const ConfirmPickupScreen: React.FC = () => { const { colors } = useAppTheme(); const styles = getStyles(colors); const dispatch = useAppDispatch(); const navigation = useNavigation>(); const activeJob = useAppSelector((state) => state.job.activeJob); // Togglable checklist for food/merchandise items const [checkedItems, setCheckedItems] = useState<{ [key: number]: boolean }>({ 0: true, 1: true, }); const items = [ { id: 0, name: 'Cappuccino (Medium)', qty: 1 }, { id: 1, name: 'Chocolate Croissant', qty: 1 }, ]; const handleToggleCheck = (id: number) => { setCheckedItems((prev) => ({ ...prev, [id]: !prev[id], })); }; const handlePickedUp = () => { // Ensure all items are checked before picking up const allChecked = items.every((item) => checkedItems[item.id]); if (!allChecked) { Alert.alert('Incomplete Verification', 'Please confirm that you have checked all items before picking up.'); return; } dispatch(advanceJobStatus(JobStatus.PickedUp)); navigation.navigate(RouteNames.OrderPickedUp); }; const handleReportIssue = () => { Alert.alert('Report Issue', 'Helpdesk notified. Support agent will contact you shortly.'); }; if (!activeJob) return null; return ( navigation.goBack()} /> {/* Order ID Banner */} Order ID: {activeJob.orderId} ONLINE PAID {/* Merchant Info */} Pickup Store {activeJob.pickupName} {/* Items Checklist */} Verify Items ({items.length}) {items.map((item) => ( handleToggleCheck(item.id)} > {checkedItems[item.id] && } {item.name} x{item.qty} ))} {/* Action Buttons */} ); }; export default ConfirmPickupScreen;