From 2522e8d58ba3794b17d083007eab3a99b8bc2c27 Mon Sep 17 00:00:00 2001 From: shafi54 <108669266+shafi-aviz@users.noreply.github.com> Date: Sun, 1 Feb 2026 10:11:46 +0530 Subject: [PATCH] enh --- .../(drawer)/(tabs)/me/my-orders/index.tsx | 27 ++++++++++-------- apps/user-ui/components/ComplaintForm.tsx | 4 +-- apps/user-ui/components/NextOrderGlimpse.tsx | 6 +++- apps/user-ui/components/OrderMenu.tsx | 28 +++++++++++++++++-- packages/ui/src/components/quantifier.tsx | 5 ++-- 5 files changed, 51 insertions(+), 19 deletions(-) diff --git a/apps/user-ui/app/(drawer)/(tabs)/me/my-orders/index.tsx b/apps/user-ui/app/(drawer)/(tabs)/me/my-orders/index.tsx index d8fe1d6..2f0fb88 100755 --- a/apps/user-ui/app/(drawer)/(tabs)/me/my-orders/index.tsx +++ b/apps/user-ui/app/(drawer)/(tabs)/me/my-orders/index.tsx @@ -98,6 +98,7 @@ interface OrderItemProps { onRetryPayment: (orderId: number) => void; onViewMoreItems: (orderId: number) => void; isPaymentPending: boolean; + refetch: () => void; } const OrderItem: React.FC = ({ @@ -108,7 +109,8 @@ const OrderItem: React.FC = ({ onPress, onRetryPayment, onViewMoreItems, - isPaymentPending + isPaymentPending, + refetch }) => { const mainStatus = getStatusColor(item.orderStatus); const deliveryStatus = getStatusColor(item.deliveryStatus); @@ -165,12 +167,16 @@ const OrderItem: React.FC = ({ {item.isFlashDelivery ? "Flash Delivery" : "Delivery Time"} - - {item.isFlashDelivery - ? dayjs(item.createdAt || item.orderDate).add(30, 'minutes').format("DD MMM, hh:mm A") - : dayjs(item.deliveryDate).format("DD MMM, hh:mm A") - } - + + {item.isFlashDelivery + ? dayjs(item.createdAt || item.orderDate).add(30, 'minutes').format("DD MMM, hh:mm A") + : (() => { + const startTime = dayjs(item.deliveryDate); + const endTime = startTime.add(1, 'hour'); + return `${startTime.format("DD MMM, hh:mm A")} - ${endTime.format("hh:mm A")}`; + })() + } + {item.isFlashDelivery && ( ⚡ 30-Min Delivery @@ -194,10 +200,8 @@ const OrderItem: React.FC = ({ { - // refetch will be handled by parent - }} + orderId={item.id} + postActionHandler={refetch} /> @@ -628,6 +632,7 @@ export default function MyOrders() { onRetryPayment={handleRetryPayment} onViewMoreItems={(orderId) => router.push(`/(drawer)/(tabs)/me/my-orders/${orderId}`)} isPaymentPending={createRazorpayOrderMutation.isPending} + refetch={refetch} /> )} keyExtractor={(item) => item.orderId} diff --git a/apps/user-ui/components/ComplaintForm.tsx b/apps/user-ui/components/ComplaintForm.tsx index 115d7a9..040d06b 100644 --- a/apps/user-ui/components/ComplaintForm.tsx +++ b/apps/user-ui/components/ComplaintForm.tsx @@ -10,7 +10,7 @@ import axios from '../services/axios-user-ui'; interface ComplaintFormProps { open: boolean; onClose: () => void; - orderId: string; + orderId: number; } export default function ComplaintForm({ open, onClose, orderId }: ComplaintFormProps) { @@ -21,7 +21,7 @@ export default function ComplaintForm({ open, onClose, orderId }: ComplaintFormP const raiseComplaintApi = async (payload: { complaintBody: string; images: { uri?: string }[] }) => { const formData = new FormData(); - formData.append('orderId', orderId); + formData.append('orderId', orderId.toString()); formData.append('complaintBody', payload.complaintBody); // Add images if provided diff --git a/apps/user-ui/components/NextOrderGlimpse.tsx b/apps/user-ui/components/NextOrderGlimpse.tsx index f19296c..1562db8 100644 --- a/apps/user-ui/components/NextOrderGlimpse.tsx +++ b/apps/user-ui/components/NextOrderGlimpse.tsx @@ -140,7 +140,11 @@ export default function NextOrderGlimpse() { {nextOrder.isFlashDelivery ? "30-Min Delivery" - : dayjs(nextOrder.deliveryDate).format("DD MMM, hh:mm A") + : (() => { + const startTime = dayjs(nextOrder.deliveryDate); + const endTime = startTime.add(1, 'hour'); + return `${startTime.format("DD MMM, hh:mm A")} - ${endTime.format("hh:mm A")}`; + })() } diff --git a/apps/user-ui/components/OrderMenu.tsx b/apps/user-ui/components/OrderMenu.tsx index 88a0e80..675c8f7 100644 --- a/apps/user-ui/components/OrderMenu.tsx +++ b/apps/user-ui/components/OrderMenu.tsx @@ -4,13 +4,15 @@ import { MaterialIcons, Ionicons } from '@expo/vector-icons'; import { tw, MyText, MyTouchableOpacity, BottomDialog } from 'common-ui'; import { trpc } from '@/src/trpc-client'; import ComplaintForm from '@/components/ComplaintForm'; +import { useRouter } from 'expo-router'; interface OrderMenuProps { - orderId: string; + orderId: number; postActionHandler?: () => void; } const OrderMenu: React.FC = ({ orderId, postActionHandler }) => { + const router = useRouter(); const [open, setOpen] = useState(false); const [editNotesDialogOpen, setEditNotesDialogOpen] = useState(false); const [editNotes, setEditNotes] = useState(''); @@ -34,7 +36,7 @@ const OrderMenu: React.FC = ({ orderId, postActionHandler }) => const handleEditNotes = async () => { try { await updateNotesMutation.mutateAsync({ - id: orderId, + id: orderId.toString(), userNotes: editNotes.trim() }); } catch (error) { @@ -84,6 +86,23 @@ const OrderMenu: React.FC = ({ orderId, postActionHandler }) => + { + setOpen(false); + router.push(`/(drawer)/(tabs)/me/my-orders/${orderId}`); + }} + > + + + + + View Details + View complete order information + + + + { @@ -117,7 +136,10 @@ const OrderMenu: React.FC = ({ orderId, postActionHandler }) => setCancelDialogOpen(true)} + onPress={() => { + setOpen(false); + setTimeout(() => setCancelDialogOpen(true), 300); + }} > diff --git a/packages/ui/src/components/quantifier.tsx b/packages/ui/src/components/quantifier.tsx index 55f6cb2..7bb1f11 100644 --- a/packages/ui/src/components/quantifier.tsx +++ b/packages/ui/src/components/quantifier.tsx @@ -39,11 +39,12 @@ const Quantifier: React.FC = ({ {value} - {unitText && ( + {/* {unitText && ( + //hide unit text for now {unitText} - )} + )} */}