| 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, | |
| }; | |
| }; | |