Skip to content

Commit 186ff9b

Browse files
feat(insights): allow to pass init params (#1230)
* feat(insights): allow to pass init params * bundlesize * add link to param
1 parent 7f5ba08 commit 186ff9b

File tree

4 files changed

+38
-3
lines changed

4 files changed

+38
-3
lines changed

bundlesize.config.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66
},
77
{
88
"path": "packages/autocomplete-js/dist/umd/index.production.js",
9-
"maxSize": "21 kB"
9+
"maxSize": "21.25 kB"
1010
},
1111
{
1212
"path": "packages/autocomplete-preset-algolia/dist/umd/index.production.js",
1313
"maxSize": "2.5 kB"
1414
},
1515
{
1616
"path": "packages/autocomplete-plugin-algolia-insights/dist/umd/index.production.js",
17-
"maxSize": "3.25 kB"
17+
"maxSize": "3.5 kB"
1818
},
1919
{
2020
"path": "packages/autocomplete-plugin-redirect-url/dist/umd/index.production.js",

packages/autocomplete-plugin-algolia-insights/src/__tests__/createAlgoliaInsightsPlugin.test.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,28 @@ describe('createAlgoliaInsightsPlugin', () => {
228228
]);
229229
});
230230

231+
test('does not call `init` if `insightsInitParams` not passed', () => {
232+
const insightsClient = jest.fn();
233+
createAlgoliaInsightsPlugin({
234+
insightsClient,
235+
});
236+
237+
expect(insightsClient).not.toHaveBeenCalled();
238+
});
239+
240+
test('initializes insights with `insightsInitParams` if passed', () => {
241+
const insightsClient = jest.fn();
242+
createAlgoliaInsightsPlugin({
243+
insightsClient,
244+
insightsInitParams: { userToken: 'user' },
245+
});
246+
247+
expect(insightsClient).toHaveBeenCalledWith('init', {
248+
partial: true,
249+
userToken: 'user',
250+
});
251+
});
252+
231253
describe('automatic pulling', () => {
232254
const consoleError = jest
233255
.spyOn(console, 'error')

packages/autocomplete-plugin-algolia-insights/src/createAlgoliaInsightsPlugin.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020
AlgoliaInsightsHit,
2121
AutocompleteInsightsApi,
2222
InsightsClient,
23+
InsightsMethodMap,
2324
OnActiveParams,
2425
OnItemsChangeParams,
2526
OnSelectParams,
@@ -57,6 +58,12 @@ export type CreateAlgoliaInsightsPluginParams = {
5758
* @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-insightsclient
5859
*/
5960
insightsClient?: InsightsClient;
61+
/**
62+
* Insights parameters to forward to the Insights client’s init method.
63+
*
64+
* @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-insightsinitparams
65+
*/
66+
insightsInitParams?: Partial<InsightsMethodMap['init'][0]>;
6067
/**
6168
* Hook to send an Insights event when the items change.
6269
*
@@ -94,6 +101,7 @@ export function createAlgoliaInsightsPlugin(
94101
): AutocompletePlugin<any, undefined> {
95102
const {
96103
insightsClient: providedInsightsClient,
104+
insightsInitParams,
97105
onItemsChange,
98106
onSelect: onSelectEvent,
99107
onActive: onActiveEvent,
@@ -137,6 +145,10 @@ export function createAlgoliaInsightsPlugin(
137145
return {};
138146
}
139147

148+
if (insightsInitParams) {
149+
insightsClient('init', { partial: true, ...insightsInitParams });
150+
}
151+
140152
const insights = createSearchInsightsApi(insightsClient);
141153
const previousItems = createRef<AlgoliaInsightsHit[]>([]);
142154

packages/autocomplete-plugin-algolia-insights/src/types/InsightsClient.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type {
2-
InsightsMethodMap,
2+
InsightsMethodMap as _InsightsMethodMap,
33
InsightsClient as _InsightsClient,
44
} from 'search-insights';
55

@@ -11,6 +11,7 @@ export type {
1111
OnUserTokenChange as InsightsOnUserTokenChange,
1212
} from 'search-insights';
1313

14+
export type InsightsMethodMap = _InsightsMethodMap;
1415
export type InsightsClientMethod = keyof InsightsMethodMap;
1516

1617
export type InsightsClientPayload = {

0 commit comments

Comments
 (0)