@coveo/headless-react 2.5.5-pre.b5ce30378e → 2.5.5-pre.cefa2bd755

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,4 +1,4 @@
1
- import type { Controller, ControllerDefinitionsMap, EngineStaticState, InferControllerStaticStateMapFromDefinitionsWithSolutionType, NavigatorContext, SolutionType } from '@coveo/headless/ssr-commerce';
1
+ import { type Controller, type ControllerDefinitionsMap, type EngineStaticState, type InferControllerStaticStateMapFromDefinitionsWithSolutionType, type NavigatorContext, type SolutionType } from '@coveo/headless/ssr-commerce';
2
2
  import { type PropsWithChildren } from 'react';
3
3
  import type { ReactCommerceEngineDefinition } from './commerce-engine.js';
4
4
  type UnknownAction = {
@@ -1,6 +1,10 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Kind, } from '@coveo/headless/ssr-commerce';
3
4
  import { useEffect, useState } from 'react';
5
+ function getController(controllers, key) {
6
+ return controllers[key];
7
+ }
4
8
  /**
5
9
  * Providers take care of displaying your page with the static
6
10
  * state, and then hydrating the state and displaying the page
@@ -15,11 +19,52 @@ export function buildProviderWithDefinition(definition) {
15
19
  const [hydratedState, setHydratedState] = useState(undefined);
16
20
  definition.setNavigatorContextProvider(() => navigatorContext);
17
21
  useEffect(() => {
22
+ const { searchActions, controllers } = staticState;
23
+ const hydrateArguments = {};
24
+ for (const [key, controller] of Object.entries(controllers)) {
25
+ const typedController = controller;
26
+ switch (typedController._kind) {
27
+ case Kind.Cart: {
28
+ const cart = getController(controllers, key);
29
+ hydrateArguments[key] = {
30
+ initialState: {
31
+ items: cart.state.items,
32
+ },
33
+ };
34
+ break;
35
+ }
36
+ case Kind.Context: {
37
+ const context = getController(controllers, key);
38
+ hydrateArguments[key] = context.state;
39
+ break;
40
+ }
41
+ case Kind.ParameterManager: {
42
+ const parameterManager = getController(controllers, key);
43
+ hydrateArguments[key] = {
44
+ initialState: {
45
+ parameters: parameterManager.state.parameters,
46
+ },
47
+ };
48
+ break;
49
+ }
50
+ case Kind.Recommendations: {
51
+ const recommendations = getController(controllers, key);
52
+ hydrateArguments[key] = {
53
+ productId: recommendations.state.productId,
54
+ };
55
+ break;
56
+ }
57
+ }
58
+ }
59
+ const args = {
60
+ searchActions,
61
+ };
62
+ if (hydrateArguments) {
63
+ args.controllers = hydrateArguments;
64
+ }
18
65
  // @ts-expect-error Casting to loose definition since we don't need the inferred controllers here
19
66
  const looseDefinition = definition;
20
- looseDefinition
21
- .hydrateStaticState(staticState)
22
- .then(({ engine, controllers }) => {
67
+ looseDefinition.hydrateStaticState(args).then(({ engine, controllers }) => {
23
68
  setHydratedState({
24
69
  engine,
25
70
  controllers: controllers,
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/ssr-commerce/providers.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAYb,OAAO,EAAyB,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAKlE;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CAGzC,UAAsE;IACtE,OAAO,SAAS,eAAe,CAAC,EAC9B,WAAW,EACX,gBAAgB,EAChB,QAAQ,GAUR;QACA,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAEhD,SAAS,CAAC,CAAC;QACb,UAAU,CAAC,2BAA2B,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC;QAE/D,SAAS,CAAC,GAAG,EAAE;YACb,iGAAiG;YACjG,MAAM,eAAe,GAAG,UAGvB,CAAC;YACF,eAAe;iBACZ,kBAAkB,CAAC,WAAW,CAAC;iBAC/B,IAAI,CAAC,CAAC,EAAC,MAAM,EAAE,WAAW,EAAC,EAAE,EAAE;gBAC9B,gBAAgB,CAAC;oBACf,MAAM;oBACN,WAAW,EAAE,WAGZ;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;QAE9B,OAAO,CACL,KAAC,UAAU,CAAC,aAAa,IACvB,MAAM,EAAE,aAAa,EAAE,MAAM,EAC7B,WAAW,EAAE,aAAa,EAAE,WAAW,IAAI,WAAW,CAAC,WAAW,YAEjE,QAAQ,GACgB,CAC5B,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/ssr-commerce/providers.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAWL,IAAI,GAML,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAyB,SAAS,EAAE,QAAQ,EAAC,MAAM,OAAO,CAAC;AAMlE,SAAS,aAAa,CACpB,WAGC,EACD,GAAW;IAEX,OAAO,WAAW,CAAC,GAAG,CAAM,CAAC;AAC/B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CAGzC,UAAsE;IACtE,OAAO,SAAS,eAAe,CAAC,EAC9B,WAAW,EACX,gBAAgB,EAChB,QAAQ,GAUR;QACA,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAEhD,SAAS,CAAC,CAAC;QACb,UAAU,CAAC,2BAA2B,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC;QAE/D,SAAS,CAAC,GAAG,EAAE;YACb,MAAM,EAAC,aAAa,EAAE,WAAW,EAAC,GAAG,WAAW,CAAC;YACjD,MAAM,gBAAgB,GAAuB,EAAE,CAAC;YAEhD,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC5D,MAAM,eAAe,GAAG,UAAgC,CAAC;gBAEzD,QAAQ,eAAe,CAAC,KAAK,EAAE,CAAC;oBAC9B,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;wBACf,MAAM,IAAI,GAAG,aAAa,CAAO,WAAW,EAAE,GAAG,CAAC,CAAC;wBACnD,gBAAgB,CAAC,GAAG,CAAC,GAAG;4BACtB,YAAY,EAAE;gCACZ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;6BACxB;yBACF,CAAC;wBACF,MAAM;oBACR,CAAC;oBACD,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;wBAClB,MAAM,OAAO,GAAG,aAAa,CAAU,WAAW,EAAE,GAAG,CAAC,CAAC;wBACzD,gBAAgB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;wBACtC,MAAM;oBACR,CAAC;oBAED,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;wBAC3B,MAAM,gBAAgB,GAAG,aAAa,CAEpC,WAAW,EAAE,GAAG,CAAC,CAAC;wBACpB,gBAAgB,CAAC,GAAG,CAAC,GAAG;4BACtB,YAAY,EAAE;gCACZ,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAC,UAAU;6BAC9C;yBACF,CAAC;wBACF,MAAM;oBACR,CAAC;oBACD,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;wBAC1B,MAAM,eAAe,GAAG,aAAa,CACnC,WAAW,EACX,GAAG,CACJ,CAAC;wBAEF,gBAAgB,CAAC,GAAG,CAAC,GAAG;4BACtB,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,SAAS;yBAC3C,CAAC;wBACF,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,IAAI,GACa;gBACrB,aAAa;aACd,CAAC;YAEF,IAAI,gBAAgB,EAAE,CAAC;gBACrB,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC;YACtC,CAAC;YAED,iGAAiG;YACjG,MAAM,eAAe,GAAG,UAGvB,CAAC;YACF,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,MAAM,EAAE,WAAW,EAAC,EAAE,EAAE;gBACtE,gBAAgB,CAAC;oBACf,MAAM;oBACN,WAAW,EAAE,WAGZ;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;QAE9B,OAAO,CACL,KAAC,UAAU,CAAC,aAAa,IACvB,MAAM,EAAE,aAAa,EAAE,MAAM,EAC7B,WAAW,EAAE,aAAa,EAAE,WAAW,IAAI,WAAW,CAAC,WAAW,YAEjE,QAAQ,GACgB,CAC5B,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coveo/headless-react",
3
- "version": "2.5.5-pre.b5ce30378e",
3
+ "version": "2.5.5-pre.cefa2bd755",
4
4
  "description": "React utilities for SSR (Server Side Rendering) with headless",
5
5
  "homepage": "https://docs.coveo.com/en/headless/latest/",
6
6
  "repository": {
@@ -41,7 +41,7 @@
41
41
  "serve:typedoc": "live-server ./docs"
42
42
  },
43
43
  "dependencies": {
44
- "@coveo/headless": "3.28.5-pre.b5ce30378e"
44
+ "@coveo/headless": "3.28.5-pre.cefa2bd755"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@testing-library/react": "16.3.0",