Navigation.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import { useContext, useEffect } from 'react';
  2. import { useTranslation } from 'react-i18next';
  3. // import { useParams } from 'react-router-dom';
  4. import { navContext } from '../context/Navigation';
  5. import { ALL_ROUTER_TYPES, NavInfo } from '../router/Types';
  6. export const useNavigationHook = (
  7. type: ALL_ROUTER_TYPES,
  8. extraParam?: {
  9. collectionName: string;
  10. }
  11. ) => {
  12. const { t } = useTranslation('nav');
  13. const { setNavInfo } = useContext(navContext);
  14. const { collectionName } = extraParam || { collectionName: '' };
  15. useEffect(() => {
  16. switch (type) {
  17. case ALL_ROUTER_TYPES.OVERVIEW: {
  18. const navInfo: NavInfo = {
  19. navTitle: t('overview'),
  20. backPath: '',
  21. };
  22. setNavInfo(navInfo);
  23. break;
  24. }
  25. case ALL_ROUTER_TYPES.COLLECTIONS: {
  26. const navInfo: NavInfo = {
  27. navTitle: t('collection'),
  28. backPath: '',
  29. };
  30. setNavInfo(navInfo);
  31. break;
  32. }
  33. case ALL_ROUTER_TYPES.COLLECTION_DETAIL: {
  34. const navInfo: NavInfo = {
  35. navTitle: collectionName,
  36. backPath: '/collections',
  37. };
  38. setNavInfo(navInfo);
  39. break;
  40. }
  41. case ALL_ROUTER_TYPES.CONSOLE: {
  42. const navInfo: NavInfo = {
  43. navTitle: t('console'),
  44. backPath: '',
  45. };
  46. setNavInfo(navInfo);
  47. break;
  48. }
  49. default:
  50. break;
  51. }
  52. }, [type, t, setNavInfo, collectionName]);
  53. };