import { Button, H6, Input, ListDropdown } from "~/components"; import { UploadFile } from "~/components/UploadModalMovement/UploadFile"; import { useState } from "react"; import { MediaFileAnimationType } from "~/api/media_files/UploadNewEngineAsset"; interface Props { title: string; fileTypes: string[]; onClose: () => void; typeOptions: { [key: string]: string }[]; onSubmit: (options: { title: string; typeOption: MediaFileAnimationType; assetFile: File; length: number; thumbnailFile: File | null; }) => void; } export const UploadFiles = ({ fileTypes, onClose, title, typeOptions, onSubmit, }: Props) => { const [typeOption, setTypeOption] = useState( Object.values(typeOptions[0])[0] as MediaFileAnimationType, ); const [uploadTitle, setUploadTitle] = useState(""); const [uploadLength, setUploadLength] = useState(); const [titleError, setTitleError] = useState(""); const [assetFileError, setAssetFileError] = useState(""); const [assetFile, setAssetFile] = useState(null); const [thumbnailFile, setThumbnailFile] = useState(null); const handleSubmit = () => { if (!uploadTitle) { setTitleError("Please enter the title"); } else { setTitleError(""); } if (!assetFile) { setAssetFileError("Please select a file to upload"); } else { setAssetFileError(""); } if (!uploadTitle || !assetFile) { return; } onSubmit({ title: uploadTitle, assetFile: assetFile, thumbnailFile: thumbnailFile, length: uploadLength ?? 1000, typeOption, }); }; return ( <>
setUploadTitle(event.target.value)} className={titleError ? "mb-3" : ""} /> {typeOptions.length > 1 && ( setTypeOption(value as MediaFileAnimationType)} /> )} setUploadLength(parseInt(event.target.value))} /> {assetFileError &&
{assetFileError}
}
); };