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; type: string; } const initFormValue = { act: '', enable: true, tags: [], prompt: '', }; const SyncForm: ForwardRefRenderFunction = ({ record, type }, ref) => { const isDisabled = type === 'edit'; 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);