diff --git a/src/components/SpecialOrderDetailsModal.module.css b/src/components/SpecialOrderDetailsModal.module.css index 480febb..6474f63 100644 --- a/src/components/SpecialOrderDetailsModal.module.css +++ b/src/components/SpecialOrderDetailsModal.module.css @@ -64,6 +64,30 @@ gap: 12px; } +.section { + display: flex; + flex-direction: column; + gap: 12px; + padding: 14px 12px; + border-radius: var(--radius-sm); + border: 1px solid rgba(143, 65, 12, 0.1); + background: rgba(255, 250, 250, 0.45); +} + +.sectionTitle { + margin: 0; + font-size: 0.84rem; + font-weight: 600; + color: var(--brown); +} + +.branchMeta { + margin: 0; + font-size: 0.84rem; + line-height: 1.7; + color: var(--text-secondary); +} + .empty { margin: 0; font-size: 0.9rem; diff --git a/src/components/SpecialOrderDetailsModal.tsx b/src/components/SpecialOrderDetailsModal.tsx index e7aaca0..9af495c 100644 --- a/src/components/SpecialOrderDetailsModal.tsx +++ b/src/components/SpecialOrderDetailsModal.tsx @@ -30,6 +30,22 @@ function formatDateTime(iso: string) { }).format(date) } +function formatJalaliDate(iso: string | null) { + if (!iso) return '—' + const date = new Date(iso) + if (Number.isNaN(date.getTime())) return '—' + return new Intl.DateTimeFormat('fa-IR-u-ca-persian', { + year: 'numeric', + month: 'long', + day: 'numeric', + }).format(date) +} + +function displayText(value: string | null | undefined) { + const trimmed = value?.trim() + return trimmed ? trimmed : '—' +} + export function SpecialOrderDetailsModal({ open, order, @@ -56,6 +72,12 @@ export function SpecialOrderDetailsModal({ const images = order.images.map((item) => item.url) const userName = formatUserName(order.user) || order.user.name + const branchLabel = + order.branchName || + order.branch?.name || + (order.branch + ? `${order.branch.name} — ${order.branch.district}` + : '') return ( <> @@ -91,22 +113,24 @@ export function SpecialOrderDetailsModal({
{order.name}
-+ {order.code || `BL-S-${order.number}`} +
+{specialOrderCategoryLabel[order.category]}
{formatDateTime(order.createdAt)}
-{formatDateTime(order.createdAt)}
- {order.description.trim() || '—'} -
-{displayText(order.name)}
++ {formatJalaliDate(order.neededDate)} +
++ {displayText(order.receiveTime)} +
++ {order.servings != null + ? order.servings.toLocaleString('fa-IR') + : '—'} +
++ {displayText(order.cakeFlavor)} +
++ {displayText(order.filling)} +
+{displayText(order.coating)}
+{displayText(order.cakeText)}
++ {displayText(order.decorations)} +
++ {displayText(order.designStyle)} +
++ {order.deliveryTypeLabel || + (order.deliveryType === 'pickup' + ? 'دریافت حضوری' + : order.deliveryType === 'shipping' + ? 'ارسال با پیک' + : '—')} +
+{displayText(branchLabel)}
++ {order.branch.district} — {order.branch.address} +
+ ) : null} +{order.description}
+