@weaverse/hydrogen 1.0.18 → 1.0.19

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
@@ -1,4 +1,4 @@
1
- import { WeaverseType, WeaverseElement, Weaverse } from '@weaverse/core';
1
+ import { Weaverse, WeaverseType, WeaverseElement } from '@weaverse/core';
2
2
 
3
3
  type WHFetchConfigs = {
4
4
  weaverseHost?: string;
@@ -6,6 +6,7 @@ type WHFetchConfigs = {
6
6
  url: URL;
7
7
  };
8
8
  declare let fetchPageData: ({ weaverseHost, projectId, url, }: WHFetchConfigs) => Promise<any>;
9
+ declare let useStudio: (weaverseCore: Weaverse) => void;
9
10
 
10
11
  declare let createHydrogenRootContext: (configs: WeaverseType, elements?: {
11
12
  [key: string]: WeaverseElement;
@@ -13,4 +14,4 @@ declare let createHydrogenRootContext: (configs: WeaverseType, elements?: {
13
14
  declare let createWeaverseHydrogenContext: (configs: WeaverseType) => Weaverse;
14
15
  declare let WeaverseHydrogenRoot: () => JSX.Element;
15
16
 
16
- export { WHFetchConfigs, WeaverseHydrogenRoot, createHydrogenRootContext, createWeaverseHydrogenContext, fetchPageData };
17
+ export { WHFetchConfigs, WeaverseHydrogenRoot, createHydrogenRootContext, createWeaverseHydrogenContext, fetchPageData, useStudio };
package/dist/index.js CHANGED
@@ -33,7 +33,8 @@ __export(src_exports, {
33
33
  WeaverseHydrogenRoot: () => WeaverseHydrogenRoot,
34
34
  createHydrogenRootContext: () => createHydrogenRootContext,
35
35
  createWeaverseHydrogenContext: () => createWeaverseHydrogenContext,
36
- fetchPageData: () => fetchPageData
36
+ fetchPageData: () => fetchPageData,
37
+ useStudio: () => useStudio
37
38
  });
38
39
  module.exports = __toCommonJS(src_exports);
39
40
 
@@ -42,10 +43,11 @@ var elements = {};
42
43
  var elements_default = elements;
43
44
 
44
45
  // src/index.tsx
45
- var import_core = require("@weaverse/core");
46
- var import_react = __toESM(require("react"));
46
+ var import_core2 = require("@weaverse/core");
47
47
 
48
48
  // src/utils.ts
49
+ var import_core = require("@weaverse/core");
50
+ var import_react = require("react");
49
51
  var fetchPageData = async ({
50
52
  weaverseHost = "https://studio.weaverse.io",
51
53
  projectId,
@@ -66,10 +68,25 @@ var fetchPageData = async ({
66
68
  });
67
69
  return { ...data, weaverseHost, isDesignMode };
68
70
  };
71
+ var useStudio = (weaverseCore) => {
72
+ (0, import_react.useEffect)(() => {
73
+ if (weaverseCore.isDesignMode && import_core.isIframe && !window.weaverseStudioInitialized) {
74
+ (0, import_core.loadScript)(
75
+ `${weaverseCore.weaverseHost}/assets/studio/studio-bridge.js`
76
+ ).then(() => {
77
+ window?.createWeaverseStudioBridge(weaverseCore);
78
+ setTimeout(() => {
79
+ weaverseCore.triggerUpdate();
80
+ }, 2e3);
81
+ });
82
+ }
83
+ }, []);
84
+ };
69
85
 
70
86
  // src/index.tsx
87
+ var import_react2 = __toESM(require("react"));
71
88
  var createHydrogenRootContext = (configs, elements2 = {}) => {
72
- let rootContext = new import_core.Weaverse(configs);
89
+ let rootContext = new import_core2.Weaverse(configs);
73
90
  Object.keys(elements2).forEach((key) => {
74
91
  rootContext.registerElement(elements2[key]);
75
92
  });
@@ -83,12 +100,18 @@ var createWeaverseHydrogenContext = (configs) => {
83
100
  return context;
84
101
  };
85
102
  var WeaverseHydrogenRoot = () => {
86
- return /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement("div", null, "hello world from weaverse hydrogen"));
103
+ let weaverse = createHydrogenRootContext({
104
+ isDesignMode: true,
105
+ platformType: "shopify-hydrogen"
106
+ });
107
+ useStudio(weaverse);
108
+ return /* @__PURE__ */ import_react2.default.createElement("div", null, /* @__PURE__ */ import_react2.default.createElement("div", { id: "weaverse-test" }, "hello world from weaverse hydrogen"));
87
109
  };
88
110
  // Annotate the CommonJS export names for ESM import in node:
89
111
  0 && (module.exports = {
90
112
  WeaverseHydrogenRoot,
91
113
  createHydrogenRootContext,
92
114
  createWeaverseHydrogenContext,
93
- fetchPageData
115
+ fetchPageData,
116
+ useStudio
94
117
  });
package/dist/index.mjs CHANGED
@@ -4,9 +4,10 @@ var elements_default = elements;
4
4
 
5
5
  // src/index.tsx
6
6
  import { Weaverse } from "@weaverse/core";
7
- import React from "react";
8
7
 
9
8
  // src/utils.ts
9
+ import { isIframe, loadScript } from "@weaverse/core";
10
+ import { useEffect } from "react";
10
11
  var fetchPageData = async ({
11
12
  weaverseHost = "https://studio.weaverse.io",
12
13
  projectId,
@@ -27,8 +28,23 @@ var fetchPageData = async ({
27
28
  });
28
29
  return { ...data, weaverseHost, isDesignMode };
29
30
  };
31
+ var useStudio = (weaverseCore) => {
32
+ useEffect(() => {
33
+ if (weaverseCore.isDesignMode && isIframe && !window.weaverseStudioInitialized) {
34
+ loadScript(
35
+ `${weaverseCore.weaverseHost}/assets/studio/studio-bridge.js`
36
+ ).then(() => {
37
+ window?.createWeaverseStudioBridge(weaverseCore);
38
+ setTimeout(() => {
39
+ weaverseCore.triggerUpdate();
40
+ }, 2e3);
41
+ });
42
+ }
43
+ }, []);
44
+ };
30
45
 
31
46
  // src/index.tsx
47
+ import React from "react";
32
48
  var createHydrogenRootContext = (configs, elements2 = {}) => {
33
49
  let rootContext = new Weaverse(configs);
34
50
  Object.keys(elements2).forEach((key) => {
@@ -44,11 +60,17 @@ var createWeaverseHydrogenContext = (configs) => {
44
60
  return context;
45
61
  };
46
62
  var WeaverseHydrogenRoot = () => {
47
- return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("div", null, "hello world from weaverse hydrogen"));
63
+ let weaverse = createHydrogenRootContext({
64
+ isDesignMode: true,
65
+ platformType: "shopify-hydrogen"
66
+ });
67
+ useStudio(weaverse);
68
+ return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("div", { id: "weaverse-test" }, "hello world from weaverse hydrogen"));
48
69
  };
49
70
  export {
50
71
  WeaverseHydrogenRoot,
51
72
  createHydrogenRootContext,
52
73
  createWeaverseHydrogenContext,
53
- fetchPageData
74
+ fetchPageData,
75
+ useStudio
54
76
  };
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.18",
2
+ "version": "1.0.19",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -15,7 +15,7 @@
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 react --sourcemap",
18
+ "dev": "tsup src/index.tsx --format esm,cjs --dts --outDir dist --watch --external react",
19
19
  "build": "tsup src/index.tsx --format esm,cjs --dts --outDir dist --external react",
20
20
  "clean": "rimraf dist",
21
21
  "prepublish": "npm run build"
@@ -32,6 +32,7 @@
32
32
  "name": "@weaverse/hydrogen",
33
33
  "author": "Weaverse Team",
34
34
  "dependencies": {
35
- "@weaverse/core": "1.0.18"
35
+ "@weaverse/core": "1.0.19",
36
+ "@shopify/hydrogen": "2023.1.6"
36
37
  }
37
38
  }