|
import { Routes } from '@/routes'; |
|
import { useCallback } from 'react'; |
|
import { useNavigate, useParams, useSearchParams } from 'umi'; |
|
|
|
export enum QueryStringMap { |
|
KnowledgeId = 'knowledgeId', |
|
} |
|
|
|
export const useNavigatePage = () => { |
|
const navigate = useNavigate(); |
|
const [searchParams] = useSearchParams(); |
|
const { id } = useParams(); |
|
|
|
const navigateToDatasetList = useCallback(() => { |
|
navigate(Routes.Datasets); |
|
}, [navigate]); |
|
|
|
const navigateToDataset = useCallback( |
|
(id: string) => () => { |
|
navigate(`${Routes.Dataset}/${id}`); |
|
}, |
|
[navigate], |
|
); |
|
|
|
const navigateToHome = useCallback(() => { |
|
navigate(Routes.Home); |
|
}, [navigate]); |
|
|
|
const navigateToProfile = useCallback(() => { |
|
navigate(Routes.ProfileSetting); |
|
}, [navigate]); |
|
|
|
const navigateToChatList = useCallback(() => { |
|
navigate(Routes.Chats); |
|
}, [navigate]); |
|
|
|
const navigateToChat = useCallback(() => { |
|
navigate(Routes.Chat); |
|
}, [navigate]); |
|
|
|
const navigateToAgentList = useCallback(() => { |
|
navigate(Routes.Agents); |
|
}, [navigate]); |
|
|
|
const navigateToAgent = useCallback( |
|
(id: string) => () => { |
|
navigate(`${Routes.Agent}/${id}`); |
|
}, |
|
[navigate], |
|
); |
|
|
|
const navigateToAgentTemplates = useCallback(() => { |
|
navigate(Routes.AgentTemplates); |
|
}, [navigate]); |
|
|
|
const navigateToSearchList = useCallback(() => { |
|
navigate(Routes.Searches); |
|
}, [navigate]); |
|
|
|
const navigateToSearch = useCallback(() => { |
|
navigate(Routes.Search); |
|
}, [navigate]); |
|
|
|
const navigateToChunkParsedResult = useCallback( |
|
(id: string, knowledgeId?: string) => () => { |
|
navigate( |
|
`${Routes.ParsedResult}/${id}?${QueryStringMap.KnowledgeId}=${knowledgeId}`, |
|
); |
|
}, |
|
[navigate], |
|
); |
|
|
|
const getQueryString = useCallback( |
|
(queryStringKey?: QueryStringMap) => { |
|
const allQueryString = { |
|
[QueryStringMap.KnowledgeId]: searchParams.get( |
|
QueryStringMap.KnowledgeId, |
|
), |
|
}; |
|
if (queryStringKey) { |
|
return allQueryString[queryStringKey]; |
|
} |
|
return allQueryString; |
|
}, |
|
[searchParams], |
|
); |
|
|
|
const navigateToChunk = useCallback( |
|
(route: Routes) => { |
|
navigate( |
|
`${route}/${id}?${QueryStringMap.KnowledgeId}=${getQueryString(QueryStringMap.KnowledgeId)}`, |
|
); |
|
}, |
|
[getQueryString, id, navigate], |
|
); |
|
|
|
return { |
|
navigateToDatasetList, |
|
navigateToDataset, |
|
navigateToHome, |
|
navigateToProfile, |
|
navigateToChatList, |
|
navigateToChat, |
|
navigateToChunkParsedResult, |
|
getQueryString, |
|
navigateToChunk, |
|
navigateToAgentList, |
|
navigateToAgent, |
|
navigateToAgentTemplates, |
|
navigateToSearchList, |
|
navigateToSearch, |
|
}; |
|
}; |
|
|