@weaverse/hydrogen 1.0.17 → 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,6 +1,4 @@
1
- import * as _weaverse_core from '@weaverse/core';
2
- import { WeaverseRootPropsType, WeaverseType } from '@weaverse/react';
3
- export * from '@weaverse/react';
1
+ import { Weaverse, WeaverseType, WeaverseElement } from '@weaverse/core';
4
2
 
5
3
  type WHFetchConfigs = {
6
4
  weaverseHost?: string;
@@ -8,11 +6,12 @@ type WHFetchConfigs = {
8
6
  url: URL;
9
7
  };
10
8
  declare let fetchPageData: ({ weaverseHost, projectId, url, }: WHFetchConfigs) => Promise<any>;
9
+ declare let useStudio: (weaverseCore: Weaverse) => void;
11
10
 
12
- type WeaverseRootProps = WeaverseRootPropsType & {
13
- data?: any;
14
- };
15
- declare let createWeaverseHydrogenContext: (configs: WeaverseType) => _weaverse_core.Weaverse;
16
- declare let WeaverseHydrogenRoot: ({ context }: WeaverseRootProps) => JSX.Element;
11
+ declare let createHydrogenRootContext: (configs: WeaverseType, elements?: {
12
+ [key: string]: WeaverseElement;
13
+ }) => Weaverse;
14
+ declare let createWeaverseHydrogenContext: (configs: WeaverseType) => Weaverse;
15
+ declare let WeaverseHydrogenRoot: () => JSX.Element;
17
16
 
18
- export { WHFetchConfigs, WeaverseHydrogenRoot, WeaverseRootProps, createWeaverseHydrogenContext, fetchPageData };
17
+ export { WHFetchConfigs, WeaverseHydrogenRoot, createHydrogenRootContext, createWeaverseHydrogenContext, fetchPageData, useStudio };
package/dist/index.js CHANGED
@@ -17,7 +17,6 @@ var __copyProps = (to, from, except, desc) => {
17
17
  }
18
18
  return to;
19
19
  };
20
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
21
20
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
21
  // If the importer is in node compatibility mode or this is not an ESM
23
22
  // file that has been converted to a CommonJS file using a Babel-
@@ -32,8 +31,10 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
32
31
  var src_exports = {};
33
32
  __export(src_exports, {
34
33
  WeaverseHydrogenRoot: () => WeaverseHydrogenRoot,
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,11 +43,11 @@ var elements = {};
42
43
  var elements_default = elements;
43
44
 
44
45
  // src/index.tsx
45
- var import_react = require("@weaverse/react");
46
- var import_react2 = __toESM(require("react"));
47
- __reExport(src_exports, require("@weaverse/react"), module.exports);
46
+ var import_core2 = require("@weaverse/core");
48
47
 
49
48
  // src/utils.ts
49
+ var import_core = require("@weaverse/core");
50
+ var import_react = require("react");
50
51
  var fetchPageData = async ({
51
52
  weaverseHost = "https://studio.weaverse.io",
52
53
  projectId,
@@ -67,21 +68,50 @@ var fetchPageData = async ({
67
68
  });
68
69
  return { ...data, weaverseHost, isDesignMode };
69
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
+ };
70
85
 
71
86
  // src/index.tsx
87
+ var import_react2 = __toESM(require("react"));
88
+ var createHydrogenRootContext = (configs, elements2 = {}) => {
89
+ let rootContext = new import_core2.Weaverse(configs);
90
+ Object.keys(elements2).forEach((key) => {
91
+ rootContext.registerElement(elements2[key]);
92
+ });
93
+ return rootContext;
94
+ };
72
95
  var createWeaverseHydrogenContext = (configs) => {
73
- let context = (0, import_react.createRootContext)(configs);
96
+ let context = createHydrogenRootContext(configs);
74
97
  Object.keys(elements_default).forEach((key) => {
75
98
  context.registerElement(elements_default[key]);
76
99
  });
77
100
  return context;
78
101
  };
79
- var WeaverseHydrogenRoot = ({ context }) => {
80
- return context?.data?.items ? /* @__PURE__ */ import_react2.default.createElement(import_react.WeaverseRoot, { context }) : /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, "No Weaverse data found!");
102
+ var WeaverseHydrogenRoot = () => {
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"));
81
109
  };
82
110
  // Annotate the CommonJS export names for ESM import in node:
83
111
  0 && (module.exports = {
84
112
  WeaverseHydrogenRoot,
113
+ createHydrogenRootContext,
85
114
  createWeaverseHydrogenContext,
86
- fetchPageData
115
+ fetchPageData,
116
+ useStudio
87
117
  });
package/dist/index.mjs CHANGED
@@ -3,11 +3,11 @@ var elements = {};
3
3
  var elements_default = elements;
4
4
 
5
5
  // src/index.tsx
6
- import { createRootContext, WeaverseRoot } from "@weaverse/react";
7
- import React from "react";
8
- export * from "@weaverse/react";
6
+ import { Weaverse } from "@weaverse/core";
9
7
 
10
8
  // src/utils.ts
9
+ import { isIframe, loadScript } from "@weaverse/core";
10
+ import { useEffect } from "react";
11
11
  var fetchPageData = async ({
12
12
  weaverseHost = "https://studio.weaverse.io",
13
13
  projectId,
@@ -28,20 +28,49 @@ var fetchPageData = async ({
28
28
  });
29
29
  return { ...data, weaverseHost, isDesignMode };
30
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
+ };
31
45
 
32
46
  // src/index.tsx
47
+ import React from "react";
48
+ var createHydrogenRootContext = (configs, elements2 = {}) => {
49
+ let rootContext = new Weaverse(configs);
50
+ Object.keys(elements2).forEach((key) => {
51
+ rootContext.registerElement(elements2[key]);
52
+ });
53
+ return rootContext;
54
+ };
33
55
  var createWeaverseHydrogenContext = (configs) => {
34
- let context = createRootContext(configs);
56
+ let context = createHydrogenRootContext(configs);
35
57
  Object.keys(elements_default).forEach((key) => {
36
58
  context.registerElement(elements_default[key]);
37
59
  });
38
60
  return context;
39
61
  };
40
- var WeaverseHydrogenRoot = ({ context }) => {
41
- return context?.data?.items ? /* @__PURE__ */ React.createElement(WeaverseRoot, { context }) : /* @__PURE__ */ React.createElement(React.Fragment, null, "No Weaverse data found!");
62
+ var WeaverseHydrogenRoot = () => {
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"));
42
69
  };
43
70
  export {
44
71
  WeaverseHydrogenRoot,
72
+ createHydrogenRootContext,
45
73
  createWeaverseHydrogenContext,
46
- fetchPageData
74
+ fetchPageData,
75
+ useStudio
47
76
  };
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.17",
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/react": "1.0.17"
35
+ "@weaverse/core": "1.0.19",
36
+ "@shopify/hydrogen": "2023.1.6"
36
37
  }
37
38
  }