diff --git a/app/components/OrderStatusTimeline/OrderStatusTimeline.props.ts b/app/components/OrderStatusTimeline/OrderStatusTimeline.props.ts index c11397e..7dd6c53 100644 --- a/app/components/OrderStatusTimeline/OrderStatusTimeline.props.ts +++ b/app/components/OrderStatusTimeline/OrderStatusTimeline.props.ts @@ -4,4 +4,5 @@ export interface OrderStatusTimelineProps { tracking?: TrackingEntry[]; currentStatus: OrderStatus; styles?: any; // optional – component uses its own internal styles via useAppTheme + deliveryPartner?: { name: string; phone: string; } } diff --git a/app/components/OrderStatusTimeline/OrderStatusTimeline.tsx b/app/components/OrderStatusTimeline/OrderStatusTimeline.tsx index 49b461d..ef845d7 100644 --- a/app/components/OrderStatusTimeline/OrderStatusTimeline.tsx +++ b/app/components/OrderStatusTimeline/OrderStatusTimeline.tsx @@ -102,6 +102,7 @@ export const OrderStatusTimeline: React.FC = ({ tracking = [], currentStatus, styles: propStyles, + deliveryPartner, }) => { const { colors } = useAppTheme(); const localStyles = getStyles(colors); @@ -118,11 +119,11 @@ export const OrderStatusTimeline: React.FC = ({ }; const handleCall = () => { - Linking.openURL('tel:+919876543210'); + Linking.openURL(`tel:${deliveryPartner?.phone}`); }; const handleMessage = () => { - Linking.openURL('sms:+919876543210'); + Linking.openURL(`sms:${deliveryPartner?.phone}`); }; const trackingMap = tracking.reduce>((acc, t) => { @@ -273,13 +274,13 @@ export const OrderStatusTimeline: React.FC = ({ - RS + {deliveryPartner?.name?.substring(0, 2)?.toUpperCase()} Your Delivery Hero - Rahul Sharma + {deliveryPartner?.name} - KA-01-AB-1234 • Honda Activa + {deliveryPartner?.phone} diff --git a/app/features/screens/liveTrackingScreen/liveTrackingScreen.tsx b/app/features/screens/liveTrackingScreen/liveTrackingScreen.tsx index 447b384..7b5784e 100644 --- a/app/features/screens/liveTrackingScreen/liveTrackingScreen.tsx +++ b/app/features/screens/liveTrackingScreen/liveTrackingScreen.tsx @@ -1,5 +1,5 @@ import React, { useEffect } from 'react'; -import { View, Text, ActivityIndicator } from 'react-native'; +import { View, Text, ActivityIndicator, Linking } from 'react-native'; import { useNavigation, useRoute, RouteProp } from '@react-navigation/native'; import { StackNavigationProp } from '@react-navigation/stack'; import { getStyles } from './liveTrackingScreen.styles'; @@ -52,6 +52,10 @@ export const LiveTrackingScreen: React.FC = () => { } }, [orderStatus, navigation, orderId]); + const handleCall = () => { + Linking.openURL(`tel:${orderDetails?.delivery?.deliveryPartner?.user?.phone}`); + }; + if (orderDetailsLoading || !orderDetails) { return ( @@ -92,18 +96,18 @@ export const LiveTrackingScreen: React.FC = () => { } style={{ marginBottom: 16 }} /> - Rahul Sharma + {orderDetails?.delivery?.deliveryPartner?.user?.name} ⭐ 4.8 - KA-01-AB-1234 • Honda Activa + {orderDetails?.delivery?.deliveryPartner?.user?.phone} {}} + onPress={handleCall} style={{ flex: 1, marginRight: 8 }} /> {}} + onPress={() => { }} style={{ flex: 1, marginLeft: 8 }} /> diff --git a/app/features/screens/myOrdersScreen/myOrdersScreen.tsx b/app/features/screens/myOrdersScreen/myOrdersScreen.tsx index 9458986..6c67f5a 100644 --- a/app/features/screens/myOrdersScreen/myOrdersScreen.tsx +++ b/app/features/screens/myOrdersScreen/myOrdersScreen.tsx @@ -21,32 +21,32 @@ type MyOrdersNavProp = CompositeNavigationProp< >; const TABS = ['All', 'Ongoing', 'Completed']; -const mockOrders = [ - { - id: 'ORD-591283', - providerName: 'Pizza Planet', - providerImage: '', - orderDate: '29 Jun 2026', - status: 'Delivered', - total: 599, - }, - { - id: 'ORD-771239', - providerName: 'Fresh Mart', - providerImage: '', - orderDate: '28 Jun 2026', - status: 'Ongoing', - total: 349, - }, - { - id: 'ORD-108239', - providerName: 'Burger Barn', - providerImage: '', - orderDate: '27 Jun 2026', - status: 'Delivered', - total: 449, - }, -]; +// const mockOrders = [ +// { +// id: 'ORD-591283', +// providerName: 'Pizza Planet', +// providerImage: '', +// orderDate: '29 Jun 2026', +// status: 'Delivered', +// total: 599, +// }, +// { +// id: 'ORD-771239', +// providerName: 'Fresh Mart', +// providerImage: '', +// orderDate: '28 Jun 2026', +// status: 'Ongoing', +// total: 349, +// }, +// { +// id: 'ORD-108239', +// providerName: 'Burger Barn', +// providerImage: '', +// orderDate: '27 Jun 2026', +// status: 'Delivered', +// total: 449, +// }, +// ]; export const MyOrdersScreen: React.FC = () => { const { colors } = useAppTheme(); @@ -78,8 +78,8 @@ export const MyOrdersScreen: React.FC = () => { activeTab === 'All' ? orders : activeTab === 'Ongoing' - ? orders.filter(o => ONGOING_STATUSES.includes(o.status)) - : orders.filter(o => COMPLETED_STATUSES.includes(o.status)); + ? orders.filter(o => ONGOING_STATUSES.includes(o.status)) + : orders.filter(o => COMPLETED_STATUSES.includes(o.status)); return ( diff --git a/app/features/screens/orderDetailsScreen/orderDetailsScreen.tsx b/app/features/screens/orderDetailsScreen/orderDetailsScreen.tsx index 9b5b637..0b7b20b 100644 --- a/app/features/screens/orderDetailsScreen/orderDetailsScreen.tsx +++ b/app/features/screens/orderDetailsScreen/orderDetailsScreen.tsx @@ -108,8 +108,8 @@ export const OrderDetailsScreen: React.FC = () => { const orderDate = orderDetails.createdAt ? `${formatDate(orderDetails.createdAt)} at ${formatTime( - orderDetails.createdAt, - )}` + orderDetails.createdAt, + )}` : ''; return ( @@ -148,6 +148,7 @@ export const OrderDetailsScreen: React.FC = () => { diff --git a/app/interfaces/order.ts b/app/interfaces/order.ts index 6abd5ad..e3e0e92 100644 --- a/app/interfaces/order.ts +++ b/app/interfaces/order.ts @@ -161,6 +161,22 @@ export interface Delivery { proofOfDeliveryKey: string | null; pickedUpAt: string | null; deliveredAt: string | null; + deliveryPartner: { + id: string, + userId: string, + partnerCode: string, + kycStatus: string, + status: string, + availabilityStatus: string, + rating: number, + currentLatitude: number, + currentLongitude: number, + lastLocationAt: string, + user: { + name: string, + phone: string + } + } } // export interface Merchant {