import React from 'react'; import { View, ScrollView, Dimensions } from 'react-native'; import { Image } from 'expo-image'; import { MyText, tw } from 'common-ui'; import { trpc } from '../src/trpc-client'; interface FullOrderViewProps { orderId: number; } export const FullOrderView: React.FC = ({ orderId }) => { const { data: order, isLoading, error } = trpc.admin.order.getFullOrder.useQuery({ orderId }); if (isLoading) { return ( Loading order details... ); } if (error || !order) { return ( Failed to load order details ); } const totalAmount = order.items.reduce((sum, item) => sum + item.amount, 0); return ( Order #{order.readableId} {/* Customer Information */} Customer Details Name: {order.customerName} {order.customerEmail && ( Email: {order.customerEmail} )} Mobile: {order.customerMobile} {/* Delivery Address */} Delivery Address {order.address.line1} {order.address.line2 && {order.address.line2}} {order.address.city}, {order.address.state} - {order.address.pincode} Phone: {order.address.phone} {/* Order Details */} Order Details Order Date: {new Date(order.createdAt).toLocaleDateString('en-IN', { day: 'numeric', month: 'short', year: 'numeric', hour: '2-digit', minute: '2-digit' })} Payment Method: {order.isCod ? 'Cash on Delivery' : 'Online Payment'} {order.slotInfo && ( Delivery Slot: {new Date(order.slotInfo.time).toLocaleDateString('en-IN', { day: 'numeric', month: 'short', hour: '2-digit', minute: '2-digit' })} )} {/* Items */} Items ({order.items.length}) {order.items.map((item, index) => ( {item.productName} Qty: {item.quantity} {item.unit} × ₹{parseFloat(item.price.toString()).toFixed(2)} ₹{item.amount.toFixed(2)} ))} {/* Payment Information */} {(order.payment || order.paymentInfo) && ( Payment Information {order.payment && ( Payment Details: Status: {order.payment.status} Gateway: {order.payment.gateway} Order ID: {order.payment.merchantOrderId} )} {order.paymentInfo && ( Payment Info: Status: {order.paymentInfo.status} Gateway: {order.paymentInfo.gateway} Order ID: {order.paymentInfo.merchantOrderId} )} )} {/* User Notes */} {order.userNotes && ( Customer Notes {order.userNotes} )} {/* Admin Notes */} {order.adminNotes && ( Admin Notes {order.adminNotes} )} {/* Total */} Total Amount ₹{parseFloat(order.totalAmount.toString()).toFixed(2)} ); };