@weaverse/hydrogen 1.0.28 → 1.0.30

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/dist/index.d.ts CHANGED
@@ -49,6 +49,5 @@ declare let WeaverseHydrogenRoot: React.MemoExoticComponent<({ components, data,
49
49
  weaverseData: any;
50
50
  };
51
51
  }) => JSX.Element>;
52
- declare function useIsHydrated(): boolean;
53
52
 
54
- export { WeaverseComponentLoaderArgs, WeaverseHydrogenRoot, fetchWithServerCache, hashKey, useIsHydrated, useStudio, weaverseLoader };
53
+ export { WeaverseComponentLoaderArgs, WeaverseHydrogenRoot, fetchWithServerCache, hashKey, useStudio, weaverseLoader };
package/dist/index.js CHANGED
@@ -33,7 +33,6 @@ __export(src_exports, {
33
33
  WeaverseHydrogenRoot: () => WeaverseHydrogenRoot,
34
34
  fetchWithServerCache: () => fetchWithServerCache,
35
35
  hashKey: () => hashKey,
36
- useIsHydrated: () => useIsHydrated,
37
36
  useStudio: () => useStudio,
38
37
  weaverseLoader: () => weaverseLoader
39
38
  });
@@ -69,16 +68,26 @@ var import_react4 = require("@weaverse/react");
69
68
 
70
69
  // src/context.ts
71
70
  var import_react2 = require("@weaverse/react");
71
+ var createCachedWeaverseContext = (init) => {
72
+ if (import_react2.isBrowser && init.pageId) {
73
+ window.__weaverses = window.__weaverses || {};
74
+ if (!window.__weaverses[init.pageId]) {
75
+ window.__weaverses[init.pageId] = (0, import_react2.createRootContext)(init);
76
+ }
77
+ return window.__weaverses[init.pageId];
78
+ }
79
+ return (0, import_react2.createRootContext)(init);
80
+ };
72
81
  var createWeaverseHydrogenContext = ({
73
82
  weaverseData: { pageData, config } = {
74
83
  pageData: {},
75
84
  config: {}
76
85
  }
77
86
  }, components) => {
78
- let weaverse = (0, import_react2.createRootContext)({
87
+ let weaverse = createCachedWeaverseContext({
79
88
  ...config,
80
89
  data: pageData,
81
- pageId: pageData?.pageId,
90
+ pageId: pageData?.id,
82
91
  isDesignMode: true,
83
92
  platformType: "shopify-hydrogen"
84
93
  });
@@ -219,29 +228,14 @@ var WeaverseHydrogenRoot = (0, import_react3.memo)(
219
228
  if (!weaverse?.data) {
220
229
  return /* @__PURE__ */ import_react3.default.createElement("div", null, "404");
221
230
  }
222
- return /* @__PURE__ */ import_react3.default.createElement(import_react3.default.Fragment, null, /* @__PURE__ */ import_react3.default.createElement(import_react4.WeaverseRoot, { context: weaverse }), /* @__PURE__ */ import_react3.default.createElement(RenderStitchesStyles, { weaverse }));
231
+ return /* @__PURE__ */ import_react3.default.createElement(import_react4.WeaverseRoot, { context: weaverse });
223
232
  }
224
233
  );
225
- function useIsHydrated() {
226
- const [isHydrated, setHydrated] = (0, import_react3.useState)(false);
227
- (0, import_react3.useEffect)(() => {
228
- setHydrated(true);
229
- }, []);
230
- return isHydrated;
231
- }
232
- var RenderStitchesStyles = ({ weaverse }) => {
233
- let h = useIsHydrated();
234
- (0, import_react3.useEffect)(() => {
235
- h && !weaverse.isDesignMode && weaverse.triggerUpdate();
236
- }, [h]);
237
- return null;
238
- };
239
234
  // Annotate the CommonJS export names for ESM import in node:
240
235
  0 && (module.exports = {
241
236
  WeaverseHydrogenRoot,
242
237
  fetchWithServerCache,
243
238
  hashKey,
244
- useIsHydrated,
245
239
  useStudio,
246
240
  weaverseLoader
247
241
  });
package/dist/index.mjs CHANGED
@@ -23,21 +23,31 @@ var useStudio = (weaverseCore) => {
23
23
  };
24
24
 
25
25
  // src/index.tsx
26
- import React, { memo, useEffect as useEffect2, useState } from "react";
26
+ import React, { memo } from "react";
27
27
  import { WeaverseRoot } from "@weaverse/react";
28
28
 
29
29
  // src/context.ts
30
- import { createRootContext } from "@weaverse/react";
30
+ import { createRootContext, isBrowser } from "@weaverse/react";
31
+ var createCachedWeaverseContext = (init) => {
32
+ if (isBrowser && init.pageId) {
33
+ window.__weaverses = window.__weaverses || {};
34
+ if (!window.__weaverses[init.pageId]) {
35
+ window.__weaverses[init.pageId] = createRootContext(init);
36
+ }
37
+ return window.__weaverses[init.pageId];
38
+ }
39
+ return createRootContext(init);
40
+ };
31
41
  var createWeaverseHydrogenContext = ({
32
42
  weaverseData: { pageData, config } = {
33
43
  pageData: {},
34
44
  config: {}
35
45
  }
36
46
  }, components) => {
37
- let weaverse = createRootContext({
47
+ let weaverse = createCachedWeaverseContext({
38
48
  ...config,
39
49
  data: pageData,
40
- pageId: pageData?.pageId,
50
+ pageId: pageData?.id,
41
51
  isDesignMode: true,
42
52
  platformType: "shopify-hydrogen"
43
53
  });
@@ -181,28 +191,13 @@ var WeaverseHydrogenRoot = memo(
181
191
  if (!weaverse?.data) {
182
192
  return /* @__PURE__ */ React.createElement("div", null, "404");
183
193
  }
184
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(WeaverseRoot, { context: weaverse }), /* @__PURE__ */ React.createElement(RenderStitchesStyles, { weaverse }));
194
+ return /* @__PURE__ */ React.createElement(WeaverseRoot, { context: weaverse });
185
195
  }
186
196
  );
187
- function useIsHydrated() {
188
- const [isHydrated, setHydrated] = useState(false);
189
- useEffect2(() => {
190
- setHydrated(true);
191
- }, []);
192
- return isHydrated;
193
- }
194
- var RenderStitchesStyles = ({ weaverse }) => {
195
- let h = useIsHydrated();
196
- useEffect2(() => {
197
- h && !weaverse.isDesignMode && weaverse.triggerUpdate();
198
- }, [h]);
199
- return null;
200
- };
201
197
  export {
202
198
  WeaverseHydrogenRoot,
203
199
  fetchWithServerCache,
204
200
  hashKey,
205
- useIsHydrated,
206
201
  useStudio,
207
202
  weaverseLoader
208
203
  };
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.28",
2
+ "version": "1.0.30",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -33,8 +33,8 @@
33
33
  "author": "Weaverse Team",
34
34
  "dependencies": {
35
35
  "@shopify/hydrogen": "2023.4.0",
36
- "@weaverse/core": "1.0.28",
37
- "@weaverse/react": "1.0.28"
36
+ "@weaverse/core": "1.0.30",
37
+ "@weaverse/react": "1.0.30"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@shopify/remix-oxygen": "^1.0.5"