'use client'; import { Image } from '@akinon/next/components'; import { useLocalization } from '@akinon/next/hooks'; import { Button, Link, Price } from '@theme/components'; import { ROUTES } from '@theme/routes'; import settings from '@theme/settings'; import { getOrderStatus } from '@theme/utils'; import { OrderDetailHeader } from '@theme/views/account/orders/order-detail-header'; import { SalesContractModal } from '@theme/views/sales-contract-modal'; import clsx from 'clsx'; import { useEffect, useState } from 'react'; export const AnonymousTrackingOrderDetail = ({ order }) => { const { locale, t } = useLocalization(); const [orderDate, setOrderDate] = useState(''); const localeValue = settings.localization.locales.find( (locale_) => locale_.value === locale ).apiValue; const groupedOrder = []; if (order) { const groupedData = order?.orderitem_set?.reduce((groups, item) => { const { tracking_number } = item; if (!groups[tracking_number]) { groups[tracking_number] = []; } groups[tracking_number].push(item); return groups; }, {}) || {}; const result = Object.values(groupedData); groupedOrder.push(...result); } useEffect(() => { if (!order) { return; } const shortDate = new Date(order.created_date).toLocaleDateString( localeValue, { day: 'numeric', month: 'long', year: 'numeric' } ); setOrderDate(shortDate); }, [order, localeValue]); return (
{order ? (
{t('account.my_orders.detail.order_date')}:{' '} {orderDate}
{order?.orderitem_set?.length}{' '} {t('account.my_orders.detail.products')} {groupedOrder?.length}{' '} {t('account.my_orders.detail.packages')}
{t('account.my_orders.detail.delivery_address')}:{' '} {order?.shipping_address?.line}{' '} {order?.shipping_address?.district?.name}{' '} {order?.shipping_address?.township?.name}{' '} {order?.shipping_address?.city?.name}
{groupedOrder.map((group, i) => { const orderStatus = getOrderStatus( group[0]?.status?.value?.toString(), t ); return (
{t('account.my_orders.detail.package_no')}: {i + 1} ({group.length}{' '} {t('account.my_orders.detail.items')})
{orderStatus.label}
{group[0]?.tracking_number && group[0]?.tracking_url && ( )}
{group.map((item, index) => { const itemStatus = getOrderStatus( item?.status?.value?.toString(), t ); return (
{item?.product?.name}
{item?.product?.name}
{item?.product?.attributes ?.filterable_color && (
{t('account.my_orders.detail.color')} :{' '} { item?.product?.attributes ?.filterable_color }
)} {item?.product?.attributes?.size && (
{t('account.my_orders.detail.size')} :{item?.product?.attributes?.size}
)}
{t('account.my_orders.detail.code')} : {item?.product?.base_code}
{itemStatus.label}
{(item.is_cancellable || item.is_refundable) && order.is_cancellable && item?.status?.value == '400' && (
)}
{parseFloat(item.retail_price) > parseFloat(item.price) && ( )} parseFloat(item.price) })} value={item.price} />
); })}
); })}

{t('account.my_orders.detail.subtotal')} ( {order?.orderitem_set?.length}{' '} {t('account.my_orders.detail.items')})

{order?.discountitem_set && order?.discountitem_set?.map((item, index) => (

{item?.name}

))}

{t('account.my_orders.detail.total')}

) : (
{t('account.anonymous_order.not_found.title')}
{t('account.anonymous_order.not_found.description')}
{t('account.anonymous_order.not_found.button')}
)}
); };