itizawa пре 6 година
родитељ
комит
7f69bc0c07

+ 16 - 1
src/client/js/components/Admin/Users/UserMenu.jsx

@@ -2,6 +2,8 @@ import React, { Fragment } from 'react';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 import { withTranslation } from 'react-i18next';
 import { withTranslation } from 'react-i18next';
 
 
+import { toastSuccess, toastError } from '../../../util/apiNotification';
+
 import StatusActivateForm from './StatusActivateForm';
 import StatusActivateForm from './StatusActivateForm';
 import StatusSuspendedForm from './StatusSuspendedForm';
 import StatusSuspendedForm from './StatusSuspendedForm';
 import RemoveUserButton from './UserRemoveButton';
 import RemoveUserButton from './UserRemoveButton';
@@ -27,6 +29,19 @@ class UserMenu extends React.Component {
     this.props.onPasswordResetClicked(this.props.user);
     this.props.onPasswordResetClicked(this.props.user);
   }
   }
 
 
+  async removeUser() {
+    const { appContainer, user } = this.props;
+
+    try {
+      const response = await appContainer.apiv3.delete(`/users/${user._id}/remove`);
+      const { username } = response.data.userData;
+      toastSuccess(`Delete ${username} success`);
+    }
+    catch (err) {
+      toastError(err);
+    }
+  }
+
   render() {
   render() {
     const { t, user } = this.props;
     const { t, user } = this.props;
 
 
@@ -48,7 +63,7 @@ class UserMenu extends React.Component {
             <li>
             <li>
               {(user.status === 1 || user.status === 3) && <StatusActivateForm user={user} />}
               {(user.status === 1 || user.status === 3) && <StatusActivateForm user={user} />}
               {user.status === 2 && <StatusSuspendedForm user={user} />}
               {user.status === 2 && <StatusSuspendedForm user={user} />}
-              {(user.status === 1 || user.status === 3 || user.status === 5) && <RemoveUserButton user={user} />}
+              {(user.status === 1 || user.status === 3 || user.status === 5) && <RemoveUserButton user={user} removeUser={() => { this.removeUser() }} />}
             </li>
             </li>
             <li className="divider pl-0"></li>
             <li className="divider pl-0"></li>
             <li className="dropdown-header">{ t('user_management.administrator_menu') }</li>
             <li className="dropdown-header">{ t('user_management.administrator_menu') }</li>

+ 3 - 17
src/client/js/components/Admin/Users/UserRemoveButton.jsx

@@ -2,8 +2,6 @@ import React from 'react';
 import PropTypes from 'prop-types';
 import PropTypes from 'prop-types';
 import { withTranslation } from 'react-i18next';
 import { withTranslation } from 'react-i18next';
 
 
-import { toastSuccess, toastError } from '../../../util/apiNotification';
-
 import { createSubscribedElement } from '../../UnstatedUtils';
 import { createSubscribedElement } from '../../UnstatedUtils';
 import AppContainer from '../../../services/AppContainer';
 import AppContainer from '../../../services/AppContainer';
 
 
@@ -12,24 +10,11 @@ class UserRemoveButton extends React.Component {
   constructor(props) {
   constructor(props) {
     super(props);
     super(props);
 
 
-    this.state = {
-
-    };
-
     this.onClickDeleteBtn = this.onClickDeleteBtn.bind(this);
     this.onClickDeleteBtn = this.onClickDeleteBtn.bind(this);
   }
   }
 
 
-  async onClickDeleteBtn() {
-    const { appContainer, user } = this.props;
-
-    try {
-      const response = await appContainer.apiv3.delete(`/users/${user._id}/remove`);
-      const { username } = response.data.userData;
-      toastSuccess(`Delete ${username} success`);
-    }
-    catch (err) {
-      toastError(err);
-    }
+  onClickDeleteBtn() {
+    this.props.removeUser();
   }
   }
 
 
   render() {
   render() {
@@ -56,6 +41,7 @@ UserRemoveButton.propTypes = {
   appContainer: PropTypes.instanceOf(AppContainer).isRequired,
   appContainer: PropTypes.instanceOf(AppContainer).isRequired,
 
 
   user: PropTypes.object.isRequired,
   user: PropTypes.object.isRequired,
+  removeUser: PropTypes.func.isRequired,
 };
 };
 
 
 export default withTranslation()(UserRemoveButtonWrapper);
 export default withTranslation()(UserRemoveButtonWrapper);