NavbarToggler.jsx 963 B

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