fix:input file validator

This commit is contained in:
Rama Priyanto 2025-06-11 12:26:16 +07:00
parent f8829985f6
commit 5418d97ad5
2 changed files with 110 additions and 109 deletions

View File

@ -19,11 +19,18 @@ interface FileUploaderProps {
isMultiple?: boolean; isMultiple?: boolean;
} }
const FileUploader = ({ onDrop, accept, maxSize, label, className = "", isMultiple = true }: FileUploaderProps) => { const FileUploader = ({
onDrop,
accept,
maxSize,
label,
className = "",
isMultiple = true,
}: FileUploaderProps) => {
const [files, setFiles] = useState<FileWithPreview[]>([]); const [files, setFiles] = useState<FileWithPreview[]>([]);
const { getRootProps, getInputProps } = useDropzone({ const { getRootProps, getInputProps } = useDropzone({
accept, accept: accept,
maxSize: maxSize * 1024 * 1024, maxSize: maxSize * 1024 * 1024,
onDrop: (acceptedFiles) => { onDrop: (acceptedFiles) => {
const mappedFiles = acceptedFiles.map((file) => Object.assign(file)); const mappedFiles = acceptedFiles.map((file) => Object.assign(file));
@ -111,10 +118,7 @@ const FileUploader = ({ onDrop, accept, maxSize, label, className = "", isMultip
<Fragment> <Fragment>
<div>{fileList}</div> <div>{fileList}</div>
<div className=" flex justify-between gap-2"> <div className=" flex justify-between gap-2">
<Button <Button color="destructive" onClick={handleRemoveAllFiles}>
color="destructive"
onClick={handleRemoveAllFiles}
>
Remove All Remove All
</Button> </Button>
</div> </div>
@ -122,7 +126,6 @@ const FileUploader = ({ onDrop, accept, maxSize, label, className = "", isMultip
) : null} ) : null}
</Fragment> </Fragment>
); );
} };
export default FileUploader; export default FileUploader;

View File

@ -805,8 +805,7 @@ export default function FormTask() {
<Label>{t("audio-visual")}</Label> <Label>{t("audio-visual")}</Label>
<FileUploader <FileUploader
accept={{ accept={{
"mp4/*": [], "video/*": [],
"mov/*": [],
}} }}
maxSize={100} maxSize={100}
label="Upload file dengan format .mp4 atau .mov." label="Upload file dengan format .mp4 atau .mov."
@ -828,7 +827,7 @@ export default function FormTask() {
<Label>{t("text")}</Label> <Label>{t("text")}</Label>
<FileUploader <FileUploader
accept={{ accept={{
"pdf/*": [], "application/pdf": [],
}} }}
maxSize={100} maxSize={100}
label="Upload file dengan format .pdf." label="Upload file dengan format .pdf."
@ -848,8 +847,7 @@ export default function FormTask() {
/> />
<FileUploader <FileUploader
accept={{ accept={{
"mp3/*": [], "audio/*": [],
"wav/*": [],
}} }}
maxSize={100} maxSize={100}
label="Upload file dengan format .mp3 atau .wav." label="Upload file dengan format .mp3 atau .wav."