import React from 'react'; import { ModalFooter, ModalBody, Button, Flex, Box } from '@chakra-ui/react'; import MyModal from '@fastgpt/web/components/common/MyModal/index'; import { useTranslation } from 'next-i18next'; import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; import { useForm } from 'react-hook-form'; import { useToast } from '@fastgpt/web/hooks/useToast'; import { type APIFileServer, type FeishuServer, type YuqueServer } from '@fastgpt/global/core/dataset/apiDataset'; import ApiDatasetForm from '@/pageComponents/dataset/ApiDatasetForm'; import { useContextSelector } from 'use-context-selector'; import { DatasetPageContext } from '@/web/core/dataset/context/datasetPageContext'; import { datasetTypeCourseMap } from '@/web/core/dataset/constants'; import { getDocPath } from '@/web/common/system/doc'; import MyIcon from '@fastgpt/web/components/common/Icon'; export type EditAPIDatasetInfoFormType = { id: string; apiServer?: APIFileServer; yuqueServer?: YuqueServer; feishuServer?: FeishuServer; }; const EditAPIDatasetInfoModal = ({ onClose, onEdit, title, ...defaultForm }: EditAPIDatasetInfoFormType & { title: string; onClose: () => void; onEdit: (data: EditAPIDatasetInfoFormType) => any; }) => { const { t } = useTranslation(); const { toast } = useToast(); const datasetDetail = useContextSelector(DatasetPageContext, (v) => v.datasetDetail); const type = datasetDetail.type; const form = useForm({ defaultValues: defaultForm }); const { runAsync: onSave, loading } = useRequest2( (data: EditAPIDatasetInfoFormType) => onEdit(data), { onSuccess: (res) => { toast({ title: t('common:update_success'), status: 'success' }); onClose(); } } ); return ( {datasetTypeCourseMap[type] && ( {t('dataset:apidataset_configuration')} window.open(getDocPath(datasetTypeCourseMap[type]), '_blank')} > {t('common:Instructions')} )} {/* @ts-ignore */} ); }; export default EditAPIDatasetInfoModal;