2
0

GrowiNavbarBottom.tsx 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import React from 'react';
  2. import { useIsSearchPage } from '~/stores/context';
  3. import { usePageCreateModal } from '~/stores/modal';
  4. import { useCurrentPagePath } from '~/stores/page';
  5. import { useIsDeviceSmallerThanMd, useDrawerOpened } from '~/stores/ui';
  6. import { GlobalSearch } from './GlobalSearch';
  7. import styles from './GrowiNavbarBottom.module.scss';
  8. export const GrowiNavbarBottom = (): JSX.Element => {
  9. const { data: isDrawerOpened, mutate: mutateDrawerOpened } = useDrawerOpened();
  10. const { data: isDeviceSmallerThanMd } = useIsDeviceSmallerThanMd();
  11. const { open: openCreateModal } = usePageCreateModal();
  12. const { data: currentPagePath } = useCurrentPagePath();
  13. const { data: isSearchPage } = useIsSearchPage();
  14. const additionalClasses = ['grw-navbar-bottom', styles['grw-navbar-bottom']];
  15. if (isDrawerOpened) {
  16. additionalClasses.push('grw-navbar-bottom-drawer-opened');
  17. }
  18. return (
  19. <div className="d-md-none d-edit-none fixed-bottom">
  20. { isDeviceSmallerThanMd && !isSearchPage && (
  21. <div id="grw-global-search-collapse" className="grw-global-search collapse bg-dark">
  22. <div className="p-3">
  23. <GlobalSearch dropup />
  24. </div>
  25. </div>
  26. ) }
  27. <div className={`navbar navbar-expand navbar-dark bg-primary px-0 ${additionalClasses.join(' ')}`}>
  28. <ul className="navbar-nav w-100">
  29. <li className="nav-item mr-auto">
  30. <a
  31. role="button"
  32. className="nav-link btn-lg"
  33. onClick={() => mutateDrawerOpened(true)}
  34. >
  35. <i className="icon-menu"></i>
  36. </a>
  37. </li>
  38. {
  39. !isSearchPage && (
  40. <li className="nav-item">
  41. <a
  42. role="button"
  43. className="nav-link btn-lg"
  44. data-target="#grw-global-search-collapse"
  45. data-toggle="collapse"
  46. >
  47. <i className="icon-magnifier"></i>
  48. </a>
  49. </li>
  50. )
  51. }
  52. <li className="nav-item ml-auto">
  53. <a
  54. role="button"
  55. className="nav-link btn-lg"
  56. onClick={() => openCreateModal(currentPagePath || '')}
  57. >
  58. <i className="icon-pencil"></i>
  59. </a>
  60. </li>
  61. </ul>
  62. </div>
  63. </div>
  64. );
  65. };