import { type FormEvent } from "react"; import { Upload } from "lucide-react"; import type { Visibility } from "../../services/api"; import { AppFormDialog, dialogPrimaryButtonClass, dialogSecondaryButtonClass, } from "~/components/common/AppFormDialog"; import { Button } from "~/components/ui/button"; import { formFieldClass, formHintClass, formInputClass, formTextareaClass, modalFormClass, } from "./modalUi"; type DataResourceUploadModalProps = { open: boolean; file: File | null; resourceName: string; visibility: Visibility; description: string; uploading: boolean; parentPath: string; targetPath: string; onNameChange: (name: string) => void; onVisibilityChange: (visibility: Visibility) => void; onDescriptionChange: (description: string) => void; onTargetPathChange: (path: string) => void; onSubmit: (event: FormEvent) => void; onClose: () => void; }; export function DataResourceUploadModal({ open, file, resourceName, visibility, description, uploading, parentPath, targetPath, onNameChange, onVisibilityChange, onDescriptionChange, onTargetPathChange, onSubmit, onClose, }: DataResourceUploadModalProps) { const finalTarget = targetPath.trim(); const finalPath = finalTarget ? `${finalTarget}/${file?.name ?? ""}` : file?.name ?? ""; return ( { if (!nextOpen && !uploading) onClose(); }} eyebrow="数据资源" title="上传数据文件" >