StatusSuspendedForm.jsx 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. class StatusSuspendedForm extends React.Component {
  7. constructor(props) {
  8. super(props);
  9. this.state = {
  10. };
  11. }
  12. render() {
  13. const { t, user } = this.props;
  14. const me = this.props.appContainer.me;
  15. return (
  16. <div className="px-4">
  17. {user.username !== me
  18. ? (
  19. <form id="form_suspend_user" action="/admin/user/{{ sUserId }}/suspend" method="post">
  20. <i className="icon-fw icon-ban"></i>{ t('user_management.deactivate_account') }
  21. </form>
  22. )
  23. : (
  24. <div>
  25. <i className="icon-fw icon-ban mb-2"></i>{ t('user_management.deactivate_account') }
  26. <p className="alert alert-danger">{ t('user_management.your_own') }</p>
  27. </div>
  28. )
  29. }
  30. </div>
  31. );
  32. }
  33. }
  34. /**
  35. * Wrapper component for using unstated
  36. */
  37. const StatusSuspendedFormWrapper = (props) => {
  38. return createSubscribedElement(StatusSuspendedForm, props, [AppContainer]);
  39. };
  40. StatusSuspendedForm.propTypes = {
  41. t: PropTypes.func.isRequired, // i18next
  42. appContainer: PropTypes.instanceOf(AppContainer).isRequired,
  43. user: PropTypes.object.isRequired,
  44. };
  45. export default withTranslation()(StatusSuspendedFormWrapper);