GrowiNavbarBottom.tsx 2.4 KB

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