ragflow / web /src /hooks /logic-hooks /navigate-hooks.ts
Starowo's picture
Upload 1411 files
b9fe2b4 verified
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,
};
};