import { useState } from "react"; import { Button, Paper, Stack, Text } from "@mantine/core"; import { Upload } from "lucide-react"; import { PhasedMultiFileDropzone } from "@/components/contracts/PhasedFileDropzone"; import { PhasedUploadedFileRow } from "@/components/contracts/PhasedUploadedFileRow"; export type TransitPermitUploadedRow = { code: string; label: string; file: { id: string; name: string }; }; export interface TransitPermitMultiUploadProps { title?: string; uploaded?: TransitPermitUploadedRow[]; replaceMode?: boolean; submitLabel?: string; fileFieldPrefix: string; disabled?: boolean; onSubmit: (files: Record) => Promise; onViewFile?: (file: { name: string; url: string }) => void; onDownloadFile?: (file: { id: string; name: string }) => void; } /** Multi-file transit permit upload — import pre-booking and export post-booking. */ export function TransitPermitMultiUpload({ title = "Transit Permit", uploaded = [], replaceMode = false, submitLabel, fileFieldPrefix, disabled = false, onSubmit, onViewFile, onDownloadFile, }: TransitPermitMultiUploadProps) { const [files, setFiles] = useState([]); const [loading, setLoading] = useState(false); const label = submitLabel ?? (replaceMode ? "Replace transit permit" : "Upload transit permit"); return ( {title} {uploaded.length > 0 ? ( Current file{uploaded.length > 1 ? "s" : ""} {uploaded.map((row) => ( ))} ) : null} ); }