@bigbinary/neeto-filters-frontend 3.0.0 → 3.0.2

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
 
@@ -264,6 +262,8 @@ and selected field names.
264
262
  selected field names. Defaults to an empty array.
265
263
  - `showRuleSelector` (boolean, optional): A boolean value which specify whether
266
264
  to show the rule selector for each filter or not. It is `false` by default.
265
+ - `groupName` (string, optional): A name to be given to the group of filters
266
+ built from fields.
267
267
 
268
268
  ```js
269
269
  const fields = [
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,27 +1014,30 @@ 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,
1022
1022
  _ref21$selectedFields = _ref21.selectedFields,
1023
1023
  selectedFields = _ref21$selectedFields === void 0 ? [] : _ref21$selectedFields,
1024
1024
  _ref21$showRuleSelect = _ref21.showRuleSelector,
1025
- showRuleSelector = _ref21$showRuleSelect === void 0 ? false : _ref21$showRuleSelect;
1025
+ showRuleSelector = _ref21$showRuleSelect === void 0 ? false : _ref21$showRuleSelect,
1026
+ groupName = _ref21.groupName;
1026
1027
  return fields.reduce(function (columns, field) {
1027
1028
  if (ramda.isEmpty(selectedFields) || selectedFields.includes(field.name)) {
1028
1029
  var id = field.id,
1029
1030
  name = field.name,
1030
1031
  kind = field.kind;
1031
- var column = {
1032
+ var column = _objectSpread$4({
1032
1033
  key: ramda.toLower(name),
1033
1034
  node: "".concat(name, ":").concat(id),
1034
1035
  label: capitalize(name),
1035
1036
  type: "custom.".concat(kind),
1036
1037
  showRuleSelector: showRuleSelector
1037
- };
1038
+ }, groupName && {
1039
+ group: groupName
1040
+ });
1038
1041
  if (kind === "single_option" || kind === "multi_option") {
1039
1042
  column.values = field.data.map(function (item) {
1040
1043
  return {
@@ -1050,7 +1053,7 @@ var buildFilterColumnsFromFields = function buildFilterColumnsFromFields(_ref21)
1050
1053
  };
1051
1054
  var getColumnsWithStandardizedType = function getColumnsWithStandardizedType(columns) {
1052
1055
  return columns.map(function (column) {
1053
- return _objectSpread$5(_objectSpread$5({}, column), {}, {
1056
+ return _objectSpread$4(_objectSpread$4({}, column), {}, {
1054
1057
  type: standardizeColumnType(column.type)
1055
1058
  });
1056
1059
  });
@@ -1127,7 +1130,7 @@ var buildRuleValue = function buildRuleValue(_ref) {
1127
1130
  return "";
1128
1131
  };
1129
1132
  var hasOnlyKeywordFilter = function hasOnlyKeywordFilter(filters) {
1130
- return filters.length === 1 && filters[0].key === "keyword";
1133
+ return filters.length === 1 && filters[0].key === "search_term";
1131
1134
  };
1132
1135
 
1133
1136
  var Block = function Block(_ref) {
@@ -1271,8 +1274,8 @@ var QUERY_KEYS = {
1271
1274
  };
1272
1275
  var SEGMENTS_STALE_TIME = 900000; // 15 mins
1273
1276
 
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; }
1277
+ 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; }
1278
+ 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
1279
  var SEGMENTS_LIST = QUERY_KEYS.SEGMENTS_LIST;
1277
1280
  var useFetchSegments = function useFetchSegments(_ref) {
1278
1281
  var entity = _ref.entity,
@@ -1299,17 +1302,17 @@ var useShowSegment = function useShowSegment(id) {
1299
1302
  }, options));
1300
1303
  };
1301
1304
  var useCreateSegment = function useCreateSegment(options) {
1302
- return reactUtils.useMutationWithInvalidation(segmentsApi.create, _objectSpread$4({
1305
+ return reactUtils.useMutationWithInvalidation(segmentsApi.create, _objectSpread$3({
1303
1306
  keysToInvalidate: [SEGMENTS_LIST]
1304
1307
  }, options));
1305
1308
  };
1306
1309
  var useUpdateSegment = function useUpdateSegment(options) {
1307
- return reactUtils.useMutationWithInvalidation(segmentsApi.update, _objectSpread$4({
1310
+ return reactUtils.useMutationWithInvalidation(segmentsApi.update, _objectSpread$3({
1308
1311
  keysToInvalidate: [SEGMENTS_LIST]
1309
1312
  }, options));
1310
1313
  };
1311
1314
  var useDestroySegment = function useDestroySegment(options) {
1312
- return reactUtils.useMutationWithInvalidation(segmentsApi.destroy, _objectSpread$4({
1315
+ return reactUtils.useMutationWithInvalidation(segmentsApi.destroy, _objectSpread$3({
1313
1316
  keysToInvalidate: [SEGMENTS_LIST]
1314
1317
  }, options));
1315
1318
  };
@@ -1459,8 +1462,8 @@ var Segment = function Segment(_ref) {
1459
1462
  }));
1460
1463
  };
1461
1464
 
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; }
1465
+ 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; }
1466
+ 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
1467
  var Bar = function Bar(_ref) {
1465
1468
  var entity = _ref.entity,
1466
1469
  className = _ref.className,
@@ -1479,14 +1482,17 @@ var Bar = function Bar(_ref) {
1479
1482
  var _useTranslation = reactI18next.useTranslation(),
1480
1483
  t = _useTranslation.t;
1481
1484
  var initialRenderRef = React.useRef(true);
1482
- var searchParams = new URLSearchParams(window.location.search);
1483
- var keywordFilter = _objectSpread$3({
1484
- key: "keyword",
1485
+ var searchParams = reactUtils.useQueryParams();
1486
+ var keywordValue = searchParams.search_term || "";
1487
+ var keywordFilter = _objectSpread$2(_objectSpread$2({
1485
1488
  type: "text",
1486
1489
  rule: "contains",
1487
- label: t("neetoFilters.labels.keyword")
1488
- }, keyword);
1489
- var filters = buildFiltersFromSearchParams(keyword.value !== "" ? [keywordFilter].concat(_toConsumableArray(columns)) : columns);
1490
+ label: t("neetoFilters.common.searchTerm")
1491
+ }, keyword), {}, {
1492
+ key: "search_term",
1493
+ value: keywordValue
1494
+ });
1495
+ var filters = buildFiltersFromSearchParams(isNotEmpty(keywordValue) ? [keywordFilter].concat(_toConsumableArray(columns)) : columns);
1490
1496
  var nonHiddenFilters = removeBy({
1491
1497
  hidden: true
1492
1498
  }, filters);
@@ -1502,11 +1508,11 @@ var Bar = function Bar(_ref) {
1502
1508
  return function () {
1503
1509
  return clearTimeout(handler);
1504
1510
  };
1505
- }, [keyword.value]);
1511
+ }, [keywordValue]);
1506
1512
  var handleSubmit = function handleSubmit(newFilters, isClearAll) {
1507
- var params = buildUrlFromFilters(_objectSpread$3({
1513
+ var params = buildUrlFromFilters(_objectSpread$2({
1508
1514
  columns: columns,
1509
- filters: keyword.value !== "" ? [].concat(_toConsumableArray(newFilters), [keywordFilter]) : newFilters
1515
+ filters: isNotEmpty(getSearchTermFromUrl()) ? [].concat(_toConsumableArray(newFilters), [keywordFilter]) : newFilters
1510
1516
  }, isClearAll && {
1511
1517
  isClearAll: true,
1512
1518
  childrenKeys: childrenKeys
@@ -1516,15 +1522,16 @@ var Bar = function Bar(_ref) {
1516
1522
  });
1517
1523
  };
1518
1524
  var handleDelete = function handleDelete(key) {
1519
- if (key === "keyword") {
1520
- keyword.setValue("");
1521
- keyword.value = "";
1525
+ if (key === "search_term") {
1526
+ var params = ramda.omit(["search_term"], utils.getQueryParams());
1527
+ var pathname = window.location.pathname;
1528
+ history.push(utils.buildUrl(pathname, params));
1529
+ return;
1522
1530
  }
1523
1531
  if (childrenKeys.includes(key)) {
1524
- searchParams["delete"](key);
1525
- history.push({
1526
- search: searchParams.toString()
1527
- });
1532
+ var _params = ramda.omit([key], utils.getQueryParams());
1533
+ var _pathname = window.location.pathname;
1534
+ history.push(utils.buildUrl(_pathname, _params));
1528
1535
  }
1529
1536
  var newFilters = removeBy({
1530
1537
  key: key
@@ -1532,12 +1539,13 @@ var Bar = function Bar(_ref) {
1532
1539
  handleSubmit(newFilters);
1533
1540
  };
1534
1541
  var handleClearAll = function handleClearAll() {
1535
- keyword.setValue("");
1536
- keyword.value = "";
1542
+ var params = ramda.omit(["search_term"], utils.getQueryParams());
1543
+ var pathname = window.location.pathname;
1544
+ history.push(utils.buildUrl(pathname, params));
1537
1545
  handleSubmit([], true);
1538
1546
  };
1539
1547
  var childrenFiltersApplied = childrenKeys.some(function (key) {
1540
- return searchParams.get(key);
1548
+ return searchParams.has(key);
1541
1549
  });
1542
1550
  var hideClearButton = nonHiddenFilters.every(function (_ref2) {
1543
1551
  var defaultValue = _ref2.defaultValue,
@@ -1559,7 +1567,7 @@ var Bar = function Bar(_ref) {
1559
1567
  className: "neeto-filters-bar--separator"
1560
1568
  }));
1561
1569
  }), childrenKeys.filter(function (childKey) {
1562
- return searchParams.get(childKey);
1570
+ return ramda.has(childKey, searchParams);
1563
1571
  }).map(function (childKey) {
1564
1572
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, {
1565
1573
  key: childKey
@@ -4051,12 +4059,10 @@ Slider.Header = Header;
4051
4059
  Slider.Body = Body;
4052
4060
  Slider.Footer = Footer;
4053
4061
 
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
4062
  var useFilters = function useFilters(_ref) {
4057
4063
  var onFiltersChange = _ref.onFiltersChange,
4058
4064
  columns = _ref.columns,
4059
- keyword = _ref.keyword,
4065
+ keywordFilter = _ref.keywordFilter,
4060
4066
  onSelectorsChange = _ref.onSelectorsChange;
4061
4067
  var _useTransition = React.useTransition(),
4062
4068
  _useTransition2 = _slicedToArray(_useTransition, 2);
@@ -4068,16 +4074,10 @@ var useFilters = function useFilters(_ref) {
4068
4074
  var filters = buildFiltersFromSearchParams(columns, false);
4069
4075
  var history = reactRouterDom.useHistory();
4070
4076
  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
4077
  var handlePrecenseOfDefaultFilters = function handlePrecenseOfDefaultFilters(defaultFilters) {
4078
4078
  var params = buildUrlFromFilters({
4079
4079
  columns: columns,
4080
- filters: keyword.value !== "" ? [].concat(_toConsumableArray(defaultFilters), [keywordFilter]) : defaultFilters
4080
+ filters: isNotEmpty(getSearchTermFromUrl()) ? [].concat(_toConsumableArray(defaultFilters), [keywordFilter]) : defaultFilters
4081
4081
  });
4082
4082
  history.replace({
4083
4083
  search: params
@@ -4097,7 +4097,7 @@ var useFilters = function useFilters(_ref) {
4097
4097
  return;
4098
4098
  }
4099
4099
  var newFilters = buildFiltersFromSearchParams(columns);
4100
- var filtersPayload = keyword.value ? ramda.append(keywordFilter, newFilters) : newFilters;
4100
+ var filtersPayload = isNotEmpty(getSearchTermFromUrl()) ? ramda.append(keywordFilter, newFilters) : newFilters;
4101
4101
  handleFiltersChange(filtersPayload);
4102
4102
  onSelectorsChange(buildSelectorsFromURL(columns));
4103
4103
  };
@@ -4115,14 +4115,12 @@ var useFilters = function useFilters(_ref) {
4115
4115
  })
4116
4116
  });
4117
4117
  filters = buildFiltersFromSearchParams(columns, false);
4118
- ramda.isNil(searchParams["keyword"]) && keyword.setValue("");
4119
4118
  }
4120
4119
  };
4121
4120
  React.useEffect(function () {
4122
4121
  if (initialRender.current) {
4123
4122
  initialRender.current = false;
4124
- var keywordValue = getKeywordValueFromUrl();
4125
- keyword.setValue(keywordValue);
4123
+ var keywordValue = getSearchTermFromUrl();
4126
4124
  var defaultFilters = buildDefaultFilters(columns, filters);
4127
4125
  isNotEmpty(defaultFilters) && handlePrecenseOfDefaultFilters(defaultFilters);
4128
4126
  prevFilters.current = ramda.append(ramda.mergeRight(keywordFilter, {
@@ -4834,7 +4832,7 @@ var Pane = function Pane(_ref) {
4834
4832
  childrenKeys = _ref$childrenKeys === void 0 ? [] : _ref$childrenKeys,
4835
4833
  children = _ref.children,
4836
4834
  otherProps = _objectWithoutProperties(_ref, _excluded);
4837
- var searchParams = utils.getQueryParams();
4835
+ var searchParams = reactUtils.useQueryParams();
4838
4836
  var _useState = React.useState(""),
4839
4837
  _useState2 = _slicedToArray(_useState, 2),
4840
4838
  searchTerm = _useState2[0],
@@ -4857,7 +4855,7 @@ var Pane = function Pane(_ref) {
4857
4855
  var isClearAll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
4858
4856
  var params = buildUrlFromFilters(_objectSpread$1({
4859
4857
  columns: columns,
4860
- filters: keyword.value !== "" ? [].concat(_toConsumableArray(newFilters), [keywordFilter]) : newFilters
4858
+ filters: isNotEmpty(getSearchTermFromUrl()) ? [].concat(_toConsumableArray(newFilters), [keywordFilter]) : newFilters
4861
4859
  }, isClearAll && {
4862
4860
  isClearAll: true,
4863
4861
  childrenKeys: childrenKeys
@@ -4866,21 +4864,24 @@ var Pane = function Pane(_ref) {
4866
4864
  search: params
4867
4865
  });
4868
4866
  };
4867
+ var keywordFilter = _objectSpread$1(_objectSpread$1({
4868
+ type: "text",
4869
+ rule: "contains",
4870
+ label: t("neetoFilters.common.searchTerm")
4871
+ }, keyword), {}, {
4872
+ key: "search_term",
4873
+ value: searchParams.search_term || ""
4874
+ });
4869
4875
  var filters = useFilters({
4870
4876
  onFiltersChange: onChange,
4871
4877
  columns: columns,
4872
- keyword: keyword,
4878
+ keywordFilter: keywordFilter,
4873
4879
  onSelectorsChange: onSelectorsChange
4874
4880
  });
4875
- var keywordFilter = _objectSpread$1({
4876
- key: "keyword",
4877
- type: "text",
4878
- rule: "contains",
4879
- label: t("neetoFilters.labels.keyword")
4880
- }, keyword);
4881
4881
  var handleClearAll = function handleClearAll() {
4882
- keyword.setValue("");
4883
- keyword.value = "";
4882
+ var params = ramda.omit(["search_term"], utils.getQueryParams());
4883
+ var pathname = window.location.pathname;
4884
+ history.push(utils.buildUrl(pathname, params));
4884
4885
  handleChange([], true);
4885
4886
  };
4886
4887
  var handleClose = function handleClose() {