import { useTranslate } from '@/hooks/common-hooks'; import { IModalProps } from '@/interfaces/common'; import { InboxOutlined } from '@ant-design/icons'; import { Modal, Upload, UploadFile, UploadProps } from 'antd'; import { Dispatch, SetStateAction, useState } from 'react'; import { FileMimeType } from '@/constants/common'; import styles from './index.less'; const { Dragger } = Upload; const FileUpload = ({ directory, fileList, setFileList, }: { directory: boolean; fileList: UploadFile[]; setFileList: Dispatch>; }) => { const { t } = useTranslate('fileManager'); const props: UploadProps = { multiple: false, accept: FileMimeType.Json, onRemove: (file) => { const index = fileList.indexOf(file); const newFileList = fileList.slice(); newFileList.splice(index, 1); setFileList(newFileList); }, beforeUpload: (file) => { setFileList(() => { return [file]; }); return false; }, directory, fileList, }; return (

{t('uploadTitle')}

{t('uploadDescription')}

{false &&

{t('uploadLimit')}

}
); }; const JsonUploadModal = ({ visible, hideModal, loading, onOk: onFileUploadOk, }: IModalProps) => { const { t } = useTranslate('fileManager'); const [fileList, setFileList] = useState([]); const [directoryFileList, setDirectoryFileList] = useState([]); const clearFileList = () => { setFileList([]); setDirectoryFileList([]); }; const onOk = async () => { const ret = await onFileUploadOk?.([...fileList, ...directoryFileList]); return ret; }; const afterClose = () => { clearFileList(); }; return ( ); }; export default JsonUploadModal;