You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

navigate-hooks.ts 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import { Routes } from '@/routes';
  2. import { useCallback } from 'react';
  3. import { useNavigate, useSearchParams } from 'umi';
  4. export enum QueryStringMap {
  5. KnowledgeId = 'knowledgeId',
  6. }
  7. export const useNavigatePage = () => {
  8. const navigate = useNavigate();
  9. const [searchParams] = useSearchParams();
  10. const navigateToDatasetList = useCallback(() => {
  11. navigate(Routes.Datasets);
  12. }, [navigate]);
  13. const navigateToDataset = useCallback(
  14. (id: string) => () => {
  15. navigate(`${Routes.Dataset}/${id}`);
  16. },
  17. [navigate],
  18. );
  19. const navigateToHome = useCallback(() => {
  20. navigate(Routes.Home);
  21. }, [navigate]);
  22. const navigateToProfile = useCallback(() => {
  23. navigate(Routes.ProfileSetting);
  24. }, [navigate]);
  25. const navigateToChatList = useCallback(() => {
  26. navigate(Routes.Chats);
  27. }, [navigate]);
  28. const navigateToChat = useCallback(() => {
  29. navigate(Routes.Chat);
  30. }, [navigate]);
  31. const navigateToChunkParsedResult = useCallback(
  32. (id: string, knowledgeId?: string) => () => {
  33. navigate(
  34. `${Routes.ParsedResult}/${id}?${QueryStringMap.KnowledgeId}=${knowledgeId}`,
  35. );
  36. },
  37. [navigate],
  38. );
  39. const getQueryString = useCallback(
  40. (queryStringKey?: QueryStringMap) => {
  41. const allQueryString = {
  42. [QueryStringMap.KnowledgeId]: searchParams.get(
  43. QueryStringMap.KnowledgeId,
  44. ),
  45. };
  46. if (queryStringKey) {
  47. return allQueryString[queryStringKey];
  48. }
  49. return allQueryString;
  50. },
  51. [searchParams],
  52. );
  53. return {
  54. navigateToDatasetList,
  55. navigateToDataset,
  56. navigateToHome,
  57. navigateToProfile,
  58. navigateToChatList,
  59. navigateToChat,
  60. navigateToChunkParsedResult,
  61. getQueryString,
  62. };
  63. };