| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | 'use client'import React, { useState } from 'react'import { useRouter } from 'next/navigation'import { useTranslation } from 'react-i18next'import { useContext } from 'use-context-selector'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'import cn from 'classnames'import s from './index.module.css'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.nameLengthInvaild') })      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    }  }  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 className='!h-8' value={inputValue} placeholder={t('datasetCreation.stepOne.modal.placeholder') || ''} onChange={setInputValue} />      </div>      <div className='flex flex-row-reverse'>        <Button className='w-24 ml-2' type='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
 |