import {useEffect, useState} from 'react'; import { ColorButtonKey } from '../interfaces'; import BaseButton from './BaseButton'; import FileUploader from "./Uploaders/UploadService"; import { mdiReload } from '@mdi/js'; import { useAppSelector } from '../stores/hooks'; type Props = { label?: string; icon?: string; accept?: string; color: ColorButtonKey; isRoundIcon?: boolean; path: string; schema: object; field: any; form: any; }; const FormFilePicker = ({ label, icon, accept, color, isRoundIcon, path, schema, form, field, }: Props) => { const [file, setFile] = useState(null); const [loading, setLoading] = useState(false); const corners = useAppSelector((state) => state.style.corners); const bgColor = useAppSelector((state) => state.style.cardsColor); let cornersRight; if (corners === 'rounded'){ cornersRight = 'rounded-r' } else if (corners === 'rounded-lg'){ cornersRight = 'rounded-r-lg' }else if (corners === 'rounded-full'){ cornersRight = 'rounded-r-3xl' }else{ cornersRight = '' } useEffect(() => { if (field.value) { setFile(field.value[0]); } }, [field.value]); const handleFileChange = async (event) => { const file = event.currentTarget.files[0]; setFile(file); FileUploader.validate(file, schema); setLoading(true); const remoteFile = await FileUploader.upload(path, file, schema); form.setFieldValue(field.name, [{ ...remoteFile }]); setLoading(false); }; const showFilename = !isRoundIcon && file; return (