@weaverse/hydrogen 2.8.4 → 2.8.5
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 +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +50 -57
- package/dist/index.mjs +23 -30
- package/package.json +3 -3
- package/readme.md +18 -28
package/dist/index.d.mts
CHANGED
|
@@ -57,6 +57,7 @@ declare class WeaverseClient {
|
|
|
57
57
|
constructor(args: WeaverseClientArgs);
|
|
58
58
|
fetchWithCache: <T>(url: string, options?: FetchWithCacheOptions) => Promise<T>;
|
|
59
59
|
loadThemeSettings: (strategy?: AllCacheOptions) => Promise<any>;
|
|
60
|
+
generateFallbackPage: (message: string) => HydrogenPageData;
|
|
60
61
|
loadPage: (params?: LoadPageParams) => Promise<WeaverseLoaderData | null>;
|
|
61
62
|
execComponentLoader: (item: HydrogenComponentData) => Promise<HydrogenComponentData>;
|
|
62
63
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -57,6 +57,7 @@ declare class WeaverseClient {
|
|
|
57
57
|
constructor(args: WeaverseClientArgs);
|
|
58
58
|
fetchWithCache: <T>(url: string, options?: FetchWithCacheOptions) => Promise<T>;
|
|
59
59
|
loadThemeSettings: (strategy?: AllCacheOptions) => Promise<any>;
|
|
60
|
+
generateFallbackPage: (message: string) => HydrogenPageData;
|
|
60
61
|
loadPage: (params?: LoadPageParams) => Promise<WeaverseLoaderData | null>;
|
|
61
62
|
execComponentLoader: (item: HydrogenComponentData) => Promise<HydrogenComponentData>;
|
|
62
63
|
}
|
package/dist/index.js
CHANGED
|
@@ -38,15 +38,15 @@ __export(src_exports, {
|
|
|
38
38
|
getRequestQueries: () => getRequestQueries,
|
|
39
39
|
getSelectedProductOptions: () => getSelectedProductOptions,
|
|
40
40
|
getWeaverseConfigs: () => getWeaverseConfigs,
|
|
41
|
-
useChildInstances: () =>
|
|
42
|
-
useItemInstance: () =>
|
|
43
|
-
useParentInstance: () =>
|
|
41
|
+
useChildInstances: () => import_react14.useChildInstances,
|
|
42
|
+
useItemInstance: () => import_react14.useItemInstance,
|
|
43
|
+
useParentInstance: () => import_react14.useParentInstance,
|
|
44
44
|
useThemeSettings: () => useThemeSettings,
|
|
45
|
-
useWeaverse: () =>
|
|
45
|
+
useWeaverse: () => import_react14.useWeaverse,
|
|
46
46
|
withWeaverse: () => withWeaverse
|
|
47
47
|
});
|
|
48
48
|
module.exports = __toCommonJS(src_exports);
|
|
49
|
-
var
|
|
49
|
+
var import_react14 = require("@weaverse/react");
|
|
50
50
|
|
|
51
51
|
// src/components/main.tsx
|
|
52
52
|
var main_exports = {};
|
|
@@ -69,9 +69,9 @@ var schema = {
|
|
|
69
69
|
var defaultComponents = [main_exports];
|
|
70
70
|
|
|
71
71
|
// src/WeaverseHydrogenRoot.tsx
|
|
72
|
-
var
|
|
73
|
-
var
|
|
74
|
-
var
|
|
72
|
+
var import_react11 = require("@remix-run/react");
|
|
73
|
+
var import_react12 = require("@weaverse/react");
|
|
74
|
+
var import_react13 = __toESM(require("react"));
|
|
75
75
|
var import_react_error_boundary = require("react-error-boundary");
|
|
76
76
|
|
|
77
77
|
// src/context.ts
|
|
@@ -174,41 +174,19 @@ function useThemeSettings() {
|
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
// src/Effect.tsx
|
|
177
|
-
var
|
|
178
|
-
|
|
179
|
-
// src/hooks/use-pixel.ts
|
|
180
|
-
var import_react7 = require("react");
|
|
181
|
-
var import_react8 = require("@remix-run/react");
|
|
182
|
-
var fetchingKey = "";
|
|
183
|
-
function usePixel(context) {
|
|
184
|
-
let { projectId, pageId, weaverseHost, isDesignMode } = context;
|
|
185
|
-
let location = (0, import_react8.useLocation)();
|
|
186
|
-
(0, import_react7.useEffect)(() => {
|
|
187
|
-
if (isDesignMode || !projectId || !pageId || !weaverseHost)
|
|
188
|
-
return;
|
|
189
|
-
let currentKey = `${projectId}-${pageId}-${location.pathname}`;
|
|
190
|
-
if (fetchingKey === currentKey)
|
|
191
|
-
return;
|
|
192
|
-
fetchingKey = currentKey;
|
|
193
|
-
let url = `${weaverseHost}/api/public/px`;
|
|
194
|
-
let xhr = new XMLHttpRequest();
|
|
195
|
-
xhr.open("POST", url, true);
|
|
196
|
-
xhr.setRequestHeader("Content-Type", "application/json");
|
|
197
|
-
xhr.send(JSON.stringify({ projectId, pageId }));
|
|
198
|
-
}, [location]);
|
|
199
|
-
}
|
|
177
|
+
var import_react10 = require("react");
|
|
200
178
|
|
|
201
179
|
// src/hooks/use-studio.ts
|
|
202
|
-
var
|
|
203
|
-
var
|
|
204
|
-
var
|
|
180
|
+
var import_react7 = require("@remix-run/react");
|
|
181
|
+
var import_react8 = require("@weaverse/react");
|
|
182
|
+
var import_react9 = require("react");
|
|
205
183
|
function useStudio(weaverse) {
|
|
206
|
-
let { revalidate } = (0,
|
|
207
|
-
let { pathname, search } = (0,
|
|
208
|
-
let navigate = (0,
|
|
184
|
+
let { revalidate } = (0, import_react7.useRevalidator)();
|
|
185
|
+
let { pathname, search } = (0, import_react7.useLocation)();
|
|
186
|
+
let navigate = (0, import_react7.useNavigate)();
|
|
209
187
|
let themeSettingsStore = useThemeContext();
|
|
210
188
|
let { isDesignMode, weaverseHost, weaverseVersion } = weaverse;
|
|
211
|
-
(0,
|
|
189
|
+
(0, import_react9.useEffect)(() => {
|
|
212
190
|
if (isDesignMode) {
|
|
213
191
|
weaverse.internal = {
|
|
214
192
|
...weaverse.internal,
|
|
@@ -217,7 +195,7 @@ function useStudio(weaverse) {
|
|
|
217
195
|
themeSettingsStore
|
|
218
196
|
};
|
|
219
197
|
let studioSrc = `${weaverseHost}/static/studio/hydrogen/index.js?v=${weaverseVersion}`;
|
|
220
|
-
(0,
|
|
198
|
+
(0, import_react8.loadScript)(studioSrc).then(() => {
|
|
221
199
|
window.weaverseStudio?.init(weaverse);
|
|
222
200
|
}).catch(console.error);
|
|
223
201
|
}
|
|
@@ -225,31 +203,30 @@ function useStudio(weaverse) {
|
|
|
225
203
|
}
|
|
226
204
|
|
|
227
205
|
// src/Effect.tsx
|
|
228
|
-
var WeaverseEffect = (0,
|
|
206
|
+
var WeaverseEffect = (0, import_react10.memo)(
|
|
229
207
|
({ context }) => {
|
|
230
208
|
useStudio(context);
|
|
231
|
-
usePixel(context);
|
|
232
209
|
return null;
|
|
233
210
|
}
|
|
234
211
|
);
|
|
235
212
|
|
|
236
213
|
// src/WeaverseHydrogenRoot.tsx
|
|
237
|
-
var WeaverseHydrogenRoot = (0,
|
|
214
|
+
var WeaverseHydrogenRoot = (0, import_react13.memo)(
|
|
238
215
|
({
|
|
239
216
|
errorComponent: ErrorComponent = FallbackError,
|
|
240
217
|
components
|
|
241
218
|
}) => {
|
|
242
|
-
let loaderData = (0,
|
|
219
|
+
let loaderData = (0, import_react11.useLoaderData)();
|
|
243
220
|
let data = loaderData?.weaverseData;
|
|
244
221
|
if (data) {
|
|
245
222
|
if (data instanceof Promise) {
|
|
246
|
-
return /* @__PURE__ */
|
|
247
|
-
return /* @__PURE__ */
|
|
223
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react_error_boundary.ErrorBoundary, { fallbackRender: ErrorComponent }, /* @__PURE__ */ import_react13.default.createElement(import_react13.Suspense, null, /* @__PURE__ */ import_react13.default.createElement(import_react11.Await, { resolve: data }, (resolvedData) => {
|
|
224
|
+
return /* @__PURE__ */ import_react13.default.createElement(RenderRoot, { data: resolvedData, components });
|
|
248
225
|
})));
|
|
249
226
|
}
|
|
250
|
-
return /* @__PURE__ */
|
|
227
|
+
return /* @__PURE__ */ import_react13.default.createElement(RenderRoot, { data, components });
|
|
251
228
|
}
|
|
252
|
-
return /* @__PURE__ */
|
|
229
|
+
return /* @__PURE__ */ import_react13.default.createElement(
|
|
253
230
|
ErrorComponent,
|
|
254
231
|
{
|
|
255
232
|
error: { message: "No Weaverse data return from route loader!" }
|
|
@@ -260,17 +237,17 @@ var WeaverseHydrogenRoot = (0, import_react15.memo)(
|
|
|
260
237
|
function RenderRoot(props) {
|
|
261
238
|
let { data, components } = props;
|
|
262
239
|
let weaverse = createWeaverseInstance(data, components);
|
|
263
|
-
return /* @__PURE__ */
|
|
240
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null, /* @__PURE__ */ import_react13.default.createElement(import_react12.WeaverseRoot, { context: weaverse }), /* @__PURE__ */ import_react13.default.createElement(WeaverseEffect, { context: weaverse }));
|
|
264
241
|
}
|
|
265
242
|
function withWeaverse(Component) {
|
|
266
243
|
return (props) => {
|
|
267
|
-
let loaderData = (0,
|
|
244
|
+
let loaderData = (0, import_react11.useRouteLoaderData)("root");
|
|
268
245
|
let themeSettingsStore = new ThemeSettingsStore(loaderData?.weaverseTheme);
|
|
269
|
-
return /* @__PURE__ */
|
|
246
|
+
return /* @__PURE__ */ import_react13.default.createElement(ThemeProvider.Provider, { value: themeSettingsStore }, /* @__PURE__ */ import_react13.default.createElement(Component, { ...props }));
|
|
270
247
|
};
|
|
271
248
|
}
|
|
272
249
|
function FallbackError({ error }) {
|
|
273
|
-
return /* @__PURE__ */
|
|
250
|
+
return /* @__PURE__ */ import_react13.default.createElement("div", null, error?.message || "An unexpected error occurred");
|
|
274
251
|
}
|
|
275
252
|
|
|
276
253
|
// src/weaverse-client.ts
|
|
@@ -281,7 +258,7 @@ var package_default = {
|
|
|
281
258
|
name: "@weaverse/hydrogen",
|
|
282
259
|
author: "Weaverse Team",
|
|
283
260
|
description: "Components, hooks, and utilities for building Shopify Hydrogen websites with Weaverse",
|
|
284
|
-
version: "2.8.
|
|
261
|
+
version: "2.8.5",
|
|
285
262
|
license: "MIT",
|
|
286
263
|
main: "dist/index.js",
|
|
287
264
|
typings: "dist/index.d.ts",
|
|
@@ -319,7 +296,7 @@ var package_default = {
|
|
|
319
296
|
singleQuote: true
|
|
320
297
|
},
|
|
321
298
|
dependencies: {
|
|
322
|
-
"@weaverse/react": "2.8.
|
|
299
|
+
"@weaverse/react": "2.8.5",
|
|
323
300
|
"react-error-boundary": "^4.0.11"
|
|
324
301
|
},
|
|
325
302
|
devDependencies: {
|
|
@@ -496,6 +473,20 @@ var WeaverseClient = class {
|
|
|
496
473
|
return null;
|
|
497
474
|
}
|
|
498
475
|
};
|
|
476
|
+
generateFallbackPage = (message) => {
|
|
477
|
+
return {
|
|
478
|
+
id: "fallback" + Date.now(),
|
|
479
|
+
rootId: "root",
|
|
480
|
+
name: "Error",
|
|
481
|
+
items: [
|
|
482
|
+
{
|
|
483
|
+
type: "main",
|
|
484
|
+
id: "main",
|
|
485
|
+
data: { dangerouslySetInnerHTML: { __html: message } }
|
|
486
|
+
}
|
|
487
|
+
]
|
|
488
|
+
};
|
|
489
|
+
};
|
|
499
490
|
loadPage = async (params = {}) => {
|
|
500
491
|
return new Promise(async (resolve, reject) => {
|
|
501
492
|
try {
|
|
@@ -532,7 +523,9 @@ var WeaverseClient = class {
|
|
|
532
523
|
throw new Error(`Weaverse project not found. Id: ${projectId}`);
|
|
533
524
|
}
|
|
534
525
|
if (!page) {
|
|
535
|
-
|
|
526
|
+
page = this.generateFallbackPage(
|
|
527
|
+
`No Weaverse page assigned to this url.1`
|
|
528
|
+
);
|
|
536
529
|
}
|
|
537
530
|
if (page?.items) {
|
|
538
531
|
let items = page.items;
|
|
@@ -592,7 +585,7 @@ function getSelectedProductOptions(request) {
|
|
|
592
585
|
}
|
|
593
586
|
|
|
594
587
|
// src/index.ts
|
|
595
|
-
var WeaverseHydrogen = class extends
|
|
588
|
+
var WeaverseHydrogen = class extends import_react14.Weaverse {
|
|
596
589
|
platformType = "shopify-hydrogen";
|
|
597
590
|
pageId;
|
|
598
591
|
internal;
|
|
@@ -609,7 +602,7 @@ var WeaverseHydrogen = class extends import_react16.Weaverse {
|
|
|
609
602
|
}
|
|
610
603
|
registerComponents = (components) => {
|
|
611
604
|
components.forEach((comp) => {
|
|
612
|
-
|
|
605
|
+
import_react14.Weaverse.registerElement({
|
|
613
606
|
type: comp?.schema?.type,
|
|
614
607
|
Component: comp?.default,
|
|
615
608
|
schema: comp?.schema,
|
|
@@ -618,7 +611,7 @@ var WeaverseHydrogen = class extends import_react16.Weaverse {
|
|
|
618
611
|
});
|
|
619
612
|
};
|
|
620
613
|
};
|
|
621
|
-
var WeaverseHydrogenItem = class extends
|
|
614
|
+
var WeaverseHydrogenItem = class extends import_react14.WeaverseItemStore {
|
|
622
615
|
constructor(initialData, weaverse) {
|
|
623
616
|
super(initialData, weaverse);
|
|
624
617
|
let { data, ...rest } = initialData;
|
package/dist/index.mjs
CHANGED
|
@@ -142,39 +142,17 @@ function useThemeSettings() {
|
|
|
142
142
|
// src/Effect.tsx
|
|
143
143
|
import { memo } from "react";
|
|
144
144
|
|
|
145
|
-
// src/hooks/use-pixel.ts
|
|
146
|
-
import { useEffect } from "react";
|
|
147
|
-
import { useLocation } from "@remix-run/react";
|
|
148
|
-
var fetchingKey = "";
|
|
149
|
-
function usePixel(context) {
|
|
150
|
-
let { projectId, pageId, weaverseHost, isDesignMode } = context;
|
|
151
|
-
let location = useLocation();
|
|
152
|
-
useEffect(() => {
|
|
153
|
-
if (isDesignMode || !projectId || !pageId || !weaverseHost)
|
|
154
|
-
return;
|
|
155
|
-
let currentKey = `${projectId}-${pageId}-${location.pathname}`;
|
|
156
|
-
if (fetchingKey === currentKey)
|
|
157
|
-
return;
|
|
158
|
-
fetchingKey = currentKey;
|
|
159
|
-
let url = `${weaverseHost}/api/public/px`;
|
|
160
|
-
let xhr = new XMLHttpRequest();
|
|
161
|
-
xhr.open("POST", url, true);
|
|
162
|
-
xhr.setRequestHeader("Content-Type", "application/json");
|
|
163
|
-
xhr.send(JSON.stringify({ projectId, pageId }));
|
|
164
|
-
}, [location]);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
145
|
// src/hooks/use-studio.ts
|
|
168
|
-
import { useLocation
|
|
146
|
+
import { useLocation, useNavigate, useRevalidator } from "@remix-run/react";
|
|
169
147
|
import { loadScript } from "@weaverse/react";
|
|
170
|
-
import { useEffect
|
|
148
|
+
import { useEffect } from "react";
|
|
171
149
|
function useStudio(weaverse) {
|
|
172
150
|
let { revalidate } = useRevalidator();
|
|
173
|
-
let { pathname, search } =
|
|
151
|
+
let { pathname, search } = useLocation();
|
|
174
152
|
let navigate = useNavigate();
|
|
175
153
|
let themeSettingsStore = useThemeContext();
|
|
176
154
|
let { isDesignMode, weaverseHost, weaverseVersion } = weaverse;
|
|
177
|
-
|
|
155
|
+
useEffect(() => {
|
|
178
156
|
if (isDesignMode) {
|
|
179
157
|
weaverse.internal = {
|
|
180
158
|
...weaverse.internal,
|
|
@@ -194,7 +172,6 @@ function useStudio(weaverse) {
|
|
|
194
172
|
var WeaverseEffect = memo(
|
|
195
173
|
({ context }) => {
|
|
196
174
|
useStudio(context);
|
|
197
|
-
usePixel(context);
|
|
198
175
|
return null;
|
|
199
176
|
}
|
|
200
177
|
);
|
|
@@ -247,7 +224,7 @@ var package_default = {
|
|
|
247
224
|
name: "@weaverse/hydrogen",
|
|
248
225
|
author: "Weaverse Team",
|
|
249
226
|
description: "Components, hooks, and utilities for building Shopify Hydrogen websites with Weaverse",
|
|
250
|
-
version: "2.8.
|
|
227
|
+
version: "2.8.5",
|
|
251
228
|
license: "MIT",
|
|
252
229
|
main: "dist/index.js",
|
|
253
230
|
typings: "dist/index.d.ts",
|
|
@@ -285,7 +262,7 @@ var package_default = {
|
|
|
285
262
|
singleQuote: true
|
|
286
263
|
},
|
|
287
264
|
dependencies: {
|
|
288
|
-
"@weaverse/react": "2.8.
|
|
265
|
+
"@weaverse/react": "2.8.5",
|
|
289
266
|
"react-error-boundary": "^4.0.11"
|
|
290
267
|
},
|
|
291
268
|
devDependencies: {
|
|
@@ -462,6 +439,20 @@ var WeaverseClient = class {
|
|
|
462
439
|
return null;
|
|
463
440
|
}
|
|
464
441
|
};
|
|
442
|
+
generateFallbackPage = (message) => {
|
|
443
|
+
return {
|
|
444
|
+
id: "fallback" + Date.now(),
|
|
445
|
+
rootId: "root",
|
|
446
|
+
name: "Error",
|
|
447
|
+
items: [
|
|
448
|
+
{
|
|
449
|
+
type: "main",
|
|
450
|
+
id: "main",
|
|
451
|
+
data: { dangerouslySetInnerHTML: { __html: message } }
|
|
452
|
+
}
|
|
453
|
+
]
|
|
454
|
+
};
|
|
455
|
+
};
|
|
465
456
|
loadPage = async (params = {}) => {
|
|
466
457
|
return new Promise(async (resolve, reject) => {
|
|
467
458
|
try {
|
|
@@ -498,7 +489,9 @@ var WeaverseClient = class {
|
|
|
498
489
|
throw new Error(`Weaverse project not found. Id: ${projectId}`);
|
|
499
490
|
}
|
|
500
491
|
if (!page) {
|
|
501
|
-
|
|
492
|
+
page = this.generateFallbackPage(
|
|
493
|
+
`No Weaverse page assigned to this url.1`
|
|
494
|
+
);
|
|
502
495
|
}
|
|
503
496
|
if (page?.items) {
|
|
504
497
|
let items = page.items;
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@weaverse/hydrogen",
|
|
3
3
|
"author": "Weaverse Team",
|
|
4
4
|
"description": "Components, hooks, and utilities for building Shopify Hydrogen websites with Weaverse",
|
|
5
|
-
"version": "2.8.
|
|
5
|
+
"version": "2.8.5",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"typings": "dist/index.d.ts",
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
"singleQuote": true
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@weaverse/react": "2.8.
|
|
43
|
+
"@weaverse/react": "2.8.5",
|
|
44
44
|
"react-error-boundary": "^4.0.11"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@shopify/remix-oxygen": "^2.0.1"
|
|
48
48
|
}
|
|
49
|
-
}
|
|
49
|
+
}
|
package/readme.md
CHANGED
|
@@ -34,7 +34,7 @@ Initialize the Weaverse Client to establish a connection between your Hydrogen p
|
|
|
34
34
|
```typescript
|
|
35
35
|
// <root>/server.ts
|
|
36
36
|
|
|
37
|
-
import {createWeaverseClient} from '~/weaverse/create-weaverse.server'
|
|
37
|
+
import { createWeaverseClient } from '~/weaverse/create-weaverse.server'
|
|
38
38
|
|
|
39
39
|
const handleRequest = createRequestHandler({
|
|
40
40
|
// ...
|
|
@@ -49,8 +49,7 @@ const handleRequest = createRequestHandler({
|
|
|
49
49
|
}),
|
|
50
50
|
// ... more app context properties
|
|
51
51
|
}),
|
|
52
|
-
})
|
|
53
|
-
|
|
52
|
+
})
|
|
54
53
|
```
|
|
55
54
|
|
|
56
55
|
### Data Fetching and Rendering
|
|
@@ -60,19 +59,18 @@ Use the Weaverse Client to fetch data such as page content and global theme sett
|
|
|
60
59
|
```typescript
|
|
61
60
|
// <root>/app/routes/($locale)._index.tsx
|
|
62
61
|
|
|
63
|
-
import { json } from '@shopify/remix-oxygen'
|
|
64
|
-
import { type RouteLoaderArgs } from '@weaverse/hydrogen'
|
|
62
|
+
import { json } from '@shopify/remix-oxygen'
|
|
63
|
+
import { type RouteLoaderArgs } from '@weaverse/hydrogen'
|
|
65
64
|
|
|
66
|
-
export async function loader({context}: RouteLoaderArgs) {
|
|
67
|
-
let {weaverse} = context
|
|
65
|
+
export async function loader({ context }: RouteLoaderArgs) {
|
|
66
|
+
let { weaverse } = context
|
|
68
67
|
|
|
69
68
|
return json({
|
|
70
69
|
// The key prop for a Weaverse page must always be `weaverseData`
|
|
71
70
|
weaverseData: await weaverse.loadPage(),
|
|
72
71
|
// Additional page data...
|
|
73
|
-
})
|
|
72
|
+
})
|
|
74
73
|
}
|
|
75
|
-
|
|
76
74
|
```
|
|
77
75
|
|
|
78
76
|
Implement the `WeaverseHydrogenRoot` component to render the fetched content:
|
|
@@ -80,9 +78,9 @@ Implement the `WeaverseHydrogenRoot` component to render the fetched content:
|
|
|
80
78
|
```jsx
|
|
81
79
|
// <root>/app/weaverse/index.tsx
|
|
82
80
|
|
|
83
|
-
import {WeaverseHydrogenRoot} from '@weaverse/hydrogen'
|
|
84
|
-
import {GenericError} from '~/components/GenericError'
|
|
85
|
-
import {components} from './components'
|
|
81
|
+
import { WeaverseHydrogenRoot } from '@weaverse/hydrogen'
|
|
82
|
+
import { GenericError } from '~/components/GenericError'
|
|
83
|
+
import { components } from './components'
|
|
86
84
|
|
|
87
85
|
export function WeaverseContent() {
|
|
88
86
|
return (
|
|
@@ -90,18 +88,16 @@ export function WeaverseContent() {
|
|
|
90
88
|
components={components}
|
|
91
89
|
errorComponent={GenericError}
|
|
92
90
|
/>
|
|
93
|
-
)
|
|
91
|
+
)
|
|
94
92
|
}
|
|
95
93
|
|
|
96
|
-
|
|
97
94
|
// <root>/app/routes/($locale)._index.tsx
|
|
98
95
|
|
|
99
|
-
import { WeaverseContent } from '~/weaverse'
|
|
96
|
+
import { WeaverseContent } from '~/weaverse'
|
|
100
97
|
|
|
101
98
|
export default function Homepage() {
|
|
102
|
-
return <WeaverseContent
|
|
99
|
+
return <WeaverseContent />
|
|
103
100
|
}
|
|
104
|
-
|
|
105
101
|
```
|
|
106
102
|
|
|
107
103
|
### Defining Component Schema
|
|
@@ -109,7 +105,7 @@ export default function Homepage() {
|
|
|
109
105
|
Define your component's schema to control its behavior and interactivity within Weaverse Studio:
|
|
110
106
|
|
|
111
107
|
```typescript
|
|
112
|
-
import type { HydrogenComponentSchema } from '@weaverse/hydrogen'
|
|
108
|
+
import type { HydrogenComponentSchema } from '@weaverse/hydrogen'
|
|
113
109
|
|
|
114
110
|
export let schema: HydrogenComponentSchema = {
|
|
115
111
|
title: 'Product Card',
|
|
@@ -117,17 +113,13 @@ export let schema: HydrogenComponentSchema = {
|
|
|
117
113
|
inspector: [
|
|
118
114
|
{
|
|
119
115
|
group: 'Settings',
|
|
120
|
-
inputs: [] // Defining input settings
|
|
121
|
-
}
|
|
116
|
+
inputs: [], // Defining input settings
|
|
117
|
+
},
|
|
122
118
|
],
|
|
123
119
|
childTypes: ['image', 'product-title', 'price'],
|
|
124
120
|
presets: {
|
|
125
121
|
type: 'product-card',
|
|
126
|
-
children: [
|
|
127
|
-
{ type: 'image' },
|
|
128
|
-
{ type: 'product-title' },
|
|
129
|
-
{ type: 'price' },
|
|
130
|
-
],
|
|
122
|
+
children: [{ type: 'image' }, { type: 'product-title' }, { type: 'price' }],
|
|
131
123
|
},
|
|
132
124
|
limit: 3,
|
|
133
125
|
enabledOn: {
|
|
@@ -135,8 +127,7 @@ export let schema: HydrogenComponentSchema = {
|
|
|
135
127
|
groups: ['body'],
|
|
136
128
|
},
|
|
137
129
|
toolbar: ['general-settings', ['duplicate', 'delete']],
|
|
138
|
-
}
|
|
139
|
-
|
|
130
|
+
}
|
|
140
131
|
```
|
|
141
132
|
|
|
142
133
|
### Customizing Input Settings
|
|
@@ -170,4 +161,3 @@ for more details on how to contribute effectively.
|
|
|
170
161
|
|
|
171
162
|
This package is created by The Weaverse Team ([https://weaverse.io](https://weaverse.io)) and is licensed under the MIT
|
|
172
163
|
License.
|
|
173
|
-
|