import { useEffect, useState, ForwardRefRenderFunction, useImperativeHandle, forwardRef } from 'react'; import { Form, Input, Select, Tooltip } from 'antd'; import { v4 } from 'uuid'; import type { FormProps } from 'antd'; import { DISABLE_AUTO_COMPLETE, chatRoot } from '@/utils'; import useInit from '@/hooks/useInit'; interface SyncFormProps { record?: Record | null; } const initFormValue = { act: '', enable: true, tags: [], prompt: '', }; const SyncForm: ForwardRefRenderFunction = ({ record }, ref) => { const [form] = Form.useForm(); useImperativeHandle(ref, () => ({ form })); const [root, setRoot] = useState(''); useInit(async () => { setRoot(await chatRoot()); }); useEffect(() => { if (record) { form.setFieldsValue(record); } }, [record]); const pathOptions = ( ); const extOptions = ( ); const jsonTip = ( {JSON.stringify([ { cmd: '', act: '', prompt: '' }, { cmd: '', act: '', prompt: '' }, ], null, 2)}} > JSON ); const csvTip = ( {`"cmd","act","prompt" "cmd","act","prompt" "cmd","act","prompt" "cmd","act","prompt"`}} > CSV ); return ( <>

The file supports only {csvTip} and {jsonTip} formats.

) } export default forwardRef(SyncForm);