import { KnowledgeRouteKey, KnowledgeSearchParams, } from '@/constants/knowledge'; import { useCallback } from 'react'; import { useLocation, useNavigate, useSearchParams } from 'umi'; export enum SegmentIndex { Second = '2', Third = '3', } export const useSegmentedPathName = (index: SegmentIndex) => { const { pathname } = useLocation(); const pathArray = pathname.split('/'); return pathArray[index] || ''; }; export const useSecondPathName = () => { return useSegmentedPathName(SegmentIndex.Second); }; export const useThirdPathName = () => { return useSegmentedPathName(SegmentIndex.Third); }; export const useGetKnowledgeSearchParams = () => { const [currentQueryParameters] = useSearchParams(); return { documentId: currentQueryParameters.get(KnowledgeSearchParams.DocumentId) || '', knowledgeId: currentQueryParameters.get(KnowledgeSearchParams.KnowledgeId) || '', }; }; export const useNavigateWithFromState = () => { const navigate = useNavigate(); return useCallback( (path: string) => { navigate(path, { state: { from: path } }); }, [navigate], ); }; export const useNavigateToDataset = () => { const navigate = useNavigate(); const { knowledgeId } = useGetKnowledgeSearchParams(); return useCallback(() => { navigate(`/knowledge/${KnowledgeRouteKey.Dataset}?id=${knowledgeId}`); }, [knowledgeId, navigate]); };