import { type FC } from 'react' import type { RequestDetailItemType } from '../types/Types' import { useGetEntityField } from '@/pages/formBuilder/hooks/useFormBuilderData' import { Paperclip2 } from 'iconsax-react' import placeholderProductImage from '@/assets/images/placeholder-product.svg' type Props = { item: RequestDetailItemType } const RequestItem: FC = ({ item }) => { const { data: fields } = useGetEntityField(String(item.product?.id ?? '')) const attributes = item.attributes ?? [] const getAttributeFieldId = (attribute: NonNullable[number]) => attribute.fieldId ?? attribute.attributeId ?? attribute.field?.id const fieldRows = fields?.data?.map((field) => ({ id: field.id, name: field.name, value: attributes.find((attribute) => String(getAttributeFieldId(attribute)) === String(field.id))?.value, })) ?? [] const matchedFieldIds = new Set(fieldRows.map((field) => String(field.id))) const extraAttributeRows = attributes .filter((attribute) => { const fieldId = getAttributeFieldId(attribute) return fieldId && !matchedFieldIds.has(String(fieldId)) }) .map((attribute) => ({ id: String(getAttributeFieldId(attribute)), name: attribute.field?.name ?? String(getAttributeFieldId(attribute)), value: attribute.value, })) const attributeRows = [...fieldRows, ...extraAttributeRows] const handleOpenAttachment = (url: string) => { window.open(url, '_blank') } const productImage = item.product?.images?.[0] return (
{/* Product Image */}
{item.product?.title { e.currentTarget.src = placeholderProductImage }} />
{/* Request Details */}
عنوان:
{item.product?.title}
تعداد:
{item.quantity}
{/* Description */} {item.description && (
شرح درخواست:

{item.description}

)} {/* Attributes */} {attributeRows.length ? ( <>
ویژگی ها
{ attributeRows.map((field) => (
{field.name}:
{field.value || '-'}
)) } ) : null} {/* Attachments */} {item.attachments?.length ? (
ضمایم:
{item.attachments ?.filter((url): url is string => typeof url === 'string') .map((url, index) => ( ))}
) : null}
) } export default RequestItem