Răsfoiți Sursa

DI AdminUsersContainer

itizawa 6 ani în urmă
părinte
comite
a9fd5b54bd

+ 5 - 3
src/client/js/components/Admin/Users/StatusSuspendedButton.jsx

@@ -5,6 +5,7 @@ import { withTranslation } from 'react-i18next';
 import { createSubscribedElement } from '../../UnstatedUtils';
 import AppContainer from '../../../services/AppContainer';
 import { toastSuccess, toastError } from '../../../util/apiNotification';
+import AdminUsersContainer from '../../../services/AdminUsersContainer';
 
 class StatusSuspendedButton extends React.Component {
 
@@ -14,11 +15,11 @@ class StatusSuspendedButton extends React.Component {
     this.onClickDeactiveBtn = this.onClickDeactiveBtn.bind(this);
   }
 
-  // これは将来的にapiにするので。あとボタンにするとデザインがよくなかったので。
-  onClickDeactiveBtn() {
+  async onClickDeactiveBtn() {
     const { t } = this.props;
 
     try {
+      await this.props.adminUsersContainer.deactivateUser(this.props.user._id);
       toastSuccess(t('user_management.deactivate_user_success'));
     }
     catch (err) {
@@ -65,12 +66,13 @@ class StatusSuspendedButton extends React.Component {
  * Wrapper component for using unstated
  */
 const StatusSuspendedFormWrapper = (props) => {
-  return createSubscribedElement(StatusSuspendedButton, props, [AppContainer]);
+  return createSubscribedElement(StatusSuspendedButton, props, [AppContainer, AdminUsersContainer]);
 };
 
 StatusSuspendedButton.propTypes = {
   t: PropTypes.func.isRequired, // i18next
   appContainer: PropTypes.instanceOf(AppContainer).isRequired,
+  adminUsersContainer: PropTypes.instanceOf(AppContainer).isRequired,
 
   user: PropTypes.object.isRequired,
 };

+ 13 - 0
src/client/js/services/AdminUsersContainer.js

@@ -101,6 +101,19 @@ export default class AdminUsersContainer extends Container {
     return username;
   }
 
+  /**
+   * Deactivate user
+   * @memberOf AdminUsersContainer
+   * @param {string} userId
+   * @return {string} username
+   */
+  async deactivateUser(userId) {
+    // const response = await this.appContainer.apiv3.put(`/users/${userId}/activate`);
+    // const { username } = response.data.userData;
+    const username = 'gest';
+    return username;
+  }
+
   /**
    * remove user
    * @memberOf AdminUsersContainer