'use client'; import type { Order } from 'brainerce'; import { useTranslations } from '@/core/lib/translations'; import { cn } from '@/core/lib/utils'; interface OrderShippingBlockProps { order: Order; className?: string; } export function OrderShippingBlock({ order, className }: OrderShippingBlockProps) { const t = useTranslations('account'); const addr = order.shippingAddress; const hasAddress = !!addr?.line1; const hasTracking = !!(order.trackingNumber || order.trackingUrl || order.carrier); if (!hasAddress && !hasTracking) return null; const fullName = [addr?.firstName, addr?.lastName].filter(Boolean).join(' '); const cityLine = [addr?.city, addr?.state || addr?.region, addr?.postalCode] .filter(Boolean) .join(', '); return (
{hasAddress && ( <>

{t('shippingAddress')}

{fullName &&
{fullName}
} {addr?.company &&
{addr.company}
}
{addr?.line1}
{addr?.line2 &&
{addr.line2}
} {cityLine &&
{cityLine}
} {addr?.country &&
{addr.country}
} {addr?.phone &&
{addr.phone}
}
)} {hasTracking && (

{t('tracking')}

{order.carrier && order.trackingNumber && (
{order.carrier} ยท {order.trackingNumber}
)} {order.carrier && !order.trackingNumber && (
{order.carrier}
)} {!order.carrier && order.trackingNumber && (
{order.trackingNumber}
)} {order.shippedAt && (
{t('shippedOn', { date: new Date(order.shippedAt).toLocaleDateString() })}
)} {order.deliveredAt && (
{t('deliveredOn', { date: new Date(order.deliveredAt).toLocaleDateString() })}
)} {order.trackingUrl && ( {t('trackOrder')} )}
)}
); }