+ {children} +
+ ); +} + +interface EmptyMediaPlaceholderProps { + icon: ReactNode; + title: string; + description: string; + className?: string; + disabled?: boolean; + onClick: () => void; +} + +function EmptyMediaPlaceholder({ + icon, + title, + description, + className, + disabled = false, + onClick, +}: EmptyMediaPlaceholderProps) { return ( ); } -interface ImageSlotProps { - file: File | null; - previewUrl: string | null; +interface ImageThumbnailProps { + file: File; + previewUrl: string; disabled?: boolean; - onAdd: () => void; onRemove: () => void; } -function ImageSlot({ +function ImageThumbnail({ file, previewUrl, disabled = false, - onAdd, onRemove, -}: ImageSlotProps) { - if (file && previewUrl) { - return ( -Instructions
++ Upload clear photos and one video of the repaired area and provide + relevant details. +
++ Request more time to complete the repair. Your manager will review the + request. +
++ Requested date must be after the current due date. +
+ ) : null} ++ This request will be sent to your manager for approval. +
+ +Requested By
+{name}
+Requested On
++ {formatDate(request.requested_at)} +
+Request Summary
++ Current Due Date +
++ {formatDate(request.current_due_at)} +
++ Requested Due Date +
++ {formatDate(request.requested_due_at)} +
+ {extensionDays > 0 ? ( + + +{extensionDays} {extensionDays === 1 ? 'Day' : 'Days'} + + ) : null} +Reason
+{request.reason}
+{label}
+{value}
+ {children} +{config.title}
+{config.description}
+Request Details
+Manager Response
+Original Due Date
++ Extension request details could not be loaded. +
+ +