import React, { useRef, useState } from 'react'; import { useRouter } from 'next/router'; import { Box, Flex } from '@chakra-ui/react'; import { useToast } from '@/hooks/useToast'; import { useForm } from 'react-hook-form'; import { useQuery } from '@tanstack/react-query'; import { useUserStore } from '@/store/user'; import { KbItemType } from '@/types/plugin'; import { useScreen } from '@/hooks/useScreen'; import { getErrText } from '@/utils/tools'; import Info, { type ComponentRef } from './Info'; import Tabs from '@/components/Tabs'; import dynamic from 'next/dynamic'; import DataCard from './DataCard'; const Test = dynamic(() => import('./Test'), { ssr: false }); enum TabEnum { data = 'data', test = 'test', info = 'info' } const Detail = ({ kbId }: { kbId: string }) => { const { toast } = useToast(); const router = useRouter(); const { isPc } = useScreen(); const BasicInfo = useRef(null); const { setLastKbId, kbDetail, getKbDetail, loadKbList, myKbList } = useUserStore(); const [currentTab, setCurrentTab] = useState(TabEnum.data); const form = useForm({ defaultValues: kbDetail }); const { reset } = form; useQuery([kbId], () => getKbDetail(kbId), { onSuccess(res) { kbId && setLastKbId(kbId); if (res) { setCurrentTab(TabEnum.data); reset(res); BasicInfo.current?.initInput?.(res.tags); } }, onError(err: any) { loadKbList(true); setLastKbId(''); router.replace(`/kb`); toast({ title: getErrText(err, '获取知识库异常'), status: 'error' }); } }); return ( setCurrentTab(e)} /> {currentTab === TabEnum.data && } {currentTab === TabEnum.test && } {currentTab === TabEnum.info && } ); }; export default Detail;