GrowiNavbarBottom.tsx 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import React from 'react';
  2. import { useSearchModal } from '~/features/search/client/stores/search';
  3. import { useIsSearchPage } from '~/stores/context';
  4. import { usePageCreateModal } from '~/stores/modal';
  5. import { useCurrentPagePath } from '~/stores/page';
  6. import { useDrawerOpened } from '~/stores/ui';
  7. import styles from './GrowiNavbarBottom.module.scss';
  8. export const GrowiNavbarBottom = (): JSX.Element => {
  9. const { data: isDrawerOpened, mutate: mutateDrawerOpened } = useDrawerOpened();
  10. const { open: openCreateModal } = usePageCreateModal();
  11. const { data: currentPagePath } = useCurrentPagePath();
  12. const { data: isSearchPage } = useIsSearchPage();
  13. const { open: openSearchModal } = useSearchModal();
  14. return (
  15. <div className={`
  16. ${styles['grw-navbar-bottom']}
  17. ${isDrawerOpened ? styles['grw-navbar-bottom-drawer-opened'] : ''}
  18. d-md-none d-edit-none d-print-none fixed-bottom`}
  19. >
  20. <div className="navbar navbar-expand px-4 px-sm-5">
  21. <ul className="navbar-nav flex-grow-1 d-flex align-items-center justify-content-between">
  22. <li className="nav-item">
  23. <a
  24. role="button"
  25. className="nav-link btn-lg"
  26. onClick={() => mutateDrawerOpened(true)}
  27. >
  28. <span className="material-symbols-outlined fs-2">reorder</span>
  29. </a>
  30. </li>
  31. <li className="nav-item">
  32. <a
  33. role="button"
  34. className="nav-link btn-lg"
  35. onClick={() => openCreateModal(currentPagePath || '')}
  36. >
  37. <span className="material-symbols-outlined fs-2">edit</span>
  38. </a>
  39. </li>
  40. {
  41. !isSearchPage && (
  42. <li className="nav-item">
  43. <a
  44. role="button"
  45. className="nav-link btn-lg"
  46. onClick={openSearchModal}
  47. >
  48. <span className="material-symbols-outlined fs-2">search</span>
  49. </a>
  50. </li>
  51. )
  52. }
  53. <li className="nav-item">
  54. <a
  55. role="button"
  56. className="nav-link btn-lg"
  57. onClick={() => {}}
  58. >
  59. <span className="material-symbols-outlined fs-2">notifications</span>
  60. </a>
  61. </li>
  62. </ul>
  63. </div>
  64. </div>
  65. );
  66. };