instantsearch.js 4.56.2 → 4.56.4

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.
@@ -1,40 +1,5 @@
1
- import type { SendEventForFacet } from '../../lib/utils';
2
- import type { Connector, CreateURL, WidgetRenderState } from '../../types';
3
- type ToggleRefinementConnectorParams = {
4
- attribute: string;
5
- on: string | string[];
6
- off: string | string[];
7
- };
8
- type FacetValue = {
9
- isRefined: boolean;
10
- count: number;
11
- };
12
- type ToggleRefinementRenderState = {
13
- value: {
14
- name: string;
15
- isRefined: boolean;
16
- count: number | null;
17
- onFacetValue: FacetValue;
18
- offFacetValue: FacetValue;
19
- };
20
- createURL: CreateURL<string>;
21
- sendEvent: SendEventForFacet;
22
- canRefine: boolean;
23
- refine: (value: string) => void;
24
- };
25
- export type ToggleRefinementWidgetDescription = {
26
- $$type: 'ais.toggleRefinement';
27
- renderState: ToggleRefinementRenderState;
28
- indexRenderState: {
29
- toggleRefinement: {
30
- [attribute: string]: WidgetRenderState<ToggleRefinementRenderState, ToggleRefinementConnectorParams>;
31
- };
32
- };
33
- indexUiState: {
34
- toggle: {
35
- [attribute: string]: boolean;
36
- };
37
- };
38
- };
39
- export type ToggleRefinementConnector = Connector<ToggleRefinementWidgetDescription, ToggleRefinementConnectorParams>;
40
- export {};
1
+ export type {
2
+ /** @deprecated import from connectToggleRefinement directly */
3
+ ToggleRefinementConnector,
4
+ /** @deprecated import from connectToggleRefinement directly */
5
+ ToggleRefinementWidgetDescription, } from './connectToggleRefinement';
@@ -3,7 +3,7 @@ import type { IndexWidget } from '../../widgets/index/index';
3
3
  export declare function createInitArgs(instantSearchInstance: InstantSearch, parent: IndexWidget, uiState: UiState): {
4
4
  uiState: UiState;
5
5
  helper: import("algoliasearch-helper").AlgoliaSearchHelper;
6
- parent: IndexWidget<UiState>;
6
+ parent: IndexWidget;
7
7
  instantSearchInstance: InstantSearch<UiState, UiState>;
8
8
  state: import("algoliasearch-helper").SearchParameters;
9
9
  renderState: import("../../types").RenderState;
@@ -18,7 +18,7 @@ export declare function createInitArgs(instantSearchInstance: InstantSearch, par
18
18
  };
19
19
  export declare function createRenderArgs(instantSearchInstance: InstantSearch, parent: IndexWidget): {
20
20
  helper: import("algoliasearch-helper").AlgoliaSearchHelper;
21
- parent: IndexWidget<UiState>;
21
+ parent: IndexWidget;
22
22
  instantSearchInstance: InstantSearch<UiState, UiState>;
23
23
  results: import("algoliasearch-helper").SearchResults<any>;
24
24
  scopedResults: import("../../types").ScopedResult[];
@@ -1,2 +1,2 @@
1
- declare const _default: "4.56.2";
1
+ declare const _default: "4.56.4";
2
2
  export default _default;
package/es/lib/version.js CHANGED
@@ -1 +1 @@
1
- export default '4.56.2';
1
+ export default '4.56.4';
@@ -147,31 +147,41 @@ export function createInsightsMiddleware() {
147
147
  instantSearchInstance.scheduleSearch();
148
148
  }
149
149
  var setUserTokenToSearch = function setUserTokenToSearch(userToken) {
150
+ var immediate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
150
151
  if (!userToken) {
151
152
  return;
152
153
  }
153
154
  var existingToken = helper.state.userToken;
154
- helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread(_objectSpread({}, helper.state), {}, {
155
- userToken: userToken
156
- }));
157
- if (existingToken && existingToken !== userToken) {
158
- instantSearchInstance.scheduleSearch();
155
+ function applyToken() {
156
+ helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread(_objectSpread({}, helper.state), {}, {
157
+ userToken: userToken
158
+ }));
159
+ if (existingToken && existingToken !== userToken) {
160
+ instantSearchInstance.scheduleSearch();
161
+ }
162
+ }
163
+
164
+ // Delay the token application to the next render cycle
165
+ if (!immediate) {
166
+ setTimeout(applyToken, 0);
167
+ } else {
168
+ applyToken();
159
169
  }
160
170
  };
161
171
  var anonymousUserToken = getInsightsAnonymousUserTokenInternal();
162
172
  if (anonymousUserToken) {
163
173
  // When `aa('init', { ... })` is called, it creates an anonymous user token in cookie.
164
174
  // We can set it as userToken.
165
- setUserTokenToSearch(anonymousUserToken);
175
+ setUserTokenToSearch(anonymousUserToken, true);
166
176
  }
167
177
 
168
178
  // We consider the `userToken` coming from a `init` call to have a higher
169
179
  // importance than the one coming from the queue.
170
180
  if (userTokenBeforeInit) {
171
- setUserTokenToSearch(userTokenBeforeInit);
181
+ setUserTokenToSearch(userTokenBeforeInit, true);
172
182
  insightsClient('setUserToken', userTokenBeforeInit);
173
183
  } else if (queuedUserToken) {
174
- setUserTokenToSearch(queuedUserToken);
184
+ setUserTokenToSearch(queuedUserToken, true);
175
185
  insightsClient('setUserToken', queuedUserToken);
176
186
  }
177
187
 
@@ -44,7 +44,9 @@ export var createRouterMiddleware = function createRouterMiddleware() {
44
44
  subscribe: function subscribe() {
45
45
  instantSearchInstance._initialUiState = _objectSpread(_objectSpread({}, initialUiState), stateMapping.routeToState(router.read()));
46
46
  router.onUpdate(function (route) {
47
- instantSearchInstance.setUiState(stateMapping.routeToState(route));
47
+ if (instantSearchInstance.mainIndex.getWidgets().length > 0) {
48
+ instantSearchInstance.setUiState(stateMapping.routeToState(route));
49
+ }
48
50
  });
49
51
  },
50
52
  started: function started() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "instantsearch.js",
3
- "version": "4.56.2",
3
+ "version": "4.56.4",
4
4
  "description": "InstantSearch.js is a JavaScript library for building performant and instant search experiences with Algolia.",
5
5
  "homepage": "https://www.algolia.com/doc/guides/building-search-ui/what-is-instantsearch/js/",
6
6
  "types": "es/index.d.ts",
@@ -33,7 +33,7 @@
33
33
  "@types/google.maps": "^3.45.3",
34
34
  "@types/hogan.js": "^3.0.0",
35
35
  "@types/qs": "^6.5.3",
36
- "algoliasearch-helper": "^3.13.0",
36
+ "algoliasearch-helper": "^3.13.2",
37
37
  "hogan.js": "^3.0.2",
38
38
  "htm": "^3.0.0",
39
39
  "preact": "^10.10.0",
@@ -55,9 +55,9 @@
55
55
  "version": "./scripts/version/update-version.js"
56
56
  },
57
57
  "devDependencies": {
58
- "@instantsearch/mocks": "1.15.0",
59
- "@instantsearch/tests": "1.15.0",
60
- "@instantsearch/testutils": "1.4.0",
58
+ "@instantsearch/mocks": "1.17.0",
59
+ "@instantsearch/tests": "1.17.0",
60
+ "@instantsearch/testutils": "1.6.0",
61
61
  "@storybook/html": "5.3.9",
62
62
  "@types/scriptjs": "0.0.2",
63
63
  "algoliasearch": "4.14.3",
@@ -65,5 +65,5 @@
65
65
  "scriptjs": "2.5.9",
66
66
  "webpack": "4.41.5"
67
67
  },
68
- "gitHead": "aa19955aae2c79b93d5f952832d366e8abff9886"
68
+ "gitHead": "d441895874038286168b028c1a45193b1fce8eaf"
69
69
  }