Spaces:
Build error
Build error
'use client' | |
import React, { useState } from 'react' | |
import { useRouter } from 'next/navigation' | |
import { useTranslation } from 'react-i18next' | |
import { useContext } from 'use-context-selector' | |
import s from './index.module.css' | |
import cn from '@/utils/classnames' | |
import Modal from '@/app/components/base/modal' | |
import Input from '@/app/components/base/input' | |
import Button from '@/app/components/base/button' | |
import { ToastContext } from '@/app/components/base/toast' | |
import { createEmptyDataset } from '@/service/datasets' | |
type IProps = { | |
show: boolean | |
onHide: () => void | |
} | |
const EmptyDatasetCreationModal = ({ | |
show = false, | |
onHide, | |
}: IProps) => { | |
const [inputValue, setInputValue] = useState('') | |
const { t } = useTranslation() | |
const { notify } = useContext(ToastContext) | |
const router = useRouter() | |
const submit = async () => { | |
if (!inputValue) { | |
notify({ type: 'error', message: t('datasetCreation.stepOne.modal.nameNotEmpty') }) | |
return | |
} | |
if (inputValue.length > 40) { | |
notify({ type: 'error', message: t('datasetCreation.stepOne.modal.nameLengthInvalid') }) | |
return | |
} | |
try { | |
const dataset = await createEmptyDataset({ name: inputValue }) | |
onHide() | |
router.push(`/datasets/${dataset.id}/documents`) | |
} | |
catch (err) { | |
notify({ type: 'error', message: t('datasetCreation.stepOne.modal.failed') }) | |
} | |
} | |
return ( | |
<Modal | |
isShow={show} | |
onClose={onHide} | |
className={cn(s.modal, '!max-w-[520px]', 'px-8')} | |
> | |
<div className={s.modalHeader}> | |
<div className={s.title}>{t('datasetCreation.stepOne.modal.title')}</div> | |
<span className={s.close} onClick={onHide} /> | |
</div> | |
<div className={s.tip}>{t('datasetCreation.stepOne.modal.tip')}</div> | |
<div className={s.form}> | |
<div className={s.label}>{t('datasetCreation.stepOne.modal.input')}</div> | |
<Input value={inputValue} placeholder={t('datasetCreation.stepOne.modal.placeholder') || ''} onChange={e => setInputValue(e.target.value)} /> | |
</div> | |
<div className='flex flex-row-reverse'> | |
<Button className='w-24 ml-2' variant='primary' onClick={submit}>{t('datasetCreation.stepOne.modal.confirmButton')}</Button> | |
<Button className='w-24' onClick={onHide}>{t('datasetCreation.stepOne.modal.cancelButton')}</Button> | |
</div> | |
</Modal> | |
) | |
} | |
export default EmptyDatasetCreationModal | |