@weaverse/hydrogen 1.0.64 → 1.1.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.
package/dist/index.d.mts CHANGED
@@ -15,6 +15,9 @@ declare let STORE_PAGES: {
15
15
  CART: string;
16
16
  CUSTOMER: string;
17
17
  SEARCH: string;
18
+ NOT_FOUND: string;
19
+ PASSWORD: string;
20
+ CUSTOM: string;
18
21
  };
19
22
 
20
23
  type TODO = any;
@@ -100,6 +103,7 @@ type WeaverseInternal = {
100
103
  pageAssignment: HydrogenPageAssignment;
101
104
  project: HydrogenProjectType;
102
105
  navigate: NavigateFunction;
106
+ revalidator: TODO;
103
107
  };
104
108
  type HydrogenComponentPresets = {
105
109
  type: string;
@@ -173,10 +177,8 @@ type NavigateOptions = {
173
177
  };
174
178
  type NavigateFunction = (to: To, options?: NavigateOptions) => void;
175
179
  interface WeaverseHydrogenRootProps {
176
- weaverseData: WeaverseLoaderData;
177
180
  components: HydrogenComponent[];
178
181
  themeSchema: HydrogenThemeSchema;
179
- navigate: NavigateFunction;
180
182
  }
181
183
  type HydrogenThemeInfo = {
182
184
  name: string;
package/dist/index.d.ts CHANGED
@@ -15,6 +15,9 @@ declare let STORE_PAGES: {
15
15
  CART: string;
16
16
  CUSTOMER: string;
17
17
  SEARCH: string;
18
+ NOT_FOUND: string;
19
+ PASSWORD: string;
20
+ CUSTOM: string;
18
21
  };
19
22
 
20
23
  type TODO = any;
@@ -100,6 +103,7 @@ type WeaverseInternal = {
100
103
  pageAssignment: HydrogenPageAssignment;
101
104
  project: HydrogenProjectType;
102
105
  navigate: NavigateFunction;
106
+ revalidator: TODO;
103
107
  };
104
108
  type HydrogenComponentPresets = {
105
109
  type: string;
@@ -173,10 +177,8 @@ type NavigateOptions = {
173
177
  };
174
178
  type NavigateFunction = (to: To, options?: NavigateOptions) => void;
175
179
  interface WeaverseHydrogenRootProps {
176
- weaverseData: WeaverseLoaderData;
177
180
  components: HydrogenComponent[];
178
181
  themeSchema: HydrogenThemeSchema;
179
- navigate: NavigateFunction;
180
182
  }
181
183
  type HydrogenThemeInfo = {
182
184
  name: string;
package/dist/index.js CHANGED
@@ -37,8 +37,8 @@ __export(src_exports, {
37
37
  weaverseLoader: () => weaverseLoader
38
38
  });
39
39
  module.exports = __toCommonJS(src_exports);
40
- var import_react5 = require("@weaverse/react");
41
- var import_react6 = __toESM(require("react"));
40
+ var import_react6 = require("@weaverse/react");
41
+ var import_react7 = __toESM(require("react"));
42
42
 
43
43
  // src/context.ts
44
44
  var import_react = require("@weaverse/react");
@@ -79,13 +79,18 @@ function createWeaverseInstance(weaverseData, components) {
79
79
  // src/hooks/use-studio.ts
80
80
  var import_react2 = require("@weaverse/react");
81
81
  var import_react3 = require("react");
82
- function useStudio(weaverse, themeSchema, navigate) {
82
+ var import_react4 = require("@remix-run/react");
83
+ function useStudio(weaverse, themeSchema) {
84
+ let revalidator = (0, import_react4.useRevalidator)();
85
+ let navigate = (0, import_react4.useNavigate)();
86
+ console.log("revalidator", revalidator);
83
87
  (0, import_react3.useEffect)(() => {
84
88
  let initialized = checkStudioInitialized(weaverse);
85
89
  if (import_react2.isIframe && weaverse.isDesignMode && !initialized) {
86
90
  window.__initializedWeaverseStudios[weaverse.pageId] = true;
87
91
  weaverse.internal.themeSchema = themeSchema;
88
92
  weaverse.internal.navigate = navigate;
93
+ weaverse.internal.revalidator = revalidator;
89
94
  let host = weaverse.weaverseHost;
90
95
  let version = weaverse.weaverseVersion || Date.now();
91
96
  (0, import_react2.loadScript)(`${host}/assets/studio/studio-bridge.js?v=${version}`).then(
@@ -111,9 +116,9 @@ function checkStudioInitialized(weaverseInit) {
111
116
  }
112
117
 
113
118
  // src/hooks/use-theme-setting.ts
114
- var import_react4 = require("@weaverse/react");
119
+ var import_react5 = require("@weaverse/react");
115
120
  function useThemeSettings() {
116
- let weaverse = (0, import_react4.useWeaverse)();
121
+ let weaverse = (0, import_react5.useWeaverse)();
117
122
  let settings = weaverse?.internal?.project?.config?.theme;
118
123
  let updateSettings = (newSettings) => {
119
124
  weaverse.internal.project.config.theme = Object.assign(
@@ -258,12 +263,43 @@ async function weaverseLoader(args, components, loaderConfigs) {
258
263
 
259
264
  // src/index.tsx
260
265
  __reExport(src_exports, require("@weaverse/react"), module.exports);
266
+ var import_react8 = require("@remix-run/react");
261
267
  function WeaverseHydrogenRoot(props) {
262
- let { components, weaverseData, themeSchema, navigate } = props;
263
- let weaverse = createWeaverseInstance(weaverseData, components);
264
- useStudio(weaverse, themeSchema, navigate);
265
- return /* @__PURE__ */ import_react6.default.createElement(import_react5.WeaverseRoot, { context: weaverse });
268
+ let loaderData = (0, import_react8.useLoaderData)();
269
+ console.log("loaderData111", loaderData);
270
+ let weaverseDataFromLoader = loaderData?.weaverseData;
271
+ let { components, themeSchema } = props;
272
+ if (weaverseDataFromLoader) {
273
+ if (weaverseDataFromLoader instanceof Promise) {
274
+ return /* @__PURE__ */ import_react7.default.createElement(import_react7.Suspense, null, /* @__PURE__ */ import_react7.default.createElement(import_react8.Await, { resolve: weaverseDataFromLoader }, (resolvedData) => {
275
+ console.log("resolvedData", resolvedData);
276
+ return /* @__PURE__ */ import_react7.default.createElement(
277
+ RenderWeaverseRoot,
278
+ {
279
+ components,
280
+ themeSchema,
281
+ weaverseData: resolvedData
282
+ }
283
+ );
284
+ }));
285
+ }
286
+ return /* @__PURE__ */ import_react7.default.createElement(
287
+ RenderWeaverseRoot,
288
+ {
289
+ components,
290
+ themeSchema,
291
+ weaverseData: weaverseDataFromLoader
292
+ }
293
+ );
294
+ }
295
+ return /* @__PURE__ */ import_react7.default.createElement("div", { style: { display: "none" } }, "No weaverseData return from Remix loader!");
266
296
  }
297
+ var RenderWeaverseRoot = (props) => {
298
+ let { components, themeSchema, weaverseData } = props;
299
+ let weaverse = createWeaverseInstance(weaverseData, components);
300
+ useStudio(weaverse, themeSchema);
301
+ return /* @__PURE__ */ import_react7.default.createElement(import_react6.WeaverseRoot, { context: weaverse });
302
+ };
267
303
  // Annotate the CommonJS export names for ESM import in node:
268
304
  0 && (module.exports = {
269
305
  WeaverseHydrogenRoot,
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  // src/index.tsx
2
2
  import { WeaverseRoot } from "@weaverse/react";
3
- import React from "react";
3
+ import React, { Suspense } from "react";
4
4
 
5
5
  // src/context.ts
6
6
  import { Weaverse, isBrowser } from "@weaverse/react";
@@ -41,13 +41,18 @@ function createWeaverseInstance(weaverseData, components) {
41
41
  // src/hooks/use-studio.ts
42
42
  import { isIframe, loadScript } from "@weaverse/react";
43
43
  import { useEffect } from "react";
44
- function useStudio(weaverse, themeSchema, navigate) {
44
+ import { useRevalidator, useNavigate } from "@remix-run/react";
45
+ function useStudio(weaverse, themeSchema) {
46
+ let revalidator = useRevalidator();
47
+ let navigate = useNavigate();
48
+ console.log("revalidator", revalidator);
45
49
  useEffect(() => {
46
50
  let initialized = checkStudioInitialized(weaverse);
47
51
  if (isIframe && weaverse.isDesignMode && !initialized) {
48
52
  window.__initializedWeaverseStudios[weaverse.pageId] = true;
49
53
  weaverse.internal.themeSchema = themeSchema;
50
54
  weaverse.internal.navigate = navigate;
55
+ weaverse.internal.revalidator = revalidator;
51
56
  let host = weaverse.weaverseHost;
52
57
  let version = weaverse.weaverseVersion || Date.now();
53
58
  loadScript(`${host}/assets/studio/studio-bridge.js?v=${version}`).then(
@@ -220,12 +225,43 @@ async function weaverseLoader(args, components, loaderConfigs) {
220
225
 
221
226
  // src/index.tsx
222
227
  export * from "@weaverse/react";
228
+ import { Await, useLoaderData } from "@remix-run/react";
223
229
  function WeaverseHydrogenRoot(props) {
224
- let { components, weaverseData, themeSchema, navigate } = props;
230
+ let loaderData = useLoaderData();
231
+ console.log("loaderData111", loaderData);
232
+ let weaverseDataFromLoader = loaderData?.weaverseData;
233
+ let { components, themeSchema } = props;
234
+ if (weaverseDataFromLoader) {
235
+ if (weaverseDataFromLoader instanceof Promise) {
236
+ return /* @__PURE__ */ React.createElement(Suspense, null, /* @__PURE__ */ React.createElement(Await, { resolve: weaverseDataFromLoader }, (resolvedData) => {
237
+ console.log("resolvedData", resolvedData);
238
+ return /* @__PURE__ */ React.createElement(
239
+ RenderWeaverseRoot,
240
+ {
241
+ components,
242
+ themeSchema,
243
+ weaverseData: resolvedData
244
+ }
245
+ );
246
+ }));
247
+ }
248
+ return /* @__PURE__ */ React.createElement(
249
+ RenderWeaverseRoot,
250
+ {
251
+ components,
252
+ themeSchema,
253
+ weaverseData: weaverseDataFromLoader
254
+ }
255
+ );
256
+ }
257
+ return /* @__PURE__ */ React.createElement("div", { style: { display: "none" } }, "No weaverseData return from Remix loader!");
258
+ }
259
+ var RenderWeaverseRoot = (props) => {
260
+ let { components, themeSchema, weaverseData } = props;
225
261
  let weaverse = createWeaverseInstance(weaverseData, components);
226
- useStudio(weaverse, themeSchema, navigate);
262
+ useStudio(weaverse, themeSchema);
227
263
  return /* @__PURE__ */ React.createElement(WeaverseRoot, { context: weaverse });
228
- }
264
+ };
229
265
  export {
230
266
  WeaverseHydrogenRoot,
231
267
  fetchWithServerCache,
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.64",
2
+ "version": "1.1.0",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -15,8 +15,8 @@
15
15
  },
16
16
  "scripts": {
17
17
  "start": "npm run dev",
18
- "dev": "tsup src/index.tsx --format esm,cjs --dts --outDir dist --watch --external @weaverse/react,@shopify/hydrogen",
19
- "build": "tsup src/index.tsx --format esm,cjs --dts --outDir dist --external @weaverse/react,@shopify/hydrogen",
18
+ "dev": "tsup src/index.tsx --format esm,cjs --dts --outDir dist --watch --external @remix-run/react,@shopify/hydrogen",
19
+ "build": "tsup src/index.tsx --format esm,cjs --dts --outDir dist --external @remix-run/react,@shopify/hydrogen",
20
20
  "clean": "rimraf dist",
21
21
  "prepublish": "npm run build"
22
22
  },
@@ -32,8 +32,9 @@
32
32
  "name": "@weaverse/hydrogen",
33
33
  "author": "Weaverse Team",
34
34
  "dependencies": {
35
+ "@remix-run/react": "1.19.1",
35
36
  "@shopify/hydrogen": "2023.7.1",
36
- "@weaverse/react": "1.0.64"
37
+ "@weaverse/react": "1.1.0"
37
38
  },
38
39
  "devDependencies": {
39
40
  "@shopify/remix-oxygen": "^1.1.2"