import { NodeProps, NodeResizeControl } from '@xyflow/react'; import { Form, FormControl, FormField, FormItem, FormMessage, } from '@/components/ui/form'; import { Input } from '@/components/ui/input'; import { Textarea } from '@/components/ui/textarea'; import { INoteNode } from '@/interfaces/database/flow'; import { zodResolver } from '@hookform/resolvers/zod'; import { NotebookPen } from 'lucide-react'; import { memo } from 'react'; import { useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import { z } from 'zod'; import { NodeWrapper } from '../node-wrapper'; import { ResizeIcon, controlStyle } from '../resize-icon'; import { useWatchFormChange, useWatchNameFormChange } from './use-watch-change'; const FormSchema = z.object({ text: z.string(), }); const NameFormSchema = z.object({ name: z.string(), }); function NoteNode({ data, id, selected }: NodeProps) { const { t } = useTranslation(); const form = useForm>({ resolver: zodResolver(FormSchema), defaultValues: data.form, }); const nameForm = useForm>({ resolver: zodResolver(NameFormSchema), defaultValues: { name: data.name }, }); useWatchFormChange(id, form); useWatchNameFormChange(id, nameForm); return (
( )} />
(