InviteUserControl.jsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import React, { Fragment } from 'react';
  2. import { useTranslation } from 'next-i18next';
  3. import PropTypes from 'prop-types';
  4. import AdminUsersContainer from '~/client/services/AdminUsersContainer';
  5. import { withUnstatedContainers } from '../../UnstatedUtils';
  6. import UserInviteModal from './UserInviteModal';
  7. class InviteUserControl extends React.Component {
  8. render() {
  9. const { t, adminUsersContainer } = this.props;
  10. return (
  11. <Fragment>
  12. <button type="button" className="btn btn-outline-secondary" onClick={adminUsersContainer.toggleUserInviteModal}>
  13. {t('admin:user_management.invite_users')}
  14. </button>
  15. <UserInviteModal />
  16. </Fragment>
  17. );
  18. }
  19. }
  20. InviteUserControl.propTypes = {
  21. t: PropTypes.func.isRequired, // i18next
  22. adminUsersContainer: PropTypes.instanceOf(AdminUsersContainer).isRequired,
  23. };
  24. const InviteUserControlWrapperFC = (props) => {
  25. const { t } = useTranslation();
  26. return <InviteUserControl t={t} {...props} />;
  27. };
  28. /**
  29. * Wrapper component for using unstated
  30. */
  31. const InviteUserControlWrapper = withUnstatedContainers(InviteUserControlWrapperFC, [AdminUsersContainer]);
  32. export default InviteUserControlWrapper;