GrowiNavbarBottom.tsx 2.6 KB

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