@bigbinary/neeto-filters-frontend 2.14.8 → 3.0.1

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.
package/README.md CHANGED
@@ -52,15 +52,13 @@ Here is an example of `keyword` prop:
52
52
 
53
53
  ```js
54
54
  const [searchTerm, setSearchTerm] = useState("");
55
- const searchKeywordProps = {
56
- key: "keyword",
55
+ const searchTermProps = {
56
+ key: "search_term",
57
57
  node: "name",
58
- value: searchTerm.trim(),
59
- setValue: setSearchTerm,
60
58
  };
61
59
  ```
62
60
 
63
- This `searchKeywordProps` can be passed as the value to `keyword` prop.
61
+ This `searchTermProps` can be passed as the value to `keyword` prop.
64
62
 
65
63
  > :memo: **Note:** If you wish to conduct a search for the keyword among
66
64
  > multiple columns spanning different tables in the DB, then you should pass the
@@ -224,7 +222,7 @@ instructions provided in the installation
224
222
 
225
223
  ```js
226
224
  const [filters, setFilters] = useState(() =>
227
- buildFiltersFromURL([...SAMPLE_FILTER_COLUMNS, searchKeywordProps])
225
+ buildFiltersFromURL([...SAMPLE_FILTER_COLUMNS, searchTermProps])
228
226
  );
229
227
  ```
230
228
 
package/dist/index.cjs.js CHANGED
@@ -5,14 +5,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React = require('react');
6
6
  var classnames = require('classnames');
7
7
  var ramda = require('ramda');
8
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
9
+ var utils = require('@bigbinary/neeto-commons-frontend/utils');
8
10
  var neetoui = require('@bigbinary/neetoui');
9
11
  var reactI18next = require('react-i18next');
10
12
  var reactRouterDom = require('react-router-dom');
11
- var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
12
13
  var neetoIcons = require('@bigbinary/neeto-icons');
13
14
  var i18next = require('i18next');
14
15
  var dayjs = require('dayjs');
15
- var utils = require('@bigbinary/neeto-commons-frontend/utils');
16
16
  var yup = require('yup');
17
17
  var timezone = require('dayjs/plugin/timezone');
18
18
  var utc = require('dayjs/plugin/utc');
@@ -463,8 +463,8 @@ dayjs__default["default"].extend(timezone__default["default"]);
463
463
  dayjs__default["default"].extend(weekday__default["default"]);
464
464
  dayjs__default["default"].Ls.en.weekStart = 1;
465
465
 
