@weaverse/hydrogen 1.0.50 → 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 +10 -2
- package/dist/index.js +33 -8
- package/dist/index.mjs +27 -4
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -32,7 +32,7 @@ interface HydrogenComponentData extends Omit<ElementData, 'childIds' | 'css'> {
|
|
|
32
32
|
loaderData: unknown;
|
|
33
33
|
data: Record<string, unknown>;
|
|
34
34
|
}
|
|
35
|
-
type ComponentFlags = Partial<Record<
|
|
35
|
+
type ComponentFlags = Partial<Record<'isSection', boolean>>;
|
|
36
36
|
interface HydrogenComponentSchema extends Omit<ElementSchema, 'parentTypes' | 'flags' | 'inspector'> {
|
|
37
37
|
flags?: ComponentFlags;
|
|
38
38
|
childTypes?: string[];
|
|
@@ -67,6 +67,7 @@ interface HydrogenComponentInstance extends Omit<WeaverseItemStore, '_flags' | '
|
|
|
67
67
|
get _flags(): ComponentFlags;
|
|
68
68
|
get Element(): HydrogenElement | undefined;
|
|
69
69
|
get data(): HydrogenComponentData;
|
|
70
|
+
_store: HydrogenComponentData;
|
|
70
71
|
}
|
|
71
72
|
interface HydrogenComponent<T = HydrogenComponentProps> {
|
|
72
73
|
default: ForwardRefExoticComponent<T>;
|
|
@@ -83,6 +84,8 @@ type HydrogenPageConfigs = {
|
|
|
83
84
|
interface HydrogenPageData {
|
|
84
85
|
page: any;
|
|
85
86
|
configs: HydrogenPageConfigs;
|
|
87
|
+
project: any;
|
|
88
|
+
pageTemplate: any;
|
|
86
89
|
}
|
|
87
90
|
type WeaverseHydrogenLoaderData = {
|
|
88
91
|
weaverseData?: HydrogenPageData;
|
|
@@ -94,6 +97,11 @@ interface WeaverseHydrogenRootProps {
|
|
|
94
97
|
themeSchema?: InspectorGroup[];
|
|
95
98
|
}
|
|
96
99
|
|
|
100
|
+
declare let useThemeSetting: () => {
|
|
101
|
+
themeSetting: any;
|
|
102
|
+
updateThemeSetting: (settings: any) => void;
|
|
103
|
+
};
|
|
104
|
+
|
|
97
105
|
/**
|
|
98
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.
|
|
99
107
|
*/
|
|
@@ -107,4 +115,4 @@ declare function weaverseLoader(args: LoaderArgs, components: Record<string, Hyd
|
|
|
107
115
|
|
|
108
116
|
declare let WeaverseHydrogenRoot: (props: WeaverseHydrogenRootProps) => React.JSX.Element;
|
|
109
117
|
|
|
110
|
-
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
|
|
40
|
-
var
|
|
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
|
-
|
|
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__ */
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
36
|
+
"@weaverse/react": "1.0.52"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@shopify/remix-oxygen": "^1.1.1"
|