import { IModalProps } from '@/interfaces/common'; import { IDocumentInfo } from '@/interfaces/database/document'; import Editor, { loader } from '@monaco-editor/react'; import { Form, Modal } from 'antd'; import DOMPurify from 'dompurify'; import { useCallback, useEffect } from 'react'; import { useTranslation } from 'react-i18next'; loader.config({ paths: { vs: '/vs' } }); type FieldType = { meta?: string; }; export function SetMetaModal({ visible, hideModal, onOk, initialMetaData, }: IModalProps & { initialMetaData?: IDocumentInfo['meta_fields'] }) { const { t } = useTranslation(); const [form] = Form.useForm(); const handleOk = useCallback(async () => { const values = await form.validateFields(); onOk?.(values.meta); }, [form, onOk]); useEffect(() => { form.setFieldValue('meta', JSON.stringify(initialMetaData, null, 4)); }, [form, initialMetaData]); return (
label={t('knowledgeDetails.metaData')} name="meta" rules={[ { required: true, validator(rule, value) { try { JSON.parse(value); return Promise.resolve(); } catch (error) { return Promise.reject( new Error(t('knowledgeDetails.pleaseInputJson')), ); } }, }, ]} tooltip={
} >
); }