Jelajahi Sumber

add methods and state to handle click event

akira-s 6 tahun lalu
induk
melakukan
1f94cc4360
1 mengubah file dengan 26 tambahan dan 0 penghapusan
  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,
       activePage: 1,
       pagingLimit: Infinity,
+      selectedStatusList: new Set(),
     };
 
     this.showPasswordResetModal = this.showPasswordResetModal.bind(this);
@@ -38,6 +39,31 @@ export default class AdminUsersContainer extends Container {
     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
    * @memberOf AdminUsersContainer