466
- function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
467
- function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
466
+ function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
467
+ function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
468
468
  var groupByGroup = ramda.groupBy(function (_ref) {
469
469
  var group = _ref.group;
470
470
  return group || "individual";
@@ -628,9 +628,9 @@ var buildFiltersFromSearchParams = function buildFiltersFromSearchParams(columns
628
628
  return ramda.mergeLeft({
629
629
  value: ""
630
630
  }, column);
631
- } else if (ramda.isNil(value) || value === "") {
631
+ } else if (ramda.isNil(value) || value === "" || column.key === "keyword") {
632
632
  return null;
633
- } else if (column.key === "keyword") {
633
+ } else if (column.key === "search_term") {
634
634
  return ramda.mergeLeft({
635
635
  value: value,
636
636
  type: "text",
@@ -757,7 +757,7 @@ var buildDatePayload = function buildDatePayload(value) {
757
757
  var buildSingleDatePayload = function buildSingleDatePayload(filter) {
758
758
  var value = filter.value;
759
759
  var filterValue = Array.isArray(value) ? value.join(",") : value;
760
- return _objectSpread$5(_objectSpread$5({}, filter), {}, {
760
+ return _objectSpread$4(_objectSpread$4({}, filter), {}, {
761
761
  value: filterValue,
762
762
  type: "date"
763
763
  });
@@ -765,7 +765,7 @@ var buildSingleDatePayload = function buildSingleDatePayload(filter) {
765
765
  var buildSingleTimePayload = function buildSingleTimePayload(filter) {
766
766
  var value = filter.value;
767
767
  var filterValue = Array.isArray(value) ? value.join(",") : value;
768
- return _objectSpread$5(_objectSpread$5({}, filter), {}, {
768
+ return _objectSpread$4(_objectSpread$4({}, filter), {}, {
769
769
  value: filterValue,
770
770
  type: "time"
771
771
  });
@@ -786,7 +786,7 @@ var buildFiltersPayload = function buildFiltersPayload(filters) {
786
786
  var payload = removeBy({
787
787
  value: ""
788
788
  }, filters).map(function (filter) {
789
- if (filter.key === "keyword" && isMultiModelFilter(filter)) {
789
+ if (filter.key === "search_term" && isMultiModelFilter(filter)) {
790
790
  return splitFilter(filter);
791
791
  }
792
792
  var filterPayload = ramda.omit(["key", "label", "values", "setValue"], filter);
@@ -820,14 +820,14 @@ var buildSegmentsPayload = function buildSegmentsPayload(filters) {
820
820
  var payload = removeBy({
821
821
  value: ""
822
822
  }, filters).map(function (filter) {
823
- if (filter.key === "keyword") {
823
+ if (filter.key === "search_term") {
824
824
  return false;
825
825
  }
826
826
  var filterPayload = ramda.omit(["label", "values", "setValue", "defaultValue"], filter);
827
827
  var _filterPayload$defaul2 = filterPayload.defaultType,
828
828
  defaultType = _filterPayload$defaul2 === void 0 ? filterPayload.type : _filterPayload$defaul2,
829
829
  value = filterPayload.value;
830
- if (filter.key !== "keyword" && isMultiModelFilter(filterPayload)) {
830
+ if (filter.key !== "search_term" && isMultiModelFilter(filterPayload)) {
831
831
  throw i18next__default["default"].t("neetoFilters.errors.cannotPassMultipleModels");
832
832
  }
833
833
  if (isMulti(defaultType)) {
@@ -929,7 +929,7 @@ var createUrlParamString = function createUrlParamString(_ref15) {
929
929
  _filter$defaultType = filter.defaultType,
930
930
  defaultType = _filter$defaultType === void 0 ? filter.type : _filter$defaultType,
931
931
  rule = filter.rule;
932
- if (key === "keyword") {
932
+ if (key === "search_term") {
933
933
  return value;
934
934
  } else if (isDigit(defaultType) || isText(defaultType)) {
935
935
  return "".concat(value, "+rule-").concat(rule);
@@ -967,7 +967,7 @@ var buildUrlFromFilters = function buildUrlFromFilters(_ref16) {
967
967
  delete searchParams["segmentId"];
968
968
  }
969
969
  var defaultFilters = buildDefaultFilters(columns, filters);
970
- delete searchParams["keyword"];
970
+ delete searchParams["search_term"];
971
971
  ramda.concat(filters, defaultFilters).forEach(function (filter) {
972
972
  searchParams[filter.key] = createUrlParamString({
973
973
  filter: filter,
@@ -1004,9 +1004,9 @@ var buildUrlFromSegment = function buildUrlFromSegment(_ref19) {
1004
1004
  return !defaultValue && delete searchParams[key];
1005
1005
  });
1006
1006
  var defaultFilters = buildDefaultFilters(columns, filters);
1007
- delete searchParams["keyword"];
1008
- isNotEmpty(id) && (searchParams["segmentId"] = id);
1007
+ delete searchParams["searchTerm"];
1009
1008
  ramda.concat(filters, defaultFilters).forEach(function (filter) {
1009
+ isNotEmpty(id) && (searchParams["segmentId"] = id);
1010
1010
  searchParams[filter.key] = createUrlParamStringForSegments({
1011
1011
  filter: filter,
1012
1012
  columns: columns
@@ -1014,8 +1014,8 @@ var buildUrlFromSegment = function buildUrlFromSegment(_ref19) {
1014
1014
  });
1015
1015
  return new URLSearchParams(searchParams).toString();
1016
1016
  };
1017
- var getKeywordValueFromUrl = function getKeywordValueFromUrl() {
1018
- return utils.getQueryParams()["keyword"] || "";
1017
+ var getSearchTermFromUrl = function getSearchTermFromUrl() {
1018
+ return utils.getQueryParams()["search_term"] || "";
1019
1019
  };
1020
1020
  var buildFilterColumnsFromFields = function buildFilterColumnsFromFields(_ref21) {
1021
1021
  var fields = _ref21.fields,
@@ -1050,7 +1050,7 @@ var buildFilterColumnsFromFields = function buildFilterColumnsFromFields(_ref21)
1050
1050
  };
1051
1051
  var getColumnsWithStandardizedType = function getColumnsWithStandardizedType(columns) {
1052
1052
  return columns.map(function (column) {
1053
- return _objectSpread$5(_objectSpread$5({}, column), {}, {
1053
+ return _objectSpread$4(_objectSpread$4({}, column), {}, {
1054
1054
  type: standardizeColumnType(column.type)
1055
1055
  });
1056
1056
  });
@@ -1127,7 +1127,7 @@ var buildRuleValue = function buildRuleValue(_ref) {
1127
1127
  return "";
1128
1128
  };
1129
1129
  var hasOnlyKeywordFilter = function hasOnlyKeywordFilter(filters) {
1130
- return filters.length === 1 && filters[0].key === "keyword";
1130
+ return filters.length === 1 && filters[0].key === "search_term";
1131
1131
  };
1132
1132
 
1133
1133
  var Block = function Block(_ref) {
@@ -1271,8 +1271,8 @@ var QUERY_KEYS = {
1271
1271
  };
1272
1272
  var SEGMENTS_STALE_TIME = 900000; // 15 mins
1273
1273
 
1274
- function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1275
- function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1274
+ function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1275
+ function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1276
1276
  var SEGMENTS_LIST = QUERY_KEYS.SEGMENTS_LIST;
1277
1277
  var useFetchSegments = function useFetchSegments(_ref) {
1278
1278
  var entity = _ref.entity,
@@ -1299,17 +1299,17 @@ var useShowSegment = function useShowSegment(id) {
1299
1299
  }, options));
1300
1300
  };
1301
1301
  var useCreateSegment = function useCreateSegment(options) {
1302
- return reactUtils.useMutationWithInvalidation(segmentsApi.create, _objectSpread$4({
1302
+ return reactUtils.useMutationWithInvalidation(segmentsApi.create, _objectSpread$3({
1303
1303
  keysToInvalidate: [SEGMENTS_LIST]
1304
1304
  }, options));
1305
1305
  };
1306
1306
  var useUpdateSegment = function useUpdateSegment(options) {
1307
- return reactUtils.useMutationWithInvalidation(segmentsApi.update, _objectSpread$4({
1307
+ return reactUtils.useMutationWithInvalidation(segmentsApi.update, _objectSpread$3({
1308
1308
  keysToInvalidate: [SEGMENTS_LIST]
1309
1309
  }, options));
1310
1310
  };
1311
1311
  var useDestroySegment = function useDestroySegment(options) {
1312
- return reactUtils.useMutationWithInvalidation(segmentsApi.destroy, _objectSpread$4({
1312
+ return reactUtils.useMutationWithInvalidation(segmentsApi.destroy, _objectSpread$3({
1313
1313
  keysToInvalidate: [SEGMENTS_LIST]
1314
1314
  }, options));
1315
1315
  };
@@ -1459,8 +1459,8 @@ var Segment = function Segment(_ref) {
1459
1459
  }));
1460
1460
  };
1461
1461
 
1462
- function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1463
- function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1462
+ function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1463
+ function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
1464
1464
  var Bar = function Bar(_ref) {
1465
1465
  var entity = _ref.entity,
1466
1466
  className = _ref.className,
@@ -1479,14 +1479,17 @@ var Bar = function Bar(_ref) {
1479
1479
  var _useTranslation = reactI18next.useTranslation(),
1480
1480
  t = _useTranslation.t;
1481
1481
  var initialRenderRef = React.useRef(true);
1482
- var searchParams = new URLSearchParams(window.location.search);
1483
- var keywordFilter = _objectSpread$3({
1484
- key: "keyword",
1482
+ var searchParams = reactUtils.useQueryParams();
1483
+ var keywordValue = searchParams.search_term || "";
1484
+ var keywordFilter = _objectSpread$2(_objectSpread$2({
1485
1485
  type: "text",
1486
1486
  rule: "contains",
1487
- label: t("neetoFilters.labels.keyword")
1488
- }, keyword);
1489
- var filters = buildFiltersFromSearchParams(keyword.value !== "" ? [keywordFilter].concat(_toConsumableArray(columns)) : columns);
1487
+ label: t("neetoFilters.common.searchTerm")
1488
+ }, keyword), {}, {
1489
+ key: "search_term",
1490
+ value: keywordValue
1491
+ });
1492
+ var filters = buildFiltersFromSearchParams(isNotEmpty(keywordValue) ? [keywordFilter].concat(_toConsumableArray(columns)) : columns);
1490
1493
  var nonHiddenFilters = removeBy({
1491
1494
  hidden: true
1492
1495
  }, filters);
@@ -1502,11 +1505,11 @@ var Bar = function Bar(_ref) {
1502
1505
  return function () {
1503
1506
  return clearTimeout(handler);
1504
1507
  };
1505
- }, [keyword.value]);
1508
+ }, [keywordValue]);
1506
1509
  var handleSubmit = function handleSubmit(newFilters, isClearAll) {
1507
- var params = buildUrlFromFilters(_objectSpread$3({
1510
+ var params = buildUrlFromFilters(_objectSpread$2({
1508
1511
  columns: columns,
1509
- filters: keyword.value !== "" ? [].concat(_toConsumableArray(newFilters), [keywordFilter]) : newFilters
1512
+ filters: isNotEmpty(getSearchTermFromUrl()) ? [].concat(_toConsumableArray(newFilters), [keywordFilter]) : newFilters
1510
1513
  }, isClearAll && {
1511
1514
  isClearAll: true,
1512
1515
  childrenKeys: childrenKeys
@@ -1516,15 +1519,16 @@ var Bar = function Bar(_ref) {
1516
1519
  });
1517
1520
  };
1518
1521
  var handleDelete = function handleDelete(key) {
1519
- if (key === "keyword") {
1520
- keyword.setValue("");
1521
- keyword.value = "";
1522
+ if (key === "search_term") {
1523
+ var params = ramda.omit(["search_term"], utils.getQueryParams());
1524
+ var pathname = window.location.pathname;
1525
+ history.push(utils.buildUrl(pathname, params));
1526
+ return;
1522
1527
  }
1523
1528
  if (childrenKeys.includes(key)) {
1524
- searchParams["delete"](key);
1525
- history.push({
1526
- search: searchParams.toString()
1527
- });
1529
+ var _params = ramda.omit([key], utils.getQueryParams());
1530
+ var _pathname = window.location.pathname;
1531
+ history.push(utils.buildUrl(_pathname, _params));
1528
1532
  }
1529
1533
  var newFilters = removeBy({
1530
1534
  key: key
@@ -1532,12 +1536,13 @@ var Bar = function Bar(_ref) {
1532
1536
  handleSubmit(newFilters);
1533
1537
  };
1534
1538
  var handleClearAll = function handleClearAll() {
1535
- keyword.setValue("");
1536
- keyword.value = "";
1539
+ var params = ramda.omit(["search_term"], utils.getQueryParams());
1540
+ var pathname = window.location.pathname;
1541
+ history.push(utils.buildUrl(pathname, params));
1537
1542
  handleSubmit([], true);
1538
1543
  };
1539
1544
  var childrenFiltersApplied = childrenKeys.some(function (key) {
1540
- return searchParams.get(key);
1545
+ return searchParams.has(key);
1541
1546
  });
1542
1547
  var hideClearButton = nonHiddenFilters.every(function (_ref2) {
1543
1548
  var defaultValue = _ref2.defaultValue,
@@ -1559,7 +1564,7 @@ var Bar = function Bar(_ref) {
1559
1564
  className: "neeto-filters-bar--separator"
1560
1565
  }));
1561
1566
  }), childrenKeys.filter(function (childKey) {
1562
- return searchParams.get(childKey);
1567
+ return ramda.has(childKey, searchParams);
1563
1568
  }).map(function (childKey) {
1564
1569
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, {
1565
1570
  key: childKey
@@ -4051,12 +4056,10 @@ Slider.Header = Header;
4051
4056
  Slider.Body = Body;
4052
4057
  Slider.Footer = Footer;
4053
4058
 
4054
- function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4055
- function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4056
4059
  var useFilters = function useFilters(_ref) {
4057
4060
  var onFiltersChange = _ref.onFiltersChange,
4058
4061
  columns = _ref.columns,
4059
- keyword = _ref.keyword,
4062
+ keywordFilter = _ref.keywordFilter,
4060
4063
  onSelectorsChange = _ref.onSelectorsChange;
4061
4064
  var _useTransition = React.useTransition(),
4062
4065
  _useTransition2 = _slicedToArray(_useTransition, 2);
@@ -4068,16 +4071,10 @@ var useFilters = function useFilters(_ref) {
4068
4071
  var filters = buildFiltersFromSearchParams(columns, false);
4069
4072
  var history = reactRouterDom.useHistory();
4070
4073
  var defaultValuesOfColumns = JSON.stringify(ramda.pluck("defaultValue", columns));
4071
- var keywordFilter = _objectSpread$2({
4072
- key: "keyword",
4073
- type: "text",
4074
- rule: "contains",
4075
- label: "Keyword"
4076
- }, keyword);
4077
4074
  var handlePrecenseOfDefaultFilters = function handlePrecenseOfDefaultFilters(defaultFilters) {
4078
4075
  var params = buildUrlFromFilters({
4079
4076
  columns: columns,
4080
- filters: keyword.value !== "" ? [].concat(_toConsumableArray(defaultFilters), [keywordFilter]) : defaultFilters
4077
+ filters: isNotEmpty(getSearchTermFromUrl()) ? [].concat(_toConsumableArray(defaultFilters), [keywordFilter]) : defaultFilters
4081
4078
  });
4082
4079
  history.replace({
4083
4080
  search: params
@@ -4097,7 +4094,7 @@ var useFilters = function useFilters(_ref) {
4097
4094
  return;
4098
4095
  }
4099
4096
  var newFilters = buildFiltersFromSearchParams(columns);
4100
- var filtersPayload = keyword.value ? ramda.append(keywordFilter, newFilters) : newFilters;
4097
+ var filtersPayload = isNotEmpty(getSearchTermFromUrl()) ? ramda.append(keywordFilter, newFilters) : newFilters;
4101
4098
  handleFiltersChange(filtersPayload);
4102
4099
  onSelectorsChange(buildSelectorsFromURL(columns));
4103
4100
  };
@@ -4115,14 +4112,12 @@ var useFilters = function useFilters(_ref) {
4115
4112
  })
4116
4113
  });
4117
4114
  filters = buildFiltersFromSearchParams(columns, false);
4118
- ramda.isNil(searchParams["keyword"]) && keyword.setValue("");
4119
4115
  }
4120
4116
  };
4121
4117
  React.useEffect(function () {
4122
4118
  if (initialRender.current) {
4123
4119
  initialRender.current = false;
4124
- var keywordValue = getKeywordValueFromUrl();
4125
- keyword.setValue(keywordValue);
4120
+ var keywordValue = getSearchTermFromUrl();
4126
4121
  var defaultFilters = buildDefaultFilters(columns, filters);
4127
4122
  isNotEmpty(defaultFilters) && handlePrecenseOfDefaultFilters(defaultFilters);
4128
4123
  prevFilters.current = ramda.append(ramda.mergeRight(keywordFilter, {
@@ -4834,7 +4829,7 @@ var Pane = function Pane(_ref) {
4834
4829
  childrenKeys = _ref$childrenKeys === void 0 ? [] : _ref$childrenKeys,
4835
4830
  children = _ref.children,
4836
4831
  otherProps = _objectWithoutProperties(_ref, _excluded);
4837
- var searchParams = utils.getQueryParams();
4832
+ var searchParams = reactUtils.useQueryParams();
4838
4833
  var _useState = React.useState(""),
4839
4834
  _useState2 = _slicedToArray(_useState, 2),
4840
4835
  searchTerm = _useState2[0],
@@ -4857,7 +4852,7 @@ var Pane = function Pane(_ref) {
4857
4852
  var isClearAll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
4858
4853
  var params = buildUrlFromFilters(_objectSpread$1({
4859
4854
  columns: columns,
4860
- filters: keyword.value !== "" ? [].concat(_toConsumableArray(newFilters), [keywordFilter]) : newFilters
4855
+ filters: isNotEmpty(getSearchTermFromUrl()) ? [].concat(_toConsumableArray(newFilters), [keywordFilter]) : newFilters
4861
4856
  }, isClearAll && {
4862
4857
  isClearAll: true,
4863
4858
  childrenKeys: childrenKeys
@@ -4866,21 +4861,24 @@ var Pane = function Pane(_ref) {
4866
4861
  search: params
4867
4862
  });
4868
4863
  };
4864
+ var keywordFilter = _objectSpread$1(_objectSpread$1({
4865
+ type: "text",
4866
+ rule: "contains",
4867
+ label: t("neetoFilters.common.searchTerm")
4868
+ }, keyword), {}, {
4869
+ key: "search_term",
4870
+ value: searchParams.search_term || ""
4871
+ });
4869
4872
  var filters = useFilters({
4870
4873
  onFiltersChange: onChange,
4871
4874
  columns: columns,
4872
- keyword: keyword,
4875
+ keywordFilter: keywordFilter,
4873
4876
  onSelectorsChange: onSelectorsChange
4874
4877
  });
4875
- var keywordFilter = _objectSpread$1({
4876
- key: "keyword",
4877
- type: "text",
4878
- rule: "contains",
4879
- label: t("neetoFilters.labels.keyword")
4880
- }, keyword);
4881
4878
  var handleClearAll = function handleClearAll() {
4882
- keyword.setValue("");
4883
- keyword.value = "";
4879
+ var params = ramda.omit(["search_term"], utils.getQueryParams());
4880
+ var pathname = window.location.pathname;
4881
+ history.push(utils.buildUrl(pathname, params));
4884
4882
  handleChange([], true);
4885
4883
  };
4886
4884
  var handleClose = function handleClose() {