react-instantsearch-core 6.23.2 → 6.24.0

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.
@@ -17,6 +17,8 @@ var _createConnector = _interopRequireDefault(require("../core/createConnector")
17
17
 
18
18
  var _indexUtils = require("../core/indexUtils");
19
19
 
20
+ var _utils = require("../core/utils");
21
+
20
22
  function ownKeys(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; }
21
23
 
22
24
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -272,7 +274,7 @@ var _default = (0, _createConnector.default)({
272
274
  multiIndexContext: props.indexContextValue
273
275
  });
274
276
  var items = !currentRefinement ? [] : [{
275
- label: "".concat(rootAttribute, ": ").concat(currentRefinement),
277
+ label: "".concat(rootAttribute, ": ").concat((0, _utils.unescapeFacetValue)(currentRefinement)),
276
278
  attribute: rootAttribute,
277
279
  value: function value(nextState) {
278
280
  return _refine(props, nextState, '', {
@@ -15,6 +15,8 @@ var _createConnector = _interopRequireDefault(require("../core/createConnector")
15
15
 
16
16
  var _indexUtils = require("../core/indexUtils");
17
17
 
18
+ var _utils = require("../core/utils");
19
+
18
20
  var namespace = 'menu';
19
21
 
20
22
  function getId(props) {
@@ -220,7 +222,7 @@ var _default = (0, _createConnector.default)({
220
222
  multiIndexContext: props.indexContextValue
221
223
  }),
222
224
  items: currentRefinement === null ? [] : [{
223
- label: "".concat(props.attribute, ": ").concat(currentRefinement),
225
+ label: "".concat(props.attribute, ": ").concat((0, _utils.unescapeFacetValue)(currentRefinement)),
224
226
  attribute: props.attribute,
225
227
  value: function value(nextState) {
226
228
  return _refine(props, nextState, '', {
@@ -15,6 +15,8 @@ var _createConnector = _interopRequireDefault(require("../core/createConnector")
15
15
 
16
16
  var _indexUtils = require("../core/indexUtils");
17
17
 
18
+ var _utils = require("../core/utils");
19
+
18
20
  var namespace = 'refinementList';
19
21
 
20
22
  function getId(props) {
@@ -241,7 +243,7 @@ var _default = (0, _createConnector.default)({
241
243
  },
242
244
  items: getCurrentRefinement(props, searchState, context).map(function (item) {
243
245
  return {
244
- label: "".concat(item),
246
+ label: (0, _utils.unescapeFacetValue)("".concat(item)),
245
247
  value: function value(nextState) {
246
248
  var nextSelectedItems = getCurrentRefinement(props, nextState, context).filter(function (other) {
247
249
  return other !== item;
@@ -125,6 +125,7 @@ function createInstantSearchManager(_ref) {
125
125
  var skip = false;
126
126
  var stalledSearchTimer = null;
127
127
  var initialSearchParameters = helper.state;
128
+ var searchCounter;
128
129
  var widgetsManager = (0, _createWidgetsManager.default)(onWidgetsUpdate);
129
130
  hydrateSearchClient(searchClient, resultsState);
130
131
  var store = (0, _createStore.default)({
@@ -210,12 +211,13 @@ function createInstantSearchManager(_ref) {
210
211
  if (!skip) {
211
212
  var _getSearchParameters = getSearchParameters(helper.state),
212
213
  mainParameters = _getSearchParameters.mainParameters,
213
- derivedParameters = _getSearchParameters.derivedParameters; // We have to call `slice` because the method `detach` on the derived
214
+ derivedParameters = _getSearchParameters.derivedParameters;
215
+
216
+ searchCounter = derivedParameters.length + 1; // We have to call `slice` because the method `detach` on the derived
214
217
  // helpers mutates the value `derivedHelpers`. The `forEach` loop does
215
218
  // not iterate on each value and we're not able to correctly clear the
216
219
  // previous derived helpers (memory leak + useless requests).
217
220
 
218
-
219
221
  helper.derivedHelpers.slice().forEach(function (derivedHelper) {
220
222
  // Since we detach the derived helpers on **every** new search they
221
223
  // won't receive intermediate results in case of a stalled search.
@@ -251,6 +253,7 @@ function createInstantSearchManager(_ref) {
251
253
  function handleSearchSuccess(_ref3) {
252
254
  var indexId = _ref3.indexId;
253
255
  return function (event) {
256
+ searchCounter--;
254
257
  var state = store.getState();
255
258
  var isDerivedHelpersEmpty = !helper.derivedHelpers.length;
256
259
  var results = state.results ? state.results : {}; // Switching from mono index to multi index and vice versa must reset the
@@ -279,7 +282,7 @@ function createInstantSearchManager(_ref) {
279
282
  store.setState(_objectSpread(_objectSpread({}, partialState), {}, {
280
283
  results: results,
281
284
  isSearchStalled: nextIsSearchStalled,
282
- searching: false,
285
+ searching: searchCounter > 0,
283
286
  error: null
284
287
  }));
285
288
  };
@@ -15,6 +15,7 @@ exports.getPropertyByPath = void 0;
15
15
  exports.objectHasKeys = objectHasKeys;
16
16
  exports.omit = omit;
17
17
  exports.shallowEqual = exports.removeEmptyKey = exports.removeEmptyArraysFromObject = void 0;
18
+ exports.unescapeFacetValue = unescapeFacetValue;
18
19
 
19
20
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
20
21
 
@@ -189,4 +190,8 @@ exports.getPropertyByPath = getPropertyByPath;
189
190
 
190
191
  function getObjectType(object) {
191
192
  return Object.prototype.toString.call(object).slice(8, -1);
193
+ }
194
+
195
+ function unescapeFacetValue(value) {
196
+ return value.replace(/^\\-/, '-');
192
197
  }
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _default = '6.23.2';
7
+ var _default = '6.24.0';
8
8
  exports.default = _default;
@@ -8,6 +8,7 @@ import PropTypes from 'prop-types';
8
8
  import algoliasearchHelper from 'algoliasearch-helper';
9
9
  import createConnector from "../core/createConnector.js";
10
10
  import { cleanUpValue, getIndexId, refineValue, getCurrentRefinementValue, getResults } from "../core/indexUtils.js";
11
+ import { unescapeFacetValue } from "../core/utils.js";
11
12
  export var getId = function getId(props) {
12
13
  return props.attributes[0];
13
14
  };
@@ -259,7 +260,7 @@ export default createConnector({
259
260
  multiIndexContext: props.indexContextValue
260
261
  });
261
262
  var items = !currentRefinement ? [] : [{
262
- label: "".concat(rootAttribute, ": ").concat(currentRefinement),
263
+ label: "".concat(rootAttribute, ": ").concat(unescapeFacetValue(currentRefinement)),
263
264
  attribute: rootAttribute,
264
265
  value: function value(nextState) {
265
266
  return _refine(props, nextState, '', {
@@ -2,6 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import PropTypes from 'prop-types';
3
3
  import createConnector from "../core/createConnector.js";
4
4
  import { getIndexId, cleanUpValue, refineValue, getCurrentRefinementValue, getResults } from "../core/indexUtils.js";
5
+ import { unescapeFacetValue } from "../core/utils.js";
5
6
  var namespace = 'menu';
6
7
 
7
8
  function getId(props) {
@@ -209,7 +210,7 @@ export default createConnector({
209
210
  multiIndexContext: props.indexContextValue
210
211
  }),
211
212
  items: currentRefinement === null ? [] : [{
212
- label: "".concat(props.attribute, ": ").concat(currentRefinement),
213
+ label: "".concat(props.attribute, ": ").concat(unescapeFacetValue(currentRefinement)),
213
214
  attribute: props.attribute,
214
215
  value: function value(nextState) {
215
216
  return _refine(props, nextState, '', {
@@ -2,6 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import PropTypes from 'prop-types';
3
3
  import createConnector from "../core/createConnector.js";
4
4
  import { cleanUpValue, getIndexId, refineValue, getCurrentRefinementValue, getResults } from "../core/indexUtils.js";
5
+ import { unescapeFacetValue } from "../core/utils.js";
5
6
  var namespace = 'refinementList';
6
7
 
7
8
  function getId(props) {
@@ -228,7 +229,7 @@ export default createConnector({
228
229
  },
229
230
  items: getCurrentRefinement(props, searchState, context).map(function (item) {
230
231
  return {
231
- label: "".concat(item),
232
+ label: unescapeFacetValue("".concat(item)),
232
233
  value: function value(nextState) {
233
234
  var nextSelectedItems = getCurrentRefinement(props, nextState, context).filter(function (other) {
234
235
  return other !== item;
@@ -108,6 +108,7 @@ export default function createInstantSearchManager(_ref) {
108
108
  var skip = false;
109
109
  var stalledSearchTimer = null;
110
110
  var initialSearchParameters = helper.state;
111
+ var searchCounter;
111
112
  var widgetsManager = createWidgetsManager(onWidgetsUpdate);
112
113
  hydrateSearchClient(searchClient, resultsState);
113
114
  var store = createStore({
@@ -193,12 +194,13 @@ export default function createInstantSearchManager(_ref) {
193
194
  if (!skip) {
194
195
  var _getSearchParameters = getSearchParameters(helper.state),
195
196
  mainParameters = _getSearchParameters.mainParameters,
196
- derivedParameters = _getSearchParameters.derivedParameters; // We have to call `slice` because the method `detach` on the derived
197
+ derivedParameters = _getSearchParameters.derivedParameters;
198
+
199
+ searchCounter = derivedParameters.length + 1; // We have to call `slice` because the method `detach` on the derived
197
200
  // helpers mutates the value `derivedHelpers`. The `forEach` loop does
198
201
  // not iterate on each value and we're not able to correctly clear the
199
202
  // previous derived helpers (memory leak + useless requests).
200
203
 
201
-
202
204
  helper.derivedHelpers.slice().forEach(function (derivedHelper) {
203
205
  // Since we detach the derived helpers on **every** new search they
204
206
  // won't receive intermediate results in case of a stalled search.
@@ -234,6 +236,7 @@ export default function createInstantSearchManager(_ref) {
234
236
  function handleSearchSuccess(_ref3) {
235
237
  var indexId = _ref3.indexId;
236
238
  return function (event) {
239
+ searchCounter--;
237
240
  var state = store.getState();
238
241
  var isDerivedHelpersEmpty = !helper.derivedHelpers.length;
239
242
  var results = state.results ? state.results : {}; // Switching from mono index to multi index and vice versa must reset the
@@ -263,7 +266,7 @@ export default function createInstantSearchManager(_ref) {
263
266
  store.setState(_objectSpread(_objectSpread({}, partialState), {}, {
264
267
  results: results,
265
268
  isSearchStalled: nextIsSearchStalled,
266
- searching: false,
269
+ searching: searchCounter > 0,
267
270
  error: null
268
271
  }));
269
272
  };
@@ -148,4 +148,7 @@ export var getPropertyByPath = function getPropertyByPath(object, path) {
148
148
  };
149
149
  export function getObjectType(object) {
150
150
  return Object.prototype.toString.call(object).slice(8, -1);
151
+ }
152
+ export function unescapeFacetValue(value) {
153
+ return value.replace(/^\\-/, '-');
151
154
  }
@@ -1 +1 @@
1
- export default '6.23.2';
1
+ export default '6.24.0';
@@ -1,4 +1,4 @@
1
- /*! React InstantSearchCore 6.23.2 | © Algolia, inc. | https://github.com/algolia/react-instantsearch */
1
+ /*! React InstantSearchCore 6.24.0 | © Algolia, inc. | https://github.com/algolia/react-instantsearch */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :
4
4
  typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :
@@ -437,6 +437,9 @@
437
437
  return current ? current[key] : undefined;
438
438
  }, object);
439
439
  };
440
+ function unescapeFacetValue(value) {
441
+ return value.replace(/^\\-/, '-');
442
+ }
440
443
 
441
444
  var instantSearchContext = /*#__PURE__*/React.createContext({
442
445
  onInternalStateUpdate: function onInternalStateUpdate() {
@@ -839,7 +842,7 @@
839
842
  });
840
843
  }
841
844
 
842
- var version = '6.23.2';
845
+ var version = '6.24.0';
843
846
 
844
847
  function _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
845
848
 
@@ -3243,13 +3246,13 @@
3243
3246
  * @param {string} value the escaped facet value
3244
3247
  * @returns string
3245
3248
  */
3246
- function unescapeFacetValue(value) {
3249
+ function unescapeFacetValue$1(value) {
3247
3250
  return value.replace(/^\\-/, '-');
3248
3251
  }
3249
3252
 
3250
3253
  var escapeFacetValue_1 = {
3251
3254
  escapeFacetValue: escapeFacetValue,
3252
- unescapeFacetValue: unescapeFacetValue
3255
+ unescapeFacetValue: unescapeFacetValue$1
3253
3256
  };
3254
3257
 
3255
3258
  var generateHierarchicalTree_1 = generateTrees;
@@ -3259,7 +3262,7 @@
3259
3262
 
3260
3263
 
3261
3264
  var escapeFacetValue$1 = escapeFacetValue_1.escapeFacetValue;
3262
- var unescapeFacetValue$1 = escapeFacetValue_1.unescapeFacetValue;
3265
+ var unescapeFacetValue$2 = escapeFacetValue_1.unescapeFacetValue;
3263
3266
 
3264
3267
  function generateTrees(state) {
3265
3268
  return function generate(hierarchicalFacetResult, hierarchicalFacetIndex) {
@@ -3382,7 +3385,7 @@
3382
3385
  facetCount,
3383
3386
  facetValue,
3384
3387
  hierarchicalSeparator,
3385
- unescapeFacetValue$1(currentRefinement),
3388
+ unescapeFacetValue$2(currentRefinement),
3386
3389
  hierarchicalFacetResult.exhaustive
3387
3390
  );
3388
3391
  }),
@@ -3456,7 +3459,7 @@
3456
3459
  }
3457
3460
 
3458
3461
  var escapeFacetValue$2 = escapeFacetValue_1.escapeFacetValue;
3459
- var unescapeFacetValue$2 = escapeFacetValue_1.unescapeFacetValue;
3462
+ var unescapeFacetValue$3 = escapeFacetValue_1.unescapeFacetValue;
3460
3463
 
3461
3464
 
3462
3465
 
@@ -3958,7 +3961,7 @@
3958
3961
  state.disjunctiveFacetsRefinements[dfacet].forEach(function(refinementValue) {
3959
3962
  // add the disjunctive refinements if it is no more retrieved
3960
3963
  if (!self.disjunctiveFacets[position].data[refinementValue] &&
3961
- state.disjunctiveFacetsRefinements[dfacet].indexOf(unescapeFacetValue$2(refinementValue)) > -1) {
3964
+ state.disjunctiveFacetsRefinements[dfacet].indexOf(unescapeFacetValue$3(refinementValue)) > -1) {
3962
3965
  self.disjunctiveFacets[position].data[refinementValue] = 0;
3963
3966
  }
3964
3967
  });
@@ -7493,6 +7496,7 @@
7493
7496
  var skip = false;
7494
7497
  var stalledSearchTimer = null;
7495
7498
  var initialSearchParameters = helper.state;
7499
+ var searchCounter;
7496
7500
  var widgetsManager = createWidgetsManager(onWidgetsUpdate);
7497
7501
  hydrateSearchClient(searchClient, resultsState);
7498
7502
  var store = createStore({
@@ -7578,12 +7582,13 @@
7578
7582
  if (!skip) {
7579
7583
  var _getSearchParameters = getSearchParameters(),
7580
7584
  mainParameters = _getSearchParameters.mainParameters,
7581
- derivedParameters = _getSearchParameters.derivedParameters; // We have to call `slice` because the method `detach` on the derived
7585
+ derivedParameters = _getSearchParameters.derivedParameters;
7586
+
7587
+ searchCounter = derivedParameters.length + 1; // We have to call `slice` because the method `detach` on the derived
7582
7588
  // helpers mutates the value `derivedHelpers`. The `forEach` loop does
7583
7589
  // not iterate on each value and we're not able to correctly clear the
7584
7590
  // previous derived helpers (memory leak + useless requests).
7585
7591
 
7586
-
7587
7592
  helper.derivedHelpers.slice().forEach(function (derivedHelper) {
7588
7593
  // Since we detach the derived helpers on **every** new search they
7589
7594
  // won't receive intermediate results in case of a stalled search.
@@ -7619,6 +7624,7 @@
7619
7624
  function handleSearchSuccess(_ref3) {
7620
7625
  var indexId = _ref3.indexId;
7621
7626
  return function (event) {
7627
+ searchCounter--;
7622
7628
  var state = store.getState();
7623
7629
  var isDerivedHelpersEmpty = !helper.derivedHelpers.length;
7624
7630
  var results = state.results ? state.results : {}; // Switching from mono index to multi index and vice versa must reset the
@@ -7648,7 +7654,7 @@
7648
7654
  store.setState(_objectSpread$5(_objectSpread$5({}, partialState), {}, {
7649
7655
  results: results,
7650
7656
  isSearchStalled: nextIsSearchStalled,
7651
- searching: false,
7657
+ searching: searchCounter > 0,
7652
7658
  error: null
7653
7659
  }));
7654
7660
  };
@@ -8940,7 +8946,7 @@
8940
8946
  multiIndexContext: props.indexContextValue
8941
8947
  });
8942
8948
  var items = !currentRefinement ? [] : [{
8943
- label: "".concat(rootAttribute, ": ").concat(currentRefinement),
8949
+ label: "".concat(rootAttribute, ": ").concat(unescapeFacetValue(currentRefinement)),
8944
8950
  attribute: rootAttribute,
8945
8951
  value: function value(nextState) {
8946
8952
  return _refine$3(props, nextState, '', {
@@ -9566,7 +9572,7 @@
9566
9572
  multiIndexContext: props.indexContextValue
9567
9573
  }),
9568
9574
  items: currentRefinement === null ? [] : [{
9569
- label: "".concat(props.attribute, ": ").concat(currentRefinement),
9575
+ label: "".concat(props.attribute, ": ").concat(unescapeFacetValue(currentRefinement)),
9570
9576
  attribute: props.attribute,
9571
9577
  value: function value(nextState) {
9572
9578
  return _refine$4(props, nextState, '', {
@@ -10481,7 +10487,7 @@
10481
10487
  },
10482
10488
  items: getCurrentRefinement$9(props, searchState, context).map(function (item) {
10483
10489
  return {
10484
- label: "".concat(item),
10490
+ label: unescapeFacetValue("".concat(item)),
10485
10491
  value: function value(nextState) {
10486
10492
  var nextSelectedItems = getCurrentRefinement$9(props, nextState, context).filter(function (other) {
10487
10493
  return other !== item;