@weaverse/hydrogen 2.7.2 → 2.8.0
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 +12 -6
- package/dist/index.d.ts +12 -6
- package/dist/index.js +40 -34
- package/dist/index.mjs +42 -36
- package/package.json +3 -3
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ElementData, ElementSchema, BasicInput as BasicInput$1, WeaverseElement, WeaverseCoreParams, WeaverseProjectDataType, WeaverseResourcePickerData, Weaverse, PlatformTypeEnum, WeaverseItemStore } from '@weaverse/react';
|
|
2
|
-
export { InputType, WeaverseImage, useChildInstances, useItemInstance, useParentInstance, useWeaverse } from '@weaverse/react';
|
|
2
|
+
export { InputType, PositionInputValue, WeaverseImage, useChildInstances, useItemInstance, useParentInstance, useWeaverse } from '@weaverse/react';
|
|
3
3
|
import { NavigateFunction } from '@remix-run/react';
|
|
4
4
|
import { createWithCache, Storefront } from '@shopify/hydrogen';
|
|
5
5
|
import { LanguageCode, CountryCode, CurrencyCode } from '@shopify/hydrogen/storefront-api-types';
|
|
@@ -112,9 +112,15 @@ interface HydrogenComponentSchema extends ElementSchema {
|
|
|
112
112
|
type BasicInput = BasicInput$1 & {
|
|
113
113
|
shouldRevalidate?: boolean;
|
|
114
114
|
};
|
|
115
|
+
type HeadingInputType = 'heading';
|
|
116
|
+
type HeadingInput = {
|
|
117
|
+
type: HeadingInputType;
|
|
118
|
+
label: string;
|
|
119
|
+
[key: string]: any;
|
|
120
|
+
};
|
|
115
121
|
interface InspectorGroup {
|
|
116
122
|
group: string;
|
|
117
|
-
inputs: BasicInput[];
|
|
123
|
+
inputs: (BasicInput | HeadingInput)[];
|
|
118
124
|
}
|
|
119
125
|
interface HydrogenComponentProps<L = any> extends WeaverseElement {
|
|
120
126
|
className?: string;
|
|
@@ -134,7 +140,6 @@ type WeaverseLoaderRequestInfo = {
|
|
|
134
140
|
};
|
|
135
141
|
type WeaverseStorefrontData = {
|
|
136
142
|
id?: string;
|
|
137
|
-
__cachedId?: string;
|
|
138
143
|
rootId: string;
|
|
139
144
|
name: string;
|
|
140
145
|
items: HydrogenComponentData[];
|
|
@@ -221,9 +226,9 @@ interface WeaverseLoaderData {
|
|
|
221
226
|
}
|
|
222
227
|
interface HydrogenPageData extends WeaverseProjectDataType {
|
|
223
228
|
id: string;
|
|
224
|
-
pageId: string;
|
|
225
229
|
name: string;
|
|
226
230
|
items: HydrogenComponentData[];
|
|
231
|
+
__cacheId?: string;
|
|
227
232
|
[key: string]: any;
|
|
228
233
|
}
|
|
229
234
|
interface WeaverseHydrogenRootProps {
|
|
@@ -267,6 +272,7 @@ type FetchProjectPayload = {
|
|
|
267
272
|
page: HydrogenPageData;
|
|
268
273
|
project: HydrogenProjectType;
|
|
269
274
|
pageAssignment: HydrogenPageAssignment;
|
|
275
|
+
error?: string;
|
|
270
276
|
};
|
|
271
277
|
type HydrogenThemeEnv = {
|
|
272
278
|
WEAVERSE_PROJECT_ID: string;
|
|
@@ -304,7 +310,7 @@ type WeaverseArticle = WeaverseResourcePickerData;
|
|
|
304
310
|
declare global {
|
|
305
311
|
interface Window {
|
|
306
312
|
__weaverse: WeaverseHydrogen;
|
|
307
|
-
__weaverses: WeaverseHydrogen
|
|
313
|
+
__weaverses: Record<string, WeaverseHydrogen>;
|
|
308
314
|
}
|
|
309
315
|
}
|
|
310
316
|
|
|
@@ -336,4 +342,4 @@ declare class WeaverseHydrogenItem extends WeaverseItemStore {
|
|
|
336
342
|
set data(update: HydrogenComponentData);
|
|
337
343
|
}
|
|
338
344
|
|
|
339
|
-
export { type AllCacheOptions, type BasicInput, type ComponentLoaderArgs, type FetchProjectPayload, type FetchProjectRequestBody, type FetchWithCacheOptions, type HydrogenComponent, type HydrogenComponentData, type HydrogenComponentLoaderFunction, type HydrogenComponentPresets, type HydrogenComponentProps, type HydrogenComponentSchema, type HydrogenElement, type HydrogenPageAssignment, type HydrogenPageConfigs, type HydrogenPageData, type HydrogenProjectConfig, type HydrogenProjectType, type HydrogenThemeEnv, type HydrogenThemeInfo, type HydrogenThemeSchema, type HydrogenThemeSettings, type HydrogenToolbarAction, type I18nLocale, type InspectorGroup, type LoadPageParams, type Locale, type Localizations, type PageAssignmentParams, type PageType, type PublicEnv, type RootRouteData, type RouteLoaderArgs, ThemeSettingsStore, type WeaverseArticle, type WeaverseBlog, WeaverseClient, type WeaverseClientArgs, type WeaverseCollection, WeaverseHydrogen, WeaverseHydrogenItem, type WeaverseHydrogenParams, WeaverseHydrogenRoot, type WeaverseHydrogenRootProps, type WeaverseInternal, type WeaverseLoaderData, type WeaverseLoaderRequestInfo, type WeaverseProduct, type WeaverseProjectConfigs, type WeaverseStorefrontData, type WeaverseStudioQueries, type WeaverseThemeConfigs, getRequestQueries, getSelectedProductOptions, getWeaverseConfigs, useThemeSettings, withWeaverse };
|
|
345
|
+
export { type AllCacheOptions, type BasicInput, type ComponentLoaderArgs, type FetchProjectPayload, type FetchProjectRequestBody, type FetchWithCacheOptions, type HeadingInput, type HeadingInputType, type HydrogenComponent, type HydrogenComponentData, type HydrogenComponentLoaderFunction, type HydrogenComponentPresets, type HydrogenComponentProps, type HydrogenComponentSchema, type HydrogenElement, type HydrogenPageAssignment, type HydrogenPageConfigs, type HydrogenPageData, type HydrogenProjectConfig, type HydrogenProjectType, type HydrogenThemeEnv, type HydrogenThemeInfo, type HydrogenThemeSchema, type HydrogenThemeSettings, type HydrogenToolbarAction, type I18nLocale, type InspectorGroup, type LoadPageParams, type Locale, type Localizations, type PageAssignmentParams, type PageType, type PublicEnv, type RootRouteData, type RouteLoaderArgs, ThemeSettingsStore, type WeaverseArticle, type WeaverseBlog, WeaverseClient, type WeaverseClientArgs, type WeaverseCollection, WeaverseHydrogen, WeaverseHydrogenItem, type WeaverseHydrogenParams, WeaverseHydrogenRoot, type WeaverseHydrogenRootProps, type WeaverseInternal, type WeaverseLoaderData, type WeaverseLoaderRequestInfo, type WeaverseProduct, type WeaverseProjectConfigs, type WeaverseStorefrontData, type WeaverseStudioQueries, type WeaverseThemeConfigs, getRequestQueries, getSelectedProductOptions, getWeaverseConfigs, useThemeSettings, withWeaverse };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ElementData, ElementSchema, BasicInput as BasicInput$1, WeaverseElement, WeaverseCoreParams, WeaverseProjectDataType, WeaverseResourcePickerData, Weaverse, PlatformTypeEnum, WeaverseItemStore } from '@weaverse/react';
|
|
2
|
-
export { InputType, WeaverseImage, useChildInstances, useItemInstance, useParentInstance, useWeaverse } from '@weaverse/react';
|
|
2
|
+
export { InputType, PositionInputValue, WeaverseImage, useChildInstances, useItemInstance, useParentInstance, useWeaverse } from '@weaverse/react';
|
|
3
3
|
import { NavigateFunction } from '@remix-run/react';
|
|
4
4
|
import { createWithCache, Storefront } from '@shopify/hydrogen';
|
|
5
5
|
import { LanguageCode, CountryCode, CurrencyCode } from '@shopify/hydrogen/storefront-api-types';
|
|
@@ -112,9 +112,15 @@ interface HydrogenComponentSchema extends ElementSchema {
|
|
|
112
112
|
type BasicInput = BasicInput$1 & {
|
|
113
113
|
shouldRevalidate?: boolean;
|
|
114
114
|
};
|
|
115
|
+
type HeadingInputType = 'heading';
|
|
116
|
+
type HeadingInput = {
|
|
117
|
+
type: HeadingInputType;
|
|
118
|
+
label: string;
|
|
119
|
+
[key: string]: any;
|
|
120
|
+
};
|
|
115
121
|
interface InspectorGroup {
|
|
116
122
|
group: string;
|
|
117
|
-
inputs: BasicInput[];
|
|
123
|
+
inputs: (BasicInput | HeadingInput)[];
|
|
118
124
|
}
|
|
119
125
|
interface HydrogenComponentProps<L = any> extends WeaverseElement {
|
|
120
126
|
className?: string;
|
|
@@ -134,7 +140,6 @@ type WeaverseLoaderRequestInfo = {
|
|
|
134
140
|
};
|
|
135
141
|
type WeaverseStorefrontData = {
|
|
136
142
|
id?: string;
|
|
137
|
-
__cachedId?: string;
|
|
138
143
|
rootId: string;
|
|
139
144
|
name: string;
|
|
140
145
|
items: HydrogenComponentData[];
|
|
@@ -221,9 +226,9 @@ interface WeaverseLoaderData {
|
|
|
221
226
|
}
|
|
222
227
|
interface HydrogenPageData extends WeaverseProjectDataType {
|
|
223
228
|
id: string;
|
|
224
|
-
pageId: string;
|
|
225
229
|
name: string;
|
|
226
230
|
items: HydrogenComponentData[];
|
|
231
|
+
__cacheId?: string;
|
|
227
232
|
[key: string]: any;
|
|
228
233
|
}
|
|
229
234
|
interface WeaverseHydrogenRootProps {
|
|
@@ -267,6 +272,7 @@ type FetchProjectPayload = {
|
|
|
267
272
|
page: HydrogenPageData;
|
|
268
273
|
project: HydrogenProjectType;
|
|
269
274
|
pageAssignment: HydrogenPageAssignment;
|
|
275
|
+
error?: string;
|
|
270
276
|
};
|
|
271
277
|
type HydrogenThemeEnv = {
|
|
272
278
|
WEAVERSE_PROJECT_ID: string;
|
|
@@ -304,7 +310,7 @@ type WeaverseArticle = WeaverseResourcePickerData;
|
|
|
304
310
|
declare global {
|
|
305
311
|
interface Window {
|
|
306
312
|
__weaverse: WeaverseHydrogen;
|
|
307
|
-
__weaverses: WeaverseHydrogen
|
|
313
|
+
__weaverses: Record<string, WeaverseHydrogen>;
|
|
308
314
|
}
|
|
309
315
|
}
|
|
310
316
|
|
|
@@ -336,4 +342,4 @@ declare class WeaverseHydrogenItem extends WeaverseItemStore {
|
|
|
336
342
|
set data(update: HydrogenComponentData);
|
|
337
343
|
}
|
|
338
344
|
|
|
339
|
-
export { type AllCacheOptions, type BasicInput, type ComponentLoaderArgs, type FetchProjectPayload, type FetchProjectRequestBody, type FetchWithCacheOptions, type HydrogenComponent, type HydrogenComponentData, type HydrogenComponentLoaderFunction, type HydrogenComponentPresets, type HydrogenComponentProps, type HydrogenComponentSchema, type HydrogenElement, type HydrogenPageAssignment, type HydrogenPageConfigs, type HydrogenPageData, type HydrogenProjectConfig, type HydrogenProjectType, type HydrogenThemeEnv, type HydrogenThemeInfo, type HydrogenThemeSchema, type HydrogenThemeSettings, type HydrogenToolbarAction, type I18nLocale, type InspectorGroup, type LoadPageParams, type Locale, type Localizations, type PageAssignmentParams, type PageType, type PublicEnv, type RootRouteData, type RouteLoaderArgs, ThemeSettingsStore, type WeaverseArticle, type WeaverseBlog, WeaverseClient, type WeaverseClientArgs, type WeaverseCollection, WeaverseHydrogen, WeaverseHydrogenItem, type WeaverseHydrogenParams, WeaverseHydrogenRoot, type WeaverseHydrogenRootProps, type WeaverseInternal, type WeaverseLoaderData, type WeaverseLoaderRequestInfo, type WeaverseProduct, type WeaverseProjectConfigs, type WeaverseStorefrontData, type WeaverseStudioQueries, type WeaverseThemeConfigs, getRequestQueries, getSelectedProductOptions, getWeaverseConfigs, useThemeSettings, withWeaverse };
|
|
345
|
+
export { type AllCacheOptions, type BasicInput, type ComponentLoaderArgs, type FetchProjectPayload, type FetchProjectRequestBody, type FetchWithCacheOptions, type HeadingInput, type HeadingInputType, type HydrogenComponent, type HydrogenComponentData, type HydrogenComponentLoaderFunction, type HydrogenComponentPresets, type HydrogenComponentProps, type HydrogenComponentSchema, type HydrogenElement, type HydrogenPageAssignment, type HydrogenPageConfigs, type HydrogenPageData, type HydrogenProjectConfig, type HydrogenProjectType, type HydrogenThemeEnv, type HydrogenThemeInfo, type HydrogenThemeSchema, type HydrogenThemeSettings, type HydrogenToolbarAction, type I18nLocale, type InspectorGroup, type LoadPageParams, type Locale, type Localizations, type PageAssignmentParams, type PageType, type PublicEnv, type RootRouteData, type RouteLoaderArgs, ThemeSettingsStore, type WeaverseArticle, type WeaverseBlog, WeaverseClient, type WeaverseClientArgs, type WeaverseCollection, WeaverseHydrogen, WeaverseHydrogenItem, type WeaverseHydrogenParams, WeaverseHydrogenRoot, type WeaverseHydrogenRootProps, type WeaverseInternal, type WeaverseLoaderData, type WeaverseLoaderRequestInfo, type WeaverseProduct, type WeaverseProjectConfigs, type WeaverseStorefrontData, type WeaverseStudioQueries, type WeaverseThemeConfigs, getRequestQueries, getSelectedProductOptions, getWeaverseConfigs, useThemeSettings, withWeaverse };
|
package/dist/index.js
CHANGED
|
@@ -79,17 +79,13 @@ var import_react2 = require("@weaverse/react");
|
|
|
79
79
|
var import_react3 = require("react");
|
|
80
80
|
function createCachedWeaverseInstance(params, components) {
|
|
81
81
|
if (import_react2.isBrowser) {
|
|
82
|
-
window.__weaverses = window.__weaverses ||
|
|
83
|
-
let weaverse = window.__weaverses.
|
|
84
|
-
let { pathname } = w.requestInfo;
|
|
85
|
-
return pathname === params.requestInfo.pathname;
|
|
86
|
-
});
|
|
82
|
+
window.__weaverses = window.__weaverses || {};
|
|
83
|
+
let weaverse = window.__weaverses[params.pageId];
|
|
87
84
|
if (!weaverse) {
|
|
88
85
|
weaverse = new WeaverseHydrogen(params, components);
|
|
89
|
-
window.__weaverses.
|
|
86
|
+
window.__weaverses[params.pageId] = weaverse;
|
|
90
87
|
} else if (weaverse.isDesignMode) {
|
|
91
|
-
|
|
92
|
-
weaverse.setProjectData(params.data);
|
|
88
|
+
window.weaverseStudio?.refresh(params);
|
|
93
89
|
}
|
|
94
90
|
return weaverse;
|
|
95
91
|
}
|
|
@@ -185,41 +181,38 @@ function useThemeContext() {
|
|
|
185
181
|
// src/hooks/use-studio.ts
|
|
186
182
|
function useStudio(weaverse) {
|
|
187
183
|
let { revalidate } = (0, import_react7.useRevalidator)();
|
|
184
|
+
let { pathname, search } = (0, import_react7.useLocation)();
|
|
188
185
|
let navigate = (0, import_react7.useNavigate)();
|
|
189
186
|
let themeSettingsStore = useThemeContext();
|
|
190
187
|
let { isDesignMode, weaverseHost, weaverseVersion } = weaverse;
|
|
191
|
-
let isStudio = import_react8.isIframe && isDesignMode && weaverseHost && weaverseVersion;
|
|
192
188
|
(0, import_react9.useEffect)(() => {
|
|
193
|
-
if (
|
|
189
|
+
if (isDesignMode) {
|
|
194
190
|
weaverse.internal = {
|
|
195
191
|
...weaverse.internal,
|
|
196
192
|
navigate,
|
|
197
193
|
revalidate,
|
|
198
194
|
themeSettingsStore
|
|
199
195
|
};
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
window.weaverseStudio
|
|
203
|
-
}
|
|
204
|
-
let studioSrc = `${weaverseHost}/static/studio/hydrogen/index.js?v=${weaverseVersion}`;
|
|
205
|
-
(0, import_react8.loadScript)(studioSrc);
|
|
206
|
-
}
|
|
196
|
+
let studioSrc = `${weaverseHost}/static/studio/hydrogen/index.js?v=${weaverseVersion}`;
|
|
197
|
+
(0, import_react8.loadScript)(studioSrc).then(() => {
|
|
198
|
+
window.weaverseStudio?.init(weaverse);
|
|
199
|
+
}).catch(console.error);
|
|
207
200
|
}
|
|
208
|
-
}, [
|
|
201
|
+
}, [pathname, search]);
|
|
209
202
|
}
|
|
210
203
|
|
|
211
204
|
// src/pixel.tsx
|
|
212
205
|
var import_react10 = __toESM(require("react"));
|
|
213
|
-
|
|
206
|
+
function Pixel({ baseUrl, projectId, pageId }) {
|
|
214
207
|
const url = `${baseUrl}/api/public/px?projectId=${projectId}&pageId=${pageId}`;
|
|
215
208
|
return /* @__PURE__ */ import_react10.default.createElement("img", { src: url, alt: "weaverse pixel", style: { display: "none" } });
|
|
216
|
-
}
|
|
217
|
-
|
|
209
|
+
}
|
|
210
|
+
function WeaversePixel({ context }) {
|
|
218
211
|
let { projectId, pageId, weaverseHost, isDesignMode } = context;
|
|
219
212
|
if (isDesignMode || !projectId || !pageId || !weaverseHost)
|
|
220
213
|
return null;
|
|
221
214
|
return /* @__PURE__ */ import_react10.default.createElement(Pixel, { baseUrl: weaverseHost, projectId, pageId });
|
|
222
|
-
}
|
|
215
|
+
}
|
|
223
216
|
|
|
224
217
|
// src/WeaverseHydrogenRoot.tsx
|
|
225
218
|
var WeaverseHydrogenRoot = (0, import_react13.memo)(
|
|
@@ -270,7 +263,7 @@ var package_default = {
|
|
|
270
263
|
name: "@weaverse/hydrogen",
|
|
271
264
|
author: "Weaverse Team",
|
|
272
265
|
description: "Components, hooks, and utilities for building Shopify Hydrogen websites with Weaverse",
|
|
273
|
-
version: "2.
|
|
266
|
+
version: "2.8.0",
|
|
274
267
|
license: "MIT",
|
|
275
268
|
main: "dist/index.js",
|
|
276
269
|
typings: "dist/index.d.ts",
|
|
@@ -308,7 +301,7 @@ var package_default = {
|
|
|
308
301
|
singleQuote: true
|
|
309
302
|
},
|
|
310
303
|
dependencies: {
|
|
311
|
-
"@weaverse/react": "2.
|
|
304
|
+
"@weaverse/react": "2.8.0",
|
|
312
305
|
"react-error-boundary": "^4.0.11"
|
|
313
306
|
},
|
|
314
307
|
devDependencies: {
|
|
@@ -337,7 +330,13 @@ function getWeaverseConfigs(request, env) {
|
|
|
337
330
|
PUBLIC_STOREFRONT_API_TOKEN
|
|
338
331
|
} = env || {};
|
|
339
332
|
let envFromProcess = typeof process !== "undefined" && process.env || {};
|
|
340
|
-
let {
|
|
333
|
+
let {
|
|
334
|
+
weaverseProjectId,
|
|
335
|
+
weaverseHost,
|
|
336
|
+
isDesignMode,
|
|
337
|
+
weaverseVersion,
|
|
338
|
+
weaverseApiKey
|
|
339
|
+
} = queries;
|
|
341
340
|
return {
|
|
342
341
|
projectId: weaverseProjectId || WEAVERSE_PROJECT_ID || envFromProcess.WEAVERSE_PROJECT_ID || "",
|
|
343
342
|
weaverseHost: weaverseHost || WEAVERSE_HOST || envFromProcess.WEAVERSE_HOST || "https://weaverse.io",
|
|
@@ -413,10 +412,13 @@ var WeaverseClient = class {
|
|
|
413
412
|
} = options;
|
|
414
413
|
let res = this.withCache(cacheKey, strategy, async () => {
|
|
415
414
|
let cacheControlHeader = (0, import_hydrogen.generateCacheControlHeader)(strategy);
|
|
416
|
-
let response = await fetch(url, {
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
415
|
+
let response = await fetch(url, {
|
|
416
|
+
...reqInit,
|
|
417
|
+
headers: {
|
|
418
|
+
"Cache-Control": cacheControlHeader,
|
|
419
|
+
...reqInit.headers
|
|
420
|
+
}
|
|
421
|
+
});
|
|
420
422
|
if (!response.ok) {
|
|
421
423
|
let error = await response.text();
|
|
422
424
|
let { status, statusText } = response;
|
|
@@ -504,12 +506,15 @@ var WeaverseClient = class {
|
|
|
504
506
|
strategy
|
|
505
507
|
});
|
|
506
508
|
}
|
|
509
|
+
if (payload?.error) {
|
|
510
|
+
throw new Error(payload?.error);
|
|
511
|
+
}
|
|
507
512
|
let { page, project, pageAssignment } = payload;
|
|
508
|
-
if (!
|
|
509
|
-
throw new Error(
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
);
|
|
513
|
+
if (!project) {
|
|
514
|
+
throw new Error(`Weaverse project not found. Id: ${projectId}`);
|
|
515
|
+
}
|
|
516
|
+
if (!page) {
|
|
517
|
+
throw new Error(`No Weaverse page assigned to this url.`);
|
|
513
518
|
}
|
|
514
519
|
if (page?.items) {
|
|
515
520
|
let items = page.items;
|
|
@@ -576,6 +581,7 @@ var WeaverseHydrogen = class extends import_react14.Weaverse {
|
|
|
576
581
|
internal;
|
|
577
582
|
requestInfo;
|
|
578
583
|
constructor(params, components) {
|
|
584
|
+
console.log("\u{1F4BF} New WeaverseHydrogen", params);
|
|
579
585
|
let { internal, pageId, requestInfo, ...coreParams } = params;
|
|
580
586
|
super({ ...coreParams, ItemConstructor: WeaverseHydrogenItem });
|
|
581
587
|
this.internal = internal;
|
package/dist/index.mjs
CHANGED
|
@@ -45,17 +45,13 @@ import { isBrowser } from "@weaverse/react";
|
|
|
45
45
|
import { createContext } from "react";
|
|
46
46
|
function createCachedWeaverseInstance(params, components) {
|
|
47
47
|
if (isBrowser) {
|
|
48
|
-
window.__weaverses = window.__weaverses ||
|
|
49
|
-
let weaverse = window.__weaverses.
|
|
50
|
-
let { pathname } = w.requestInfo;
|
|
51
|
-
return pathname === params.requestInfo.pathname;
|
|
52
|
-
});
|
|
48
|
+
window.__weaverses = window.__weaverses || {};
|
|
49
|
+
let weaverse = window.__weaverses[params.pageId];
|
|
53
50
|
if (!weaverse) {
|
|
54
51
|
weaverse = new WeaverseHydrogen(params, components);
|
|
55
|
-
window.__weaverses.
|
|
52
|
+
window.__weaverses[params.pageId] = weaverse;
|
|
56
53
|
} else if (weaverse.isDesignMode) {
|
|
57
|
-
|
|
58
|
-
weaverse.setProjectData(params.data);
|
|
54
|
+
window.weaverseStudio?.refresh(params);
|
|
59
55
|
}
|
|
60
56
|
return weaverse;
|
|
61
57
|
}
|
|
@@ -77,8 +73,8 @@ var ThemeProvider = createContext(null);
|
|
|
77
73
|
ThemeProvider.displayName = "WeaverseThemeProvider";
|
|
78
74
|
|
|
79
75
|
// src/hooks/use-studio.ts
|
|
80
|
-
import { useNavigate, useRevalidator } from "@remix-run/react";
|
|
81
|
-
import {
|
|
76
|
+
import { useLocation, useNavigate, useRevalidator } from "@remix-run/react";
|
|
77
|
+
import { loadScript } from "@weaverse/react";
|
|
82
78
|
import { useEffect } from "react";
|
|
83
79
|
|
|
84
80
|
// src/hooks/use-theme-context.ts
|
|
@@ -151,41 +147,38 @@ function useThemeContext() {
|
|
|
151
147
|
// src/hooks/use-studio.ts
|
|
152
148
|
function useStudio(weaverse) {
|
|
153
149
|
let { revalidate } = useRevalidator();
|
|
150
|
+
let { pathname, search } = useLocation();
|
|
154
151
|
let navigate = useNavigate();
|
|
155
152
|
let themeSettingsStore = useThemeContext();
|
|
156
153
|
let { isDesignMode, weaverseHost, weaverseVersion } = weaverse;
|
|
157
|
-
let isStudio = isIframe && isDesignMode && weaverseHost && weaverseVersion;
|
|
158
154
|
useEffect(() => {
|
|
159
|
-
if (
|
|
155
|
+
if (isDesignMode) {
|
|
160
156
|
weaverse.internal = {
|
|
161
157
|
...weaverse.internal,
|
|
162
158
|
navigate,
|
|
163
159
|
revalidate,
|
|
164
160
|
themeSettingsStore
|
|
165
161
|
};
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
window.weaverseStudio
|
|
169
|
-
}
|
|
170
|
-
let studioSrc = `${weaverseHost}/static/studio/hydrogen/index.js?v=${weaverseVersion}`;
|
|
171
|
-
loadScript(studioSrc);
|
|
172
|
-
}
|
|
162
|
+
let studioSrc = `${weaverseHost}/static/studio/hydrogen/index.js?v=${weaverseVersion}`;
|
|
163
|
+
loadScript(studioSrc).then(() => {
|
|
164
|
+
window.weaverseStudio?.init(weaverse);
|
|
165
|
+
}).catch(console.error);
|
|
173
166
|
}
|
|
174
|
-
}, [
|
|
167
|
+
}, [pathname, search]);
|
|
175
168
|
}
|
|
176
169
|
|
|
177
170
|
// src/pixel.tsx
|
|
178
171
|
import React2 from "react";
|
|
179
|
-
|
|
172
|
+
function Pixel({ baseUrl, projectId, pageId }) {
|
|
180
173
|
const url = `${baseUrl}/api/public/px?projectId=${projectId}&pageId=${pageId}`;
|
|
181
174
|
return /* @__PURE__ */ React2.createElement("img", { src: url, alt: "weaverse pixel", style: { display: "none" } });
|
|
182
|
-
}
|
|
183
|
-
|
|
175
|
+
}
|
|
176
|
+
function WeaversePixel({ context }) {
|
|
184
177
|
let { projectId, pageId, weaverseHost, isDesignMode } = context;
|
|
185
178
|
if (isDesignMode || !projectId || !pageId || !weaverseHost)
|
|
186
179
|
return null;
|
|
187
180
|
return /* @__PURE__ */ React2.createElement(Pixel, { baseUrl: weaverseHost, projectId, pageId });
|
|
188
|
-
}
|
|
181
|
+
}
|
|
189
182
|
|
|
190
183
|
// src/WeaverseHydrogenRoot.tsx
|
|
191
184
|
var WeaverseHydrogenRoot = memo(
|
|
@@ -236,7 +229,7 @@ var package_default = {
|
|
|
236
229
|
name: "@weaverse/hydrogen",
|
|
237
230
|
author: "Weaverse Team",
|
|
238
231
|
description: "Components, hooks, and utilities for building Shopify Hydrogen websites with Weaverse",
|
|
239
|
-
version: "2.
|
|
232
|
+
version: "2.8.0",
|
|
240
233
|
license: "MIT",
|
|
241
234
|
main: "dist/index.js",
|
|
242
235
|
typings: "dist/index.d.ts",
|
|
@@ -274,7 +267,7 @@ var package_default = {
|
|
|
274
267
|
singleQuote: true
|
|
275
268
|
},
|
|
276
269
|
dependencies: {
|
|
277
|
-
"@weaverse/react": "2.
|
|
270
|
+
"@weaverse/react": "2.8.0",
|
|
278
271
|
"react-error-boundary": "^4.0.11"
|
|
279
272
|
},
|
|
280
273
|
devDependencies: {
|
|
@@ -303,7 +296,13 @@ function getWeaverseConfigs(request, env) {
|
|
|
303
296
|
PUBLIC_STOREFRONT_API_TOKEN
|
|
304
297
|
} = env || {};
|
|
305
298
|
let envFromProcess = typeof process !== "undefined" && process.env || {};
|
|
306
|
-
let {
|
|
299
|
+
let {
|
|
300
|
+
weaverseProjectId,
|
|
301
|
+
weaverseHost,
|
|
302
|
+
isDesignMode,
|
|
303
|
+
weaverseVersion,
|
|
304
|
+
weaverseApiKey
|
|
305
|
+
} = queries;
|
|
307
306
|
return {
|
|
308
307
|
projectId: weaverseProjectId || WEAVERSE_PROJECT_ID || envFromProcess.WEAVERSE_PROJECT_ID || "",
|
|
309
308
|
weaverseHost: weaverseHost || WEAVERSE_HOST || envFromProcess.WEAVERSE_HOST || "https://weaverse.io",
|
|
@@ -379,10 +378,13 @@ var WeaverseClient = class {
|
|
|
379
378
|
} = options;
|
|
380
379
|
let res = this.withCache(cacheKey, strategy, async () => {
|
|
381
380
|
let cacheControlHeader = generateCacheControlHeader(strategy);
|
|
382
|
-
let response = await fetch(url, {
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
381
|
+
let response = await fetch(url, {
|
|
382
|
+
...reqInit,
|
|
383
|
+
headers: {
|
|
384
|
+
"Cache-Control": cacheControlHeader,
|
|
385
|
+
...reqInit.headers
|
|
386
|
+
}
|
|
387
|
+
});
|
|
386
388
|
if (!response.ok) {
|
|
387
389
|
let error = await response.text();
|
|
388
390
|
let { status, statusText } = response;
|
|
@@ -470,12 +472,15 @@ var WeaverseClient = class {
|
|
|
470
472
|
strategy
|
|
471
473
|
});
|
|
472
474
|
}
|
|
475
|
+
if (payload?.error) {
|
|
476
|
+
throw new Error(payload?.error);
|
|
477
|
+
}
|
|
473
478
|
let { page, project, pageAssignment } = payload;
|
|
474
|
-
if (!
|
|
475
|
-
throw new Error(
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
);
|
|
479
|
+
if (!project) {
|
|
480
|
+
throw new Error(`Weaverse project not found. Id: ${projectId}`);
|
|
481
|
+
}
|
|
482
|
+
if (!page) {
|
|
483
|
+
throw new Error(`No Weaverse page assigned to this url.`);
|
|
479
484
|
}
|
|
480
485
|
if (page?.items) {
|
|
481
486
|
let items = page.items;
|
|
@@ -542,6 +547,7 @@ var WeaverseHydrogen = class extends Weaverse {
|
|
|
542
547
|
internal;
|
|
543
548
|
requestInfo;
|
|
544
549
|
constructor(params, components) {
|
|
550
|
+
console.log("\u{1F4BF} New WeaverseHydrogen", params);
|
|
545
551
|
let { internal, pageId, requestInfo, ...coreParams } = params;
|
|
546
552
|
super({ ...coreParams, ItemConstructor: WeaverseHydrogenItem });
|
|
547
553
|
this.internal = internal;
|
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.
|
|
5
|
+
"version": "2.8.0",
|
|
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.
|
|
43
|
+
"@weaverse/react": "2.8.0",
|
|
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
|
+
}
|