import { DynamicForm, FormFieldConfig } from '@/components/dynamic-form'; import { Modal } from '@/components/ui/modal/modal'; import { IModalProps } from '@/interfaces/common'; import { useEffect, useState } from 'react'; import { FieldValues } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import { DataSourceFormBaseFields, DataSourceFormDefaultValues, DataSourceFormFields, } from './contant'; import { IDataSorceInfo } from './interface'; const AddDataSourceModal = ({ visible, hideModal, loading, sourceData, onOk, }: IModalProps & { sourceData?: IDataSorceInfo }) => { const { t } = useTranslation(); const [fields, setFields] = useState([]); useEffect(() => { if (sourceData) { setFields([ ...DataSourceFormBaseFields, ...DataSourceFormFields[ sourceData.id as keyof typeof DataSourceFormFields ], ] as FormFieldConfig[]); } }, [sourceData]); const handleOk = async (values?: FieldValues) => { await onOk?.(values); hideModal?.(); }; return (
{sourceData?.icon}
{t('setting.addDataSourceModalTital', { name: sourceData?.name })} } open={visible || false} onOpenChange={(open) => !open && hideModal?.()} maskClosable={false} // onOk={() => handleOk()} okText={t('common.confirm')} cancelText={t('common.cancel')} footer={
} > { console.log(data); }} defaultValues={ DataSourceFormDefaultValues[ sourceData?.id as keyof typeof DataSourceFormDefaultValues ] as FieldValues } labelClassName="font-normal" >
{ hideModal?.(); }} /> { handleOk(values); }} />
); }; export default AddDataSourceModal;