@weaverse/hydrogen 1.0.51 → 1.0.52

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
@@ -84,6 +84,8 @@ type HydrogenPageConfigs = {
84
84
  interface HydrogenPageData {
85
85
  page: any;
86
86
  configs: HydrogenPageConfigs;
87
+ project: any;
88
+ pageTemplate: any;
87
89
  }
88
90
  type WeaverseHydrogenLoaderData = {
89
91
  weaverseData?: HydrogenPageData;
@@ -95,6 +97,11 @@ interface WeaverseHydrogenRootProps {
95
97
  themeSchema?: InspectorGroup[];
96
98
  }
97
99
 
100
+ declare let useThemeSetting: () => {
101
+ themeSetting: any;
102
+ updateThemeSetting: (settings: any) => void;
103
+ };
104
+
98
105
  /**
99
106
  * Fetch with server cache requires a storefront.cache instance which is Cloudflare Cache and a waitUntil function, otherwise it will just fetch the url.
100
107
  */
@@ -108,4 +115,4 @@ declare function weaverseLoader(args: LoaderArgs, components: Record<string, Hyd
108
115
 
109
116
  declare let WeaverseHydrogenRoot: (props: WeaverseHydrogenRootProps) => React.JSX.Element;
110
117
 
111
- export { ComponentFlags, HydrogenComponent, HydrogenComponentData, HydrogenComponentInstance, HydrogenComponentPresets, HydrogenComponentProps, HydrogenComponentSchema, HydrogenElement, HydrogenPageConfigs, HydrogenPageData, InspectorGroup, TODO, WeaverseHydrogen, WeaverseHydrogenLoaderData, WeaverseHydrogenRoot, WeaverseHydrogenRootProps, WeaverseLoaderArgs, fetchWithServerCache, weaverseLoader };
118
+ export { ComponentFlags, HydrogenComponent, HydrogenComponentData, HydrogenComponentInstance, HydrogenComponentPresets, HydrogenComponentProps, HydrogenComponentSchema, HydrogenElement, HydrogenPageConfigs, HydrogenPageData, InspectorGroup, TODO, WeaverseHydrogen, WeaverseHydrogenLoaderData, WeaverseHydrogenRoot, WeaverseHydrogenRootProps, WeaverseLoaderArgs, fetchWithServerCache, useThemeSetting, weaverseLoader };
package/dist/index.js CHANGED
@@ -33,11 +33,12 @@ var src_exports = {};
33
33
  __export(src_exports, {
34
34
  WeaverseHydrogenRoot: () => WeaverseHydrogenRoot,
35
35
  fetchWithServerCache: () => fetchWithServerCache,
36
+ useThemeSetting: () => useThemeSetting,
36
37
  weaverseLoader: () => weaverseLoader
37
38
  });
38
39
  module.exports = __toCommonJS(src_exports);
39
- var import_react3 = require("@weaverse/react");
40
- var import_react4 = __toESM(require("react"));
40
+ var import_react4 = require("@weaverse/react");
41
+ var import_react5 = __toESM(require("react"));
41
42
 
42
43
  // src/context.ts
43
44
  var import_react = require("@weaverse/react");
@@ -57,13 +58,15 @@ function createCachedContext(init) {
57
58
  }
58
59
  function createWeaverseHydrogenContext(data, components) {
59
60
  let weaverseData = data?.weaverseData || {};
60
- let { page = {}, configs = {} } = weaverseData;
61
+ let { page = {}, configs = {}, project, pageTemplate } = weaverseData;
61
62
  let weaverse = createCachedContext({
62
63
  ...configs,
63
64
  data: page,
64
65
  pageId: page?.id,
65
66
  platformType: "shopify-hydrogen"
66
67
  });
68
+ weaverse.internal.project = project;
69
+ weaverse.internal.pageTemplate = pageTemplate;
67
70
  Object.entries(components).forEach(([key, component]) => {
68
71
  weaverse.registerElement({
69
72
  type: component?.schema?.type || key,
@@ -623,6 +626,7 @@ var Weaverse2 = class {
623
626
  this.weaverseVersion = "";
624
627
  this.projectId = "";
625
628
  this.pageId = "";
629
+ this.internal = {};
626
630
  this.data = {
627
631
  rootId: "",
628
632
  items: [],
@@ -714,7 +718,8 @@ function useStudio(weaverseCore, themeSchema) {
714
718
  (0, import_react2.useEffect)(() => {
715
719
  if (weaverseCore.isDesignMode && isIframe && !window.weaverseStudioInitialized) {
716
720
  window.weaverseStudioInitialized = true;
717
- weaverseCore.themeSchema = themeSchema;
721
+ console.log("themeSchema", themeSchema);
722
+ weaverseCore.internal.themeSchema = themeSchema;
718
723
  let host = weaverseCore.weaverseHost;
719
724
  let version = weaverseCore.weaverseVersion || Date.now();
720
725
  loadScript(`${host}/assets/studio/studio-bridge.js?v=${version}`).then(
@@ -730,6 +735,22 @@ function useStudio(weaverseCore, themeSchema) {
730
735
  }, [weaverseCore]);
731
736
  }
732
737
 
738
+ // src/hooks/use-theme-setting.ts
739
+ var import_react3 = require("@weaverse/react");
740
+ var useThemeSetting = () => {
741
+ let weaverseCore = (0, import_react3.useWeaverse)();
742
+ let themeSetting = weaverseCore?.internal?.project?.config?.theme;
743
+ let updateThemeSetting = (settings) => {
744
+ weaverseCore.internal.project.config.theme = Object.assign(
745
+ {},
746
+ themeSetting,
747
+ settings
748
+ );
749
+ weaverseCore.triggerUpdate();
750
+ };
751
+ return { themeSetting, updateThemeSetting };
752
+ };
753
+
733
754
  // src/fetch.ts
734
755
  var import_hydrogen = require("@shopify/hydrogen");
735
756
 
@@ -813,7 +834,7 @@ async function weaverseLoader(args, components) {
813
834
  try {
814
835
  let projectAPI = `${weaverseHost}/api/public/project`;
815
836
  let url = request.url;
816
- let page = await fetchWithServerCache({
837
+ let { page, project, pageTemplateAssignment } = await fetchWithServerCache({
817
838
  url: projectAPI,
818
839
  options: {
819
840
  method: "POST",
@@ -824,6 +845,7 @@ async function weaverseLoader(args, components) {
824
845
  console.log(`\u274C Error fetching project data: ${err?.toString()}`);
825
846
  return {};
826
847
  });
848
+ console.log("page", { page, project, pageTemplateAssignment });
827
849
  if (page?.items) {
828
850
  let items = page.items;
829
851
  page.items = await Promise.all(
@@ -850,7 +872,7 @@ async function weaverseLoader(args, components) {
850
872
  })
851
873
  );
852
874
  }
853
- return { page, configs };
875
+ return { page, configs, project, pageTemplate: pageTemplateAssignment };
854
876
  } catch (err) {
855
877
  console.log(`\u274C Error fetching Weaverse data: ${err?.toString()}`);
856
878
  return null;
@@ -861,13 +883,16 @@ async function weaverseLoader(args, components) {
861
883
  __reExport(src_exports, require("@weaverse/react"), module.exports);
862
884
  var WeaverseHydrogenRoot = (props) => {
863
885
  let { components, data, themeSchema } = props;
886
+ console.log("WeaverseHydrogenRoot", props);
864
887
  let weaverse = createWeaverseHydrogenContext(data, components);
865
888
  useStudio(weaverse, themeSchema);
866
- return /* @__PURE__ */ import_react4.default.createElement(import_react3.WeaverseRoot, { context: weaverse });
889
+ return /* @__PURE__ */ import_react5.default.createElement(import_react4.WeaverseRoot, { context: weaverse });
867
890
  };
868
891
  // Annotate the CommonJS export names for ESM import in node:
869
892
  0 && (module.exports = {
870
893
  WeaverseHydrogenRoot,
871
894
  fetchWithServerCache,
872
- weaverseLoader
895
+ useThemeSetting,
896
+ weaverseLoader,
897
+ ...require("@weaverse/react")
873
898
  });
package/dist/index.mjs CHANGED
@@ -20,13 +20,15 @@ function createCachedContext(init) {
20
20
  }
21
21
  function createWeaverseHydrogenContext(data, components) {
22
22
  let weaverseData = data?.weaverseData || {};
23
- let { page = {}, configs = {} } = weaverseData;
23
+ let { page = {}, configs = {}, project, pageTemplate } = weaverseData;
24
24
  let weaverse = createCachedContext({
25
25
  ...configs,
26
26
  data: page,
27
27
  pageId: page?.id,
28
28
  platformType: "shopify-hydrogen"
29
29
  });
30
+ weaverse.internal.project = project;
31
+ weaverse.internal.pageTemplate = pageTemplate;
30
32
  Object.entries(components).forEach(([key, component]) => {
31
33
  weaverse.registerElement({
32
34
  type: component?.schema?.type || key,
@@ -586,6 +588,7 @@ var Weaverse2 = class {
586
588
  this.weaverseVersion = "";
587
589
  this.projectId = "";
588
590
  this.pageId = "";
591
+ this.internal = {};
589
592
  this.data = {
590
593
  rootId: "",
591
594
  items: [],
@@ -677,7 +680,8 @@ function useStudio(weaverseCore, themeSchema) {
677
680
  useEffect(() => {
678
681
  if (weaverseCore.isDesignMode && isIframe && !window.weaverseStudioInitialized) {
679
682
  window.weaverseStudioInitialized = true;
680
- weaverseCore.themeSchema = themeSchema;
683
+ console.log("themeSchema", themeSchema);
684
+ weaverseCore.internal.themeSchema = themeSchema;
681
685
  let host = weaverseCore.weaverseHost;
682
686
  let version = weaverseCore.weaverseVersion || Date.now();
683
687
  loadScript(`${host}/assets/studio/studio-bridge.js?v=${version}`).then(
@@ -693,6 +697,22 @@ function useStudio(weaverseCore, themeSchema) {
693
697
  }, [weaverseCore]);
694
698
  }
695
699
 
700
+ // src/hooks/use-theme-setting.ts
701
+ import { useWeaverse } from "@weaverse/react";
702
+ var useThemeSetting = () => {
703
+ let weaverseCore = useWeaverse();
704
+ let themeSetting = weaverseCore?.internal?.project?.config?.theme;
705
+ let updateThemeSetting = (settings) => {
706
+ weaverseCore.internal.project.config.theme = Object.assign(
707
+ {},
708
+ themeSetting,
709
+ settings
710
+ );
711
+ weaverseCore.triggerUpdate();
712
+ };
713
+ return { themeSetting, updateThemeSetting };
714
+ };
715
+
696
716
  // src/fetch.ts
697
717
  import { CacheShort, generateCacheControlHeader } from "@shopify/hydrogen";
698
718
 
@@ -776,7 +796,7 @@ async function weaverseLoader(args, components) {
776
796
  try {
777
797
  let projectAPI = `${weaverseHost}/api/public/project`;
778
798
  let url = request.url;
779
- let page = await fetchWithServerCache({
799
+ let { page, project, pageTemplateAssignment } = await fetchWithServerCache({
780
800
  url: projectAPI,
781
801
  options: {
782
802
  method: "POST",
@@ -787,6 +807,7 @@ async function weaverseLoader(args, components) {
787
807
  console.log(`\u274C Error fetching project data: ${err?.toString()}`);
788
808
  return {};
789
809
  });
810
+ console.log("page", { page, project, pageTemplateAssignment });
790
811
  if (page?.items) {
791
812
  let items = page.items;
792
813
  page.items = await Promise.all(
@@ -813,7 +834,7 @@ async function weaverseLoader(args, components) {
813
834
  })
814
835
  );
815
836
  }
816
- return { page, configs };
837
+ return { page, configs, project, pageTemplate: pageTemplateAssignment };
817
838
  } catch (err) {
818
839
  console.log(`\u274C Error fetching Weaverse data: ${err?.toString()}`);
819
840
  return null;
@@ -824,6 +845,7 @@ async function weaverseLoader(args, components) {
824
845
  export * from "@weaverse/react";
825
846
  var WeaverseHydrogenRoot = (props) => {
826
847
  let { components, data, themeSchema } = props;
848
+ console.log("WeaverseHydrogenRoot", props);
827
849
  let weaverse = createWeaverseHydrogenContext(data, components);
828
850
  useStudio(weaverse, themeSchema);
829
851
  return /* @__PURE__ */ React.createElement(WeaverseRoot, { context: weaverse });
@@ -831,5 +853,6 @@ var WeaverseHydrogenRoot = (props) => {
831
853
  export {
832
854
  WeaverseHydrogenRoot,
833
855
  fetchWithServerCache,
856
+ useThemeSetting,
834
857
  weaverseLoader
835
858
  };
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.51",
2
+ "version": "1.0.52",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -33,7 +33,7 @@
33
33
  "author": "Weaverse Team",
34
34
  "dependencies": {
35
35
  "@shopify/hydrogen": "2023.4.5",
36
- "@weaverse/react": "1.0.51"
36
+ "@weaverse/react": "1.0.52"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@shopify/remix-oxygen": "^1.1.1"