| import { Button } from '@/components/ui/button'; | |
| import { | |
| Dialog, | |
| DialogContent, | |
| DialogFooter, | |
| DialogHeader, | |
| DialogTitle, | |
| } from '@/components/ui/dialog'; | |
| import { | |
| Form, | |
| FormControl, | |
| FormField, | |
| FormItem, | |
| FormLabel, | |
| FormMessage, | |
| } from '@/components/ui/form'; | |
| import { Input } from '@/components/ui/input'; | |
| import { IModalProps } from '@/interfaces/common'; | |
| import { zodResolver } from '@hookform/resolvers/zod'; | |
| import { useForm } from 'react-hook-form'; | |
| import { useTranslation } from 'react-i18next'; | |
| import { z } from 'zod'; | |
| const FormId = 'dataset-creating-form'; | |
| export function InputForm() { | |
| const { t } = useTranslation(); | |
| const FormSchema = z.object({ | |
| name: z | |
| .string() | |
| .min(1, { | |
| message: t('knowledgeList.namePlaceholder'), | |
| }) | |
| .trim(), | |
| }); | |
| const form = useForm<z.infer<typeof FormSchema>>({ | |
| resolver: zodResolver(FormSchema), | |
| defaultValues: { | |
| name: '', | |
| }, | |
| }); | |
| function onSubmit(data: z.infer<typeof FormSchema>) { | |
| console.log('π ~ onSubmit ~ data:', data); | |
| } | |
| return ( | |
| <Form {...form}> | |
| <form | |
| onSubmit={form.handleSubmit(onSubmit)} | |
| className="space-y-6" | |
| id={FormId} | |
| > | |
| <FormField | |
| control={form.control} | |
| name="name" | |
| render={({ field }) => ( | |
| <FormItem> | |
| <FormLabel>{t('knowledgeList.name')}</FormLabel> | |
| <FormControl> | |
| <Input | |
| placeholder={t('knowledgeList.namePlaceholder')} | |
| {...field} | |
| /> | |
| </FormControl> | |
| <FormMessage /> | |
| </FormItem> | |
| )} | |
| /> | |
| </form> | |
| </Form> | |
| ); | |
| } | |
| export function DatasetCreatingDialog({ hideModal }: IModalProps<any>) { | |
| const { t } = useTranslation(); | |
| return ( | |
| <Dialog open onOpenChange={hideModal}> | |
| <DialogContent className="sm:max-w-[425px]"> | |
| <DialogHeader> | |
| <DialogTitle>{t('knowledgeList.createKnowledgeBase')}</DialogTitle> | |
| </DialogHeader> | |
| <InputForm></InputForm> | |
| <DialogFooter> | |
| <Button type="submit" variant={'tertiary'} size={'sm'} form={FormId}> | |
| {t('common.save')} | |
| </Button> | |
| </DialogFooter> | |
| </DialogContent> | |
| </Dialog> | |
| ); | |
| } | |