'use client'; import { ReadonlyTimeRange } from './time-range/readonly'; import { getBadge } from '@/components/shared/status'; import type * as GQL from '@repo/graphql/types'; import { Avatar, AvatarFallback, AvatarImage } from '@repo/ui/components/ui/avatar'; import { formatDate } from '@repo/utils/datetime-format'; import Link from 'next/link'; type OrderComponentProps = GQL.OrderFieldsFragment & { avatarSource?: 'client' | 'master'; showDate?: boolean; }; type OrderCustomer = GQL.CustomerFieldsFragment; export function OrderCard({ avatarSource, documentId, showDate, ...order }: Readonly) { const services = order?.services.map((service) => service?.name).join(', '); const customer = avatarSource === 'master' ? order?.slot?.master : order?.client; return (
{order.order_number && ( {order.order_number} )}
{customer && }
{showDate && order?.slot?.datetime_start ? `${formatDate(order?.slot?.datetime_start).user('DD.MM.YYYY')} • ` : ''} {services}
{order?.state && getBadge(order.state)}
); } function CustomerAvatar({ customer }: { readonly customer: OrderCustomer }) { if (!customer) return null; return ( {customer.name.charAt(0)} ); }