mario-core 2.9.160-level → 2.9.161-level

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7305,6 +7305,11 @@ var getRosterUser = function getRosterUser(filter) {
7305
7305
  params: filter
7306
7306
  });
7307
7307
  };
7308
+ var getFilterRosterUser = function getFilterRosterUser(filter) {
7309
+ return api.get(MAPPING_ROSTER_USER_URL + "/filters", {
7310
+ params: filter
7311
+ });
7312
+ };
7308
7313
  var getRosterUserExport = function getRosterUserExport(filter) {
7309
7314
  return api.get(MAPPING_ROSTER_USER_URL + "/export-csv", {
7310
7315
  params: filter
@@ -7375,11 +7380,9 @@ var UserColumns = [{
7375
7380
  searchBy: SearchBy.Name,
7376
7381
  className: "align-top",
7377
7382
  getOption: function getOption(user) {
7378
- var _user$fullName, _user$fullName$trim;
7379
-
7380
7383
  return {
7381
- label: user.fullName || "empty",
7382
- value: ((_user$fullName = user.fullName) === null || _user$fullName === void 0 ? void 0 : (_user$fullName$trim = _user$fullName.trim) === null || _user$fullName$trim === void 0 ? void 0 : _user$fullName$trim.call(_user$fullName)) || ""
7384
+ label: user || "empty",
7385
+ value: user
7383
7386
  };
7384
7387
  }
7385
7388
  }, {
@@ -7388,11 +7391,9 @@ var UserColumns = [{
7388
7391
  searchBy: SearchBy.Email,
7389
7392
  className: "align-top",
7390
7393
  getOption: function getOption(user) {
7391
- var _user$email, _user$email$trim;
7392
-
7393
7394
  return {
7394
- label: user.email || "empty",
7395
- value: ((_user$email = user.email) === null || _user$email === void 0 ? void 0 : (_user$email$trim = _user$email.trim) === null || _user$email$trim === void 0 ? void 0 : _user$email$trim.call(_user$email)) || ""
7395
+ label: user || "empty",
7396
+ value: user
7396
7397
  };
7397
7398
  }
7398
7399
  }, {
@@ -7405,13 +7406,11 @@ var UserColumns = [{
7405
7406
  searchBy: SearchBy.Role,
7406
7407
  className: "align-top",
7407
7408
  getOption: function getOption(user) {
7408
- var _user$roles, _user$roles2, _user$roles3, _user$roles3$join, _user$roles3$join$tri;
7409
+ var _user$replace;
7409
7410
 
7410
7411
  return {
7411
- label: (_user$roles = user.roles) !== null && _user$roles !== void 0 && _user$roles.length ? (_user$roles2 = user.roles) === null || _user$roles2 === void 0 ? void 0 : _user$roles2.map(function (role) {
7412
- return role === "SecondaryTeacher" ? "SupportTeacher" : role;
7413
- }).join(", ") : "empty",
7414
- value: ((_user$roles3 = user.roles) === null || _user$roles3 === void 0 ? void 0 : (_user$roles3$join = _user$roles3.join("")) === null || _user$roles3$join === void 0 ? void 0 : (_user$roles3$join$tri = _user$roles3$join.trim) === null || _user$roles3$join$tri === void 0 ? void 0 : _user$roles3$join$tri.call(_user$roles3$join)) || ""
7412
+ label: !!user ? user === null || user === void 0 ? void 0 : (_user$replace = user.replace) === null || _user$replace === void 0 ? void 0 : _user$replace.call(user, "SecondaryTeacher", "SupportTeacher") : "empty",
7413
+ value: user
7415
7414
  };
7416
7415
  }
7417
7416
  }, {
@@ -7419,12 +7418,6 @@ var UserColumns = [{
7419
7418
  sortBy: UserOrder.Status,
7420
7419
  searchBy: SearchBy.Status,
7421
7420
  className: "align-top",
7422
- getOption: function getOption(user, t) {
7423
- return {
7424
- label: user.isActive ? t("active") : t("inactive"),
7425
- value: user.isActive
7426
- };
7427
- },
7428
7421
  options: [{
7429
7422
  label: "Active",
7430
7423
  value: "true"
@@ -7441,32 +7434,10 @@ var UserColumns = [{
7441
7434
  sortBy: UserOrder.RosterUser,
7442
7435
  searchBy: SearchBy.RosterUser,
7443
7436
  className: "align-top",
7444
- getOption: function getOption(record) {
7445
- if (!record) return {
7446
- label: "empty",
7447
- value: ""
7448
- };
7449
- var result = [];
7450
- var sourcedId = record.sourcedId,
7451
- rosterUser = record.rosterUser;
7452
- !!sourcedId && result.push(sourcedId);
7453
-
7454
- if (rosterUser) {
7455
- var givenName = rosterUser.givenName,
7456
- middleName = rosterUser.middleName,
7457
- familyName = rosterUser.familyName,
7458
- email = rosterUser.email;
7459
- var names = [];
7460
- !!givenName && names.push(givenName);
7461
- !!middleName && names.push(middleName);
7462
- !!familyName && names.push(familyName);
7463
- !!names.length && result.push(names.join(" "));
7464
- !!email && result.push(email);
7465
- }
7466
-
7437
+ getOption: function getOption(user) {
7467
7438
  return {
7468
- label: result.length ? result.join(" / ") : "empty",
7469
- value: !!rosterUser ? "" + (sourcedId || "") + ((rosterUser === null || rosterUser === void 0 ? void 0 : rosterUser.familyName) || "") + ((rosterUser === null || rosterUser === void 0 ? void 0 : rosterUser.middleName) || "") + ((rosterUser === null || rosterUser === void 0 ? void 0 : rosterUser.givenName) || "") + ((rosterUser === null || rosterUser === void 0 ? void 0 : rosterUser.email) || "") : ""
7439
+ label: user || "empty",
7440
+ value: user
7470
7441
  };
7471
7442
  }
7472
7443
  }, {
@@ -7544,6 +7515,14 @@ var useUserList = function useUserList() {
7544
7515
  dispatch(setLoading(false));
7545
7516
  };
7546
7517
 
7518
+ if (filters.searchBy !== undefined && filters.searchByStrings !== undefined && filters.searchByStrings.length === 0) {
7519
+ dispatch(setUserList({
7520
+ userList: [],
7521
+ totalItems: 0
7522
+ }));
7523
+ return Promise.resolve();
7524
+ }
7525
+
7547
7526
  dispatch(setLoading(true));
7548
7527
 
7549
7528
  var _temp4 = _catch(function () {
@@ -7620,7 +7599,7 @@ var useUserList = function useUserList() {
7620
7599
  var result = [];
7621
7600
  var sourcedId = record.sourcedId,
7622
7601
  rosterUser = record.rosterUser;
7623
- !!sourcedId && result.push(sourcedId);
7602
+ !!sourcedId && !!rosterUser && result.push(sourcedId);
7624
7603
 
7625
7604
  if (rosterUser) {
7626
7605
  var givenName = rosterUser.givenName,
@@ -7628,11 +7607,11 @@ var useUserList = function useUserList() {
7628
7607
  familyName = rosterUser.familyName,
7629
7608
  email = rosterUser.email;
7630
7609
  var names = [];
7631
- !!givenName && names.push(givenName);
7632
- !!middleName && names.push(middleName);
7633
7610
  !!familyName && names.push(familyName);
7634
- !!names.length && result.push(names.join(" "));
7635
- !!email && result.push(email);
7611
+ !!middleName && names.push(middleName);
7612
+ !!givenName && names.push(givenName);
7613
+ result.push(names.join(" ") || "");
7614
+ result.push(email || "");
7636
7615
  }
7637
7616
 
7638
7617
  return result.join(" / ");
@@ -7664,9 +7643,9 @@ var useUserList = function useUserList() {
7664
7643
  type: "success",
7665
7644
  message: "Remove user successfully"
7666
7645
  }));
7667
- changeFilters({
7646
+ if (filters.currentPage !== 1) changeFilters({
7668
7647
  currentPage: 1
7669
- });
7648
+ });else getData();
7670
7649
  });
7671
7650
  } catch (e) {
7672
7651
  return Promise.reject(e);
@@ -7683,7 +7662,7 @@ var useUserList = function useUserList() {
7683
7662
  }
7684
7663
 
7685
7664
  dispatch(setLoading(false));
7686
- }, [filters]);
7665
+ }, [JSON.stringify(filters)]);
7687
7666
 
7688
7667
  var redirectLoginUser = function redirectLoginUser(res) {
7689
7668
  var _res$data2 = res.data,
@@ -7920,9 +7899,10 @@ var useFilterPopover = function useFilterPopover(props) {
7920
7899
  filters = props.filters,
7921
7900
  users = props.users,
7922
7901
  searchBy = props.searchBy,
7923
- searchString = props.searchString,
7924
7902
  defaultOptions = props.defaultOptions,
7925
7903
  selectedOptions = props.selectedOptions,
7904
+ searchKey = props.searchKey,
7905
+ onChangeSearchKey = props.onChangeSearchKey,
7926
7906
  onOptionsChange = props.onOptionsChange,
7927
7907
  onSearch = props.onSearch,
7928
7908
  onClose = props.onClose,
@@ -7937,28 +7917,32 @@ var useFilterPopover = function useFilterPopover(props) {
7937
7917
  filteredOptions = _useState2[0],
7938
7918
  setFilteredOptions = _useState2[1];
7939
7919
 
7940
- var _useState3 = useState(""),
7941
- searchKey = _useState3[0],
7942
- setSearchKey = _useState3[1];
7943
-
7944
7920
  var ref = useRef(null);
7921
+ var inputRef = useRef(null);
7945
7922
  useClickOutside(ref, onClose);
7946
7923
 
7947
7924
  var _useTranslation = useTranslation(),
7948
7925
  t = _useTranslation.t;
7949
7926
 
7950
7927
  var handleSearch = useCallback(function () {
7951
- searchBy != undefined && !defaultOptions && (onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchKey, searchBy));
7928
+ var _searchKey$trim, _searchKey$trim2;
7929
+
7930
+ if (!isOpen) return;
7931
+ var searchString = (_searchKey$trim = searchKey === null || searchKey === void 0 ? void 0 : (_searchKey$trim2 = searchKey.trim) === null || _searchKey$trim2 === void 0 ? void 0 : _searchKey$trim2.call(searchKey)) != null ? _searchKey$trim : "";
7932
+ searchBy != undefined && !defaultOptions && (onSearch === null || onSearch === void 0 ? void 0 : onSearch(searchString, searchBy));
7952
7933
  searchBy != undefined && !!defaultOptions && setFilteredOptions(defaultOptions.filter(function (i) {
7953
- return i.label.toLowerCase().includes(searchKey === null || searchKey === void 0 ? void 0 : searchKey.toLowerCase());
7934
+ return i.label.toLowerCase().includes(searchString.toLowerCase());
7954
7935
  }));
7955
- }, [searchBy, searchKey, JSON.stringify(defaultOptions)]);
7936
+ }, [searchBy, searchKey, JSON.stringify(defaultOptions), isOpen]);
7956
7937
 
7957
- var handleChangeSearchKey = function handleChangeSearchKey(e) {
7958
- var _e$target$value;
7938
+ var debounceSearch = function debounceSearch() {
7939
+ if (!!inputRef.current) clearTimeout(inputRef.current);
7940
+ inputRef.current = setTimeout(handleSearch, 500);
7941
+ };
7959
7942
 
7960
- var value = (_e$target$value = e.target.value) != null ? _e$target$value : "";
7961
- setSearchKey(value);
7943
+ var handleChangeSearchKey = function handleChangeSearchKey(e) {
7944
+ var value = e.target.value;
7945
+ onChangeSearchKey(value);
7962
7946
  };
7963
7947
 
7964
7948
  var handleApplyFilter = useCallback(function () {
@@ -7966,9 +7950,9 @@ var useFilterPopover = function useFilterPopover(props) {
7966
7950
  onClose === null || onClose === void 0 ? void 0 : onClose();
7967
7951
  }, [JSON.stringify(sOptions)]);
7968
7952
  var handleOptionSelected = useCallback(function (e) {
7969
- var _e$target$value2;
7953
+ var _e$target$value;
7970
7954
 
7971
- var value = (_e$target$value2 = e.target.value) != null ? _e$target$value2 : "";
7955
+ var value = (_e$target$value = e.target.value) != null ? _e$target$value : "";
7972
7956
  var newOptions = sOptions != null ? sOptions : [];
7973
7957
  var index = newOptions.indexOf(value);
7974
7958
 
@@ -7990,22 +7974,19 @@ var useFilterPopover = function useFilterPopover(props) {
7990
7974
  isDescending: (filters === null || filters === void 0 ? void 0 : filters.isDescending) === true ? undefined : true
7991
7975
  }));
7992
7976
  onClose === null || onClose === void 0 ? void 0 : onClose();
7993
- }, [JSON.stringify(filters), searchBy, searchBy]);
7977
+ }, [JSON.stringify(filters), searchBy]);
7994
7978
  var handleSortAsc = useCallback(function () {
7995
7979
  onChangeFilters === null || onChangeFilters === void 0 ? void 0 : onChangeFilters(_extends({}, filters, {
7996
7980
  sortBy: (filters === null || filters === void 0 ? void 0 : filters.isDescending) === false ? undefined : sortBy,
7997
7981
  isDescending: (filters === null || filters === void 0 ? void 0 : filters.isDescending) === false ? undefined : false
7998
7982
  }));
7999
7983
  onClose === null || onClose === void 0 ? void 0 : onClose();
8000
- }, [JSON.stringify(filters), searchBy, searchBy]);
7984
+ }, [JSON.stringify(filters), searchBy]);
8001
7985
  var options = useMemo(function () {
8002
7986
  if (!getOption) return [];
8003
- return users.reduce(function (i, current) {
8004
- var _extends2;
8005
-
8006
- var option = getOption(current, t);
8007
- return _extends({}, i, (_extends2 = {}, _extends2[option.label] = option.value, _extends2));
8008
- }, {});
7987
+ return users.map(function (i) {
7988
+ return getOption(i, t);
7989
+ });
8009
7990
  }, [JSON.stringify(users), JSON.stringify(getOption)]);
8010
7991
  var isAscending = (filters === null || filters === void 0 ? void 0 : filters.isDescending) == false && filters.sortBy === sortBy;
8011
7992
  var isDescending = !!(filters !== null && filters !== void 0 && filters.isDescending) && filters.sortBy === sortBy;
@@ -8016,14 +7997,12 @@ var useFilterPopover = function useFilterPopover(props) {
8016
7997
  setFilteredOptions(defaultOptions || []);
8017
7998
  }, [JSON.stringify(defaultOptions)]);
8018
7999
  useEffect(function () {
8019
- if ((filters === null || filters === void 0 ? void 0 : filters.searchBy) === searchBy) setSearchKey(searchString || "");
8020
- }, [searchBy, searchString, filters === null || filters === void 0 ? void 0 : filters.searchBy]);
8021
- useEffect(function () {
8022
- isOpen && handleSearch();
8000
+ debounceSearch();
8023
8001
  }, [searchKey, isOpen]);
8024
8002
  return {
8025
8003
  ref: ref,
8026
8004
  options: options,
8005
+ inputRef: inputRef,
8027
8006
  sOptions: sOptions,
8028
8007
  isAscending: isAscending,
8029
8008
  isDescending: isDescending,
@@ -8046,6 +8025,7 @@ var FilterPopover = function FilterPopover(props) {
8046
8025
 
8047
8026
  var _useFilterPopover = useFilterPopover(props),
8048
8027
  ref = _useFilterPopover.ref,
8028
+ inputRef = _useFilterPopover.inputRef,
8049
8029
  options = _useFilterPopover.options,
8050
8030
  sOptions = _useFilterPopover.sOptions,
8051
8031
  isAscending = _useFilterPopover.isAscending,
@@ -8080,7 +8060,7 @@ var FilterPopover = function FilterPopover(props) {
8080
8060
  onClick: handleSortDesc
8081
8061
  }, React.createElement(AiOutlineSortDescending, {
8082
8062
  className: "mr-1"
8083
- }), "Descending")), typeof getOption != 'undefined' && React.createElement(React.Fragment, null, React.createElement("div", {
8063
+ }), "Descending")), (typeof getOption != 'undefined' || !!defaultOptions) && React.createElement(React.Fragment, null, React.createElement("div", {
8084
8064
  className: "border border-top-1 border-bottom-0 mx-1 my-2"
8085
8065
  }), React.createElement("div", {
8086
8066
  className: "d-flex flex-column"
@@ -8091,6 +8071,7 @@ var FilterPopover = function FilterPopover(props) {
8091
8071
  }, React.createElement(BiSearchAlt2, {
8092
8072
  className: "position-absolute " + styles["popover__search__icon"]
8093
8073
  }), React.createElement(Input, {
8074
+ ref: inputRef,
8094
8075
  className: styles["popover__search__input"],
8095
8076
  value: searchKey,
8096
8077
  onChange: handleChangeSearchKey
@@ -8105,19 +8086,19 @@ var FilterPopover = function FilterPopover(props) {
8105
8086
  checked: sOptions == undefined
8106
8087
  }), " ", React.createElement(Label, {
8107
8088
  check: true
8108
- }, "(Select all)")), !!getOption && !defaultOptions && Object.keys(options).map(function (i) {
8089
+ }, "(Select all)")), !!getOption && !defaultOptions && options.map(function (i) {
8109
8090
  return React.createElement(FormGroup, {
8110
- key: i.id,
8091
+ key: i.value,
8111
8092
  className: "d-flex align-items-center",
8112
8093
  check: true
8113
8094
  }, React.createElement(Input, {
8114
8095
  type: "checkbox",
8115
- value: options["" + i],
8096
+ value: i.value,
8116
8097
  onChange: handleOptionSelected,
8117
- checked: (sOptions === null || sOptions === void 0 ? void 0 : sOptions.includes(options["" + i])) || sOptions == undefined
8098
+ checked: (sOptions === null || sOptions === void 0 ? void 0 : sOptions.includes(i.value)) || sOptions == undefined
8118
8099
  }), " ", React.createElement(Label, {
8119
8100
  check: true
8120
- }, i));
8101
+ }, i.label));
8121
8102
  }), !!defaultOptions && filteredOptions.map(function (i) {
8122
8103
  return React.createElement(FormGroup, {
8123
8104
  key: i.value,
@@ -8151,14 +8132,22 @@ var HeaderCell = function HeaderCell(_ref) {
8151
8132
  var data = _ref.data,
8152
8133
  popoverId = _ref.popoverId,
8153
8134
  filters = _ref.filters,
8135
+ searchString = _ref.searchString,
8136
+ users = _ref.users,
8137
+ selectedOptions = _ref.selectedOptions,
8138
+ onOptionsChange = _ref.onOptionsChange,
8139
+ onSearch = _ref.onSearch,
8154
8140
  onChangeFilters = _ref.onChangeFilters,
8155
8141
  onOpenFilter = _ref.onOpenFilter,
8156
- onClose = _ref.onClose,
8157
- rest = _objectWithoutPropertiesLoose(_ref, ["data", "popoverId", "filters", "onChangeFilters", "onOpenFilter", "onClose"]);
8142
+ onClose = _ref.onClose;
8158
8143
 
8159
8144
  var _useTranslation = useTranslation(),
8160
8145
  t = _useTranslation.t;
8161
8146
 
8147
+ var _useState = useState(""),
8148
+ searchKey = _useState[0],
8149
+ setSearchKey = _useState[1];
8150
+
8162
8151
  var id = useMemo(function () {
8163
8152
  return data.sortBy != undefined ? userOrders[data.sortBy] : "";
8164
8153
  }, [data.sortBy]);
@@ -8167,7 +8156,11 @@ var HeaderCell = function HeaderCell(_ref) {
8167
8156
  }, [id, popoverId]);
8168
8157
 
8169
8158
  var handleOpenFilter = function handleOpenFilter() {
8170
- onOpenFilter === null || onOpenFilter === void 0 ? void 0 : onOpenFilter(id);
8159
+ onOpenFilter === null || onOpenFilter === void 0 ? void 0 : onOpenFilter(id, data.searchBy, searchKey, data.sortBy);
8160
+ };
8161
+
8162
+ var handleChangeSearchKey = function handleChangeSearchKey(value) {
8163
+ setSearchKey(value);
8171
8164
  };
8172
8165
 
8173
8166
  return React.createElement("th", {
@@ -8181,18 +8174,25 @@ var HeaderCell = function HeaderCell(_ref) {
8181
8174
  style: {
8182
8175
  cursor: "pointer"
8183
8176
  }
8184
- }, data.sortBy !== undefined && data.sortBy === (filters === null || filters === void 0 ? void 0 : filters.sortBy) && React.createElement("span", null, filters.isDescending ? React.createElement(AiOutlineSortDescending, null) : React.createElement(AiOutlineSortAscending, null)), !!(filters !== null && filters !== void 0 && (_filters$searchByStri = filters.searchByStrings) !== null && _filters$searchByStri !== void 0 && _filters$searchByStri.length) && data.searchBy === (filters === null || filters === void 0 ? void 0 : filters.searchBy) ? React.createElement(HiFilter, null) : React.createElement(BiFilterAlt, null)), React.createElement(FilterPopover, Object.assign({
8185
- target: id,
8177
+ }, data.sortBy !== undefined && data.sortBy === (filters === null || filters === void 0 ? void 0 : filters.sortBy) && React.createElement("span", null, filters.isDescending ? React.createElement(AiOutlineSortDescending, null) : React.createElement(AiOutlineSortAscending, null)), !!(filters !== null && filters !== void 0 && (_filters$searchByStri = filters.searchByStrings) !== null && _filters$searchByStri !== void 0 && _filters$searchByStri.length) && data.searchBy === (filters === null || filters === void 0 ? void 0 : filters.searchBy) ? React.createElement(HiFilter, null) : React.createElement(BiFilterAlt, null)), React.createElement(FilterPopover, {
8186
8178
  placement: "bottom-end",
8179
+ target: id,
8180
+ users: users,
8187
8181
  isOpen: isOpen,
8188
8182
  filters: filters,
8189
- onClose: onClose,
8190
- onChangeFilters: onChangeFilters,
8191
8183
  sortBy: data.sortBy,
8184
+ searchKey: searchKey,
8192
8185
  searchBy: data.searchBy,
8186
+ searchString: searchString,
8187
+ defaultOptions: data.options,
8188
+ selectedOptions: selectedOptions,
8189
+ onClose: onClose,
8190
+ onSearch: onSearch,
8193
8191
  getOption: data.getOption,
8194
- defaultOptions: data.options
8195
- }, rest))) : t(data.name));
8192
+ onChangeFilters: onChangeFilters,
8193
+ onOptionsChange: onOptionsChange,
8194
+ onChangeSearchKey: handleChangeSearchKey
8195
+ })) : t(data.name));
8196
8196
  };
8197
8197
 
8198
8198
  var useTableHeader = function useTableHeader(props) {
@@ -8208,7 +8208,6 @@ var useTableHeader = function useTableHeader(props) {
8208
8208
  setUsers = _useState2[1];
8209
8209
 
8210
8210
  var _useState3 = useState(_extends({}, DEFAULT_FILTER_POPOVER, {
8211
- sortBy: filters.sortBy,
8212
8211
  isDescending: filters.isDescending,
8213
8212
  searchString: filters.searchString
8214
8213
  })),
@@ -8219,14 +8218,10 @@ var useTableHeader = function useTableHeader(props) {
8219
8218
  var getData = useCallback(function () {
8220
8219
  try {
8221
8220
  var _temp2 = _catch(function () {
8222
- return Promise.resolve(getRosterUser(popoverFilters)).then(function (res) {
8223
- var items = res.data.items;
8224
-
8225
- for (var _iterator = _createForOfIteratorHelperLoose(items), _step; !(_step = _iterator()).done;) {
8226
- var user = _step.value;
8227
- user.roles = user.roles.includes("EduTeacher") ? [ROLES.EDUTEACHER] : user.roles;
8228
- }
8221
+ return Promise.resolve(getFilterRosterUser(popoverFilters)).then(function (res) {
8222
+ var _res$data;
8229
8223
 
8224
+ var items = ((_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.items) || [];
8230
8225
  setUsers(items);
8231
8226
  });
8232
8227
  }, function (err) {
@@ -8243,25 +8238,24 @@ var useTableHeader = function useTableHeader(props) {
8243
8238
  return Promise.reject(e);
8244
8239
  }
8245
8240
  }, [JSON.stringify(popoverFilters)]);
8246
-
8247
- var handleFilterIcon = function handleFilterIcon(id) {
8241
+ var handleFilterIcon = useCallback(function (id, searchBy, searchStringBy, sortBy) {
8248
8242
  setPopoverId(id);
8249
- };
8243
+ setPopoverFilters(_extends({}, popoverFilters, {
8244
+ searchBy: searchBy,
8245
+ searchStringBy: searchStringBy,
8246
+ isDescending: filters.sortBy === sortBy ? filters.isDescending : undefined,
8247
+ searchString: filters.searchString
8248
+ }));
8249
+ }, [JSON.stringify(popoverFilters), filters.isDescending, filters.searchString]);
8250
8250
 
8251
8251
  var handleCloseFilter = function handleCloseFilter() {
8252
8252
  setPopoverId("");
8253
8253
  };
8254
8254
 
8255
- useEffect(function () {
8256
- setPopoverFilters(_extends({}, popoverFilters, {
8257
- sortBy: filters.sortBy,
8258
- isDescending: filters.isDescending
8259
- }));
8260
- }, [filters.sortBy, filters.isDescending]);
8261
8255
  var handleSearch = useCallback(function (search, searchBy) {
8262
8256
  setPopoverFilters(_extends({}, popoverFilters, {
8263
- searchStringBy: search,
8264
- searchBy: searchBy
8257
+ searchBy: searchBy,
8258
+ searchStringBy: search
8265
8259
  }));
8266
8260
  }, [JSON.stringify(popoverFilters)]);
8267
8261
  var handleChangeFilters = useCallback(function (value, searchBy) {
@@ -8271,15 +8265,8 @@ var useTableHeader = function useTableHeader(props) {
8271
8265
  }));
8272
8266
  }, [JSON.stringify(filters)]);
8273
8267
  useEffect(function () {
8274
- getData();
8268
+ popoverFilters.searchBy !== undefined && getData();
8275
8269
  }, [JSON.stringify(popoverFilters)]);
8276
- useEffect(function () {
8277
- setPopoverFilters(_extends({}, DEFAULT_FILTER_POPOVER, popoverFilters, {
8278
- sortBy: filters.sortBy,
8279
- isDescending: filters.isDescending,
8280
- searchString: filters.searchString
8281
- }));
8282
- }, [JSON.stringify(filters), JSON.stringify(popoverFilters)]);
8283
8270
  return {
8284
8271
  popoverFilters: popoverFilters,
8285
8272
  popoverId: popoverId,
@@ -8300,7 +8287,6 @@ var TableHeader = function TableHeader(_ref) {
8300
8287
  filters: filters,
8301
8288
  onChangeFilters: onChangeFilters
8302
8289
  }),
8303
- popoverFilters = _useTableHeader.popoverFilters,
8304
8290
  popoverId = _useTableHeader.popoverId,
8305
8291
  users = _useTableHeader.users,
8306
8292
  handleFilterIcon = _useTableHeader.handleFilterIcon,
@@ -8310,17 +8296,16 @@ var TableHeader = function TableHeader(_ref) {
8310
8296
 
8311
8297
  return React.createElement("tr", null, headers.map(function (header) {
8312
8298
  return React.createElement(HeaderCell, {
8313
- key: header.name,
8299
+ users: users,
8314
8300
  data: header,
8315
- popoverId: popoverId,
8301
+ key: header.name,
8316
8302
  filters: filters,
8317
- users: users,
8318
- searchString: popoverFilters.searchStringBy,
8303
+ popoverId: popoverId,
8319
8304
  selectedOptions: filters.searchByStrings,
8320
8305
  onSearch: handleSearch,
8321
- onChangeFilters: onChangeFilters,
8322
8306
  onClose: handleCloseFilter,
8323
8307
  onOpenFilter: handleFilterIcon,
8308
+ onChangeFilters: onChangeFilters,
8324
8309
  onOptionsChange: handleChangeFilters
8325
8310
  });
8326
8311
  }));