PageCreateButton.jsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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 PageCreateButton = (props) => {
  7. const { t, navigationContainer, isIcon } = props;
  8. if (isIcon) {
  9. return (
  10. <button className="btn btn-lg btn-primary rounded-circle waves-effect waves-light" type="button" onClick={navigationContainer.openPageCreateModal}>
  11. <i className="icon-pencil"></i>
  12. </button>
  13. );
  14. }
  15. return (
  16. <button className="px-md-2 nav-link create-page border-0 bg-transparent" type="button" onClick={navigationContainer.openPageCreateModal}>
  17. <i className="icon-pencil mr-2"></i>
  18. <span className="d-none d-lg-block">{ t('New') }</span>
  19. </button>
  20. );
  21. };
  22. /**
  23. * Wrapper component for using unstated
  24. */
  25. const PageCreateButtonWrapper = withUnstatedContainers(PageCreateButton, [NavigationContainer]);
  26. PageCreateButton.propTypes = {
  27. t: PropTypes.func.isRequired, // i18next
  28. navigationContainer: PropTypes.instanceOf(NavigationContainer).isRequired,
  29. isIcon: PropTypes.bool,
  30. };
  31. export default withTranslation()(PageCreateButtonWrapper);