Просмотр исходного кода

add methods and state to handle click event

akira-s 6 лет назад
Родитель
Сommit
3ac3f23dfa
1 измененных файлов с 27 добавлено и 0 удалено
  1. 27 0
      src/client/js/services/AdminUsersContainer.js

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

@@ -24,6 +24,8 @@ export default class AdminUsersContainer extends Container {
       totalUsers: 0,
       totalUsers: 0,
       activePage: 1,
       activePage: 1,
       pagingLimit: Infinity,
       pagingLimit: Infinity,
+
+      selectedStatusList: new Set(),
     };
     };
 
 
     this.showPasswordResetModal = this.showPasswordResetModal.bind(this);
     this.showPasswordResetModal = this.showPasswordResetModal.bind(this);
@@ -38,6 +40,31 @@ export default class AdminUsersContainer extends Container {
     return 'AdminUsersContainer';
     return 'AdminUsersContainer';
   }
   }
 
 
+  isSelected(statusType) {
+    return this.state.selectedStatusList.has(statusType);
+  }
+
+  handleClick(statusType) {
+    if (this.isSelected(statusType)) {
+      this.deleteStatusFromList(statusType);
+    }
+    else {
+      this.addStatusToList(statusType);
+    }
+  }
+
+  addStatusToList(statusType) {
+    const { selectedStatusList } = this.state();
+    selectedStatusList.add(statusType);
+    this.setState({ selectedStatusList });
+  }
+
+  deleteStatusToList(statusType) {
+    const { selectedStatusList } = this.state();
+    selectedStatusList.delete(statusType);
+    this.setState({ selectedStatusList });
+  }
+
   /**
   /**
    * syncUsers of selectedPage
    * syncUsers of selectedPage
    * @memberOf AdminUsersContainer
    * @memberOf AdminUsersContainer