import { FormContainer } from '@/components/form-container'; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from '@/components/ui/form'; import { Input } from '@/components/ui/input'; import { RAGFlowSelect } from '@/components/ui/select'; import { buildOptions } from '@/utils/form'; import { zodResolver } from '@hookform/resolvers/zod'; import { memo } from 'react'; import { useForm } from 'react-hook-form'; import { z } from 'zod'; import { TavilyExtractDepth, TavilyExtractFormat, initialTavilyExtractValues, } from '../../constant'; import { useFormValues } from '../../hooks/use-form-values'; import { useWatchFormChange } from '../../hooks/use-watch-form-change'; import { INextOperatorForm } from '../../interface'; import { buildOutputList } from '../../utils/build-output-list'; import { FormWrapper } from '../components/form-wrapper'; import { Output } from '../components/output'; import { TavilyApiKeyField, TavilyFormSchema } from '../tavily-form'; const outputList = buildOutputList(initialTavilyExtractValues.outputs); function TavilyExtractForm({ node }: INextOperatorForm) { const values = useFormValues(initialTavilyExtractValues, node); const FormSchema = z.object({ ...TavilyFormSchema, urls: z.string(), extract_depth: z.enum([ TavilyExtractDepth.Advanced, TavilyExtractDepth.Basic, ]), format: z.enum([TavilyExtractFormat.Text, TavilyExtractFormat.Markdown]), }); const form = useForm>({ defaultValues: values, resolver: zodResolver(FormSchema), }); useWatchFormChange(node?.id, form); return (
( URL )} /> ( Extract Depth )} /> ( Format )} />
); } export default memo(TavilyExtractForm);