GrowiNavbarBottom.jsx 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import NavigationContainer from '~/client/services/NavigationContainer';
  4. import { withUnstatedContainers } from '../UnstatedUtils';
  5. import GlobalSearch from './GlobalSearch';
  6. const GrowiNavbarBottom = (props) => {
  7. const {
  8. navigationContainer,
  9. } = props;
  10. const { isDrawerOpened, isDeviceSmallerThanMd } = navigationContainer.state;
  11. const additionalClasses = ['grw-navbar-bottom'];
  12. if (isDrawerOpened) {
  13. additionalClasses.push('grw-navbar-bottom-drawer-opened');
  14. }
  15. return (
  16. <div className="d-md-none d-edit-none fixed-bottom">
  17. { isDeviceSmallerThanMd && (
  18. <div id="grw-global-search-collapse" className="grw-global-search collapse bg-dark">
  19. <div className="p-3">
  20. <GlobalSearch dropup />
  21. </div>
  22. </div>
  23. ) }
  24. <div className={`navbar navbar-expand navbar-dark bg-primary px-0 ${additionalClasses.join(' ')}`}>
  25. <ul className="navbar-nav w-100">
  26. <li className="nav-item">
  27. <a
  28. role="button"
  29. className="nav-link btn-lg"
  30. onClick={() => navigationContainer.toggleDrawer()}
  31. >
  32. <i className="icon-menu"></i>
  33. </a>
  34. </li>
  35. <li className="nav-item mx-auto">
  36. <a
  37. role="button"
  38. className="nav-link btn-lg"
  39. data-target="#grw-global-search-collapse"
  40. data-toggle="collapse"
  41. >
  42. <i className="icon-magnifier"></i>
  43. </a>
  44. </li>
  45. <li className="nav-item">
  46. <a
  47. role="button"
  48. className="nav-link btn-lg"
  49. onClick={() => navigationContainer.openPageCreateModal()}
  50. >
  51. <i className="icon-pencil"></i>
  52. </a>
  53. </li>
  54. </ul>
  55. </div>
  56. </div>
  57. );
  58. };
  59. GrowiNavbarBottom.propTypes = {
  60. navigationContainer: PropTypes.instanceOf(NavigationContainer).isRequired,
  61. };
  62. export default withUnstatedContainers(GrowiNavbarBottom, [NavigationContainer]);