feat(order): deliveryboy details added dynamically
This commit is contained in:
parent
da1feb91e4
commit
8c443d76eb
@ -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; }
|
||||
}
|
||||
|
||||
@ -102,6 +102,7 @@ export const OrderStatusTimeline: React.FC<OrderStatusTimelineProps> = ({
|
||||
tracking = [],
|
||||
currentStatus,
|
||||
styles: propStyles,
|
||||
deliveryPartner,
|
||||
}) => {
|
||||
const { colors } = useAppTheme();
|
||||
const localStyles = getStyles(colors);
|
||||
@ -118,11 +119,11 @@ export const OrderStatusTimeline: React.FC<OrderStatusTimelineProps> = ({
|
||||
};
|
||||
|
||||
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<Record<string, string>>((acc, t) => {
|
||||
@ -273,13 +274,13 @@ export const OrderStatusTimeline: React.FC<OrderStatusTimelineProps> = ({
|
||||
<View style={localStyles.driverSection}>
|
||||
<View style={localStyles.driverInfoRow}>
|
||||
<View style={localStyles.driverAvatarContainer}>
|
||||
<Text style={localStyles.driverAvatarText}>RS</Text>
|
||||
<Text style={localStyles.driverAvatarText}>{deliveryPartner?.name?.substring(0, 2)?.toUpperCase()}</Text>
|
||||
</View>
|
||||
<View style={localStyles.driverMeta}>
|
||||
<Text style={localStyles.driverRoleText}>Your Delivery Hero</Text>
|
||||
<Text style={localStyles.driverNameText}>Rahul Sharma</Text>
|
||||
<Text style={localStyles.driverNameText}>{deliveryPartner?.name}</Text>
|
||||
<Text style={localStyles.driverVehicleText}>
|
||||
KA-01-AB-1234 • Honda Activa
|
||||
{deliveryPartner?.phone}
|
||||
</Text>
|
||||
</View>
|
||||
<View style={localStyles.ratingBadge}>
|
||||
|
||||
@ -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 (
|
||||
<View style={styles.container}>
|
||||
@ -92,18 +96,18 @@ export const LiveTrackingScreen: React.FC = () => {
|
||||
}
|
||||
style={{ marginBottom: 16 }}
|
||||
/>
|
||||
<Text style={styles.agentName}>Rahul Sharma</Text>
|
||||
<Text style={styles.agentName}>{orderDetails?.delivery?.deliveryPartner?.user?.name}</Text>
|
||||
<Text style={styles.agentRating}>⭐ 4.8</Text>
|
||||
<Text style={styles.agentVehicle}>KA-01-AB-1234 • Honda Activa</Text>
|
||||
<Text style={styles.agentVehicle}>{orderDetails?.delivery?.deliveryPartner?.user?.phone}</Text>
|
||||
<View style={styles.agentActions}>
|
||||
<PrimaryButton
|
||||
title="Call"
|
||||
onPress={() => {}}
|
||||
onPress={handleCall}
|
||||
style={{ flex: 1, marginRight: 8 }}
|
||||
/>
|
||||
<PrimaryButton
|
||||
title="Message"
|
||||
onPress={() => {}}
|
||||
onPress={() => { }}
|
||||
style={{ flex: 1, marginLeft: 8 }}
|
||||
/>
|
||||
</View>
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -148,6 +148,7 @@ export const OrderDetailsScreen: React.FC = () => {
|
||||
<OrderStatusTimeline
|
||||
tracking={orderDetails.tracking}
|
||||
currentStatus={orderDetails.status}
|
||||
deliveryPartner={orderDetails?.delivery?.deliveryPartner?.user}
|
||||
/>
|
||||
</View>
|
||||
|
||||
|
||||
@ -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 {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user