Spaces:
Build error
Build error
'use client' | |
import type { FC } from 'react' | |
import React, { useEffect, useState } from 'react' | |
import { useTranslation } from 'react-i18next' | |
import { RiCloseLine } from '@remixicon/react' | |
import CSVUploader from './csv-uploader' | |
import CSVDownloader from './csv-downloader' | |
import Button from '@/app/components/base/button' | |
import Modal from '@/app/components/base/modal' | |
import type { DocForm } from '@/models/datasets' | |
export type IBatchModalProps = { | |
isShow: boolean | |
docForm: DocForm | |
onCancel: () => void | |
onConfirm: (file: File) => void | |
} | |
const BatchModal: FC<IBatchModalProps> = ({ | |
isShow, | |
docForm, | |
onCancel, | |
onConfirm, | |
}) => { | |
const { t } = useTranslation() | |
const [currentCSV, setCurrentCSV] = useState<File>() | |
const handleFile = (file?: File) => setCurrentCSV(file) | |
const handleSend = () => { | |
if (!currentCSV) | |
return | |
onCancel() | |
onConfirm(currentCSV) | |
} | |
useEffect(() => { | |
if (!isShow) | |
setCurrentCSV(undefined) | |
}, [isShow]) | |
return ( | |
<Modal isShow={isShow} onClose={() => { }} className='px-8 py-6 !max-w-[520px] !rounded-xl'> | |
<div className='relative pb-1 text-xl font-medium leading-[30px] text-gray-900'>{t('datasetDocuments.list.batchModal.title')}</div> | |
<div className='absolute right-4 top-4 p-2 cursor-pointer' onClick={onCancel}> | |
<RiCloseLine className='w-4 h-4 text-gray-500' /> | |
</div> | |
<CSVUploader | |
file={currentCSV} | |
updateFile={handleFile} | |
/> | |
<CSVDownloader | |
docForm={docForm} | |
/> | |
<div className='mt-[28px] pt-6 flex justify-end'> | |
<Button className='mr-2' onClick={onCancel}> | |
{t('datasetDocuments.list.batchModal.cancel')} | |
</Button> | |
<Button variant="primary" onClick={handleSend} disabled={!currentCSV}> | |
{t('datasetDocuments.list.batchModal.run')} | |
</Button> | |
</div> | |
</Modal> | |
) | |
} | |
export default React.memo(BatchModal) | |