import { Button, Form, Input, Select, Upload, Image, UploadFile, GetProp, UploadProps, } from 'antd'; import { useState } from 'react'; import { useTranslation } from 'react-i18next'; const { Option } = Select; type FileType = Parameters>[0]; const getBase64 = (file: FileType): Promise => new Promise((resolve, reject) => { const reader = new FileReader(); reader.readAsDataURL(file); reader.onload = () => resolve(reader.result as string); reader.onerror = (error) => reject(error); }); export default function UserCreate() { const { t } = useTranslation(); const [previewOpen, setPreviewOpen] = useState(false); const [previewImage, setPreviewImage] = useState(''); const [fileList, setFileList] = useState([]); const handlePreview = async (file: UploadFile) => { if (!file.url && !file.preview) { file.preview = await getBase64(file.originFileObj as FileType); } setPreviewImage(file.url || (file.preview as string)); setPreviewOpen(true); }; const handleChange: UploadProps['onChange'] = ({ fileList: newFileList }) => setFileList(newFileList); const customUploadButton = (
add_photo_alternate
{t('selectPhoto')}
); const photoToUpload = (
false} > {fileList.length > 0 ? null : customUploadButton} {previewImage && ( setPreviewOpen(visible), afterOpenChange: (visible) => !visible && setPreviewImage(''), }} src={previewImage} /> )}
); return (
{photoToUpload}
); }