balibabu
fix: #209 after saving the knowledge base configuration, jump to the dataset page (#212)
badd5fe
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]); | |
}; | |