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

add methods and state to handle click event

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

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

@@ -24,6 +24,7 @@ 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 +39,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 });
+  }
+
+  deleteStatusFromList(statusType) {
+    const { selectedStatusList } = this.state;
+    selectedStatusList.delete(statusType);
+    this.setState({ selectedStatusList });
+  }
+
   /**
   /**
    * syncUsers of selectedPage
    * syncUsers of selectedPage
    * @memberOf AdminUsersContainer
    * @memberOf AdminUsersContainer