'use client' import type { EventWizardFormData } from '@/components/events/create/types' import { formatToman } from '@/components/events/create/types' import { cn } from '@/lib/cn' import { texts } from '@/texts' interface CreateEventPreviewCardProps { categoryName?: string cityName?: string data: EventWizardFormData endsAt: string startsAt: string } interface PreviewField { full?: boolean label: string value: string } /** Read-only event card that mirrors the information guests see before booking. */ export default function CreateEventPreviewCard({ categoryName, cityName, data, endsAt, startsAt }: CreateEventPreviewCardProps) { const fields = [ { label: texts.common.category, value: categoryName || texts.status.empty }, { label: texts.events.start, value: startsAt || texts.status.empty }, { label: texts.events.end, value: endsAt || texts.status.empty }, { label: texts.events.location, value: cityName || texts.status.empty }, { label: texts.events.price, value: data.isFree ? texts.events.free : formatToman(data.price) }, { label: texts.events.capacity, value: String(data.capacity) }, { full: true, label: texts.events.address, value: data.address || texts.status.empty }, ] satisfies PreviewField[] const poster = [...data.media].sort((a, b) => a.sortOrder - b.sortOrder).find((item) => item.isPoster) ?? data.media[0] return (

{categoryName || texts.events.eventCategoryFallback}

{data.title || texts.events.eventTitleLabel}

{data.shortDescription ?

{data.shortDescription}

: null}
{fields.map((field) => (

{field.label}

{field.value}

))}
) }