NavbarToggler.jsx 1022 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import { withTranslation } from 'react-i18next';
  4. import { withUnstatedContainers } from '../UnstatedUtils';
  5. import NavigationContainer from '../../services/NavigationContainer';
  6. const NavbarToggler = (props) => {
  7. const { navigationContainer } = props;
  8. const clickHandler = () => {
  9. navigationContainer.toggleDrawer();
  10. };
  11. return (
  12. <a
  13. className="nav-link grw-navbar-toggler border-0 waves-effect waves-light"
  14. type="button"
  15. aria-expanded="false"
  16. aria-label="Toggle navigation"
  17. onClick={clickHandler}
  18. >
  19. <i className="icon-menu"></i>
  20. </a>
  21. );
  22. };
  23. /**
  24. * Wrapper component for using unstated
  25. */
  26. const NavbarTogglerWrapper = withUnstatedContainers(NavbarToggler, [NavigationContainer]);
  27. NavbarToggler.propTypes = {
  28. t: PropTypes.func.isRequired, // i18next
  29. navigationContainer: PropTypes.instanceOf(NavigationContainer).isRequired,
  30. };
  31. export default withTranslation()(NavbarTogglerWrapper);