@weaverse/hydrogen 1.1.19 → 1.2.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 +31 -8
- package/dist/index.d.ts +31 -8
- package/dist/index.js +115 -101
- package/dist/index.mjs +105 -97
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -123,12 +123,11 @@ type WeaverseThemeConfigs = {
|
|
|
123
123
|
countries: Localizations;
|
|
124
124
|
};
|
|
125
125
|
type WeaverseInternal = {
|
|
126
|
-
themeConfigs: WeaverseThemeConfigs;
|
|
127
126
|
pageAssignment: HydrogenPageAssignment;
|
|
128
127
|
project: HydrogenProjectType;
|
|
129
128
|
navigate: NavigateFunction;
|
|
130
129
|
revalidate: () => void;
|
|
131
|
-
|
|
130
|
+
themeSettingsStore: WeaverseThemeSettingsStore;
|
|
132
131
|
};
|
|
133
132
|
type HydrogenComponentPresets = {
|
|
134
133
|
type: string;
|
|
@@ -201,7 +200,7 @@ type HydrogenPageData = {
|
|
|
201
200
|
};
|
|
202
201
|
interface WeaverseHydrogenRootProps {
|
|
203
202
|
components: HydrogenComponent[];
|
|
204
|
-
errorComponent
|
|
203
|
+
errorComponent?: React__default.FC<{
|
|
205
204
|
error: {
|
|
206
205
|
message: string;
|
|
207
206
|
stack?: string;
|
|
@@ -229,7 +228,7 @@ type PageLoadParams = {
|
|
|
229
228
|
type FetchProjectRequestBody = {
|
|
230
229
|
projectId: string;
|
|
231
230
|
url: string;
|
|
232
|
-
countries
|
|
231
|
+
countries?: Localizations;
|
|
233
232
|
i18n?: I18nLocale;
|
|
234
233
|
params?: PageLoadParams;
|
|
235
234
|
isDesignMode?: boolean;
|
|
@@ -244,6 +243,12 @@ type WeaverseThemeSettingsStore = {
|
|
|
244
243
|
subscribe(listener: () => void): () => void;
|
|
245
244
|
getSnapshot(): HydrogenThemeSettings | null;
|
|
246
245
|
getServerSnapshot(): HydrogenThemeSettings | null;
|
|
246
|
+
settings: HydrogenThemeSettings | null;
|
|
247
|
+
listeners: (() => void)[];
|
|
248
|
+
emitChange(): void;
|
|
249
|
+
countries: Localizations;
|
|
250
|
+
schema: HydrogenThemeSchema;
|
|
251
|
+
publicEnv?: PublicEnv;
|
|
247
252
|
};
|
|
248
253
|
type HydrogenThemeEnv = {
|
|
249
254
|
WEAVERSE_PROJECT_ID: string;
|
|
@@ -256,7 +261,7 @@ type WeaverseClientArgs = {
|
|
|
256
261
|
configs: WeaverseProjectConfigs;
|
|
257
262
|
storefront: Storefront<I18nLocale>;
|
|
258
263
|
components: HydrogenComponent[];
|
|
259
|
-
countries
|
|
264
|
+
countries?: Localizations;
|
|
260
265
|
themeSchema: HydrogenThemeSchema;
|
|
261
266
|
};
|
|
262
267
|
type FetchWithCacheOptions = RequestInit & {
|
|
@@ -266,7 +271,6 @@ declare global {
|
|
|
266
271
|
interface Window {
|
|
267
272
|
__weaverse: WeaverseHydrogen;
|
|
268
273
|
__weaverses: WeaverseHydrogen[];
|
|
269
|
-
__weaverseThemeSettingsStore: WeaverseThemeSettingsStore;
|
|
270
274
|
}
|
|
271
275
|
}
|
|
272
276
|
|
|
@@ -275,7 +279,7 @@ declare class WeaverseClient {
|
|
|
275
279
|
clientVersion: string;
|
|
276
280
|
storefront: Storefront<I18nLocale>;
|
|
277
281
|
components: HydrogenComponent[];
|
|
278
|
-
countries
|
|
282
|
+
countries?: Localizations;
|
|
279
283
|
themeSchema: HydrogenThemeSchema;
|
|
280
284
|
configs: WeaverseProjectConfigs;
|
|
281
285
|
basePageConfigs: Omit<WeaverseProjectConfigs, 'requestInfo'>;
|
|
@@ -291,6 +295,24 @@ declare class WeaverseClient {
|
|
|
291
295
|
}
|
|
292
296
|
declare function createWeaverseClient(args: WeaverseClientArgs): WeaverseClient;
|
|
293
297
|
|
|
298
|
+
declare class ThemeSettingsStore implements WeaverseThemeSettingsStore {
|
|
299
|
+
settings: HydrogenThemeSettings | null;
|
|
300
|
+
listeners: (() => void)[];
|
|
301
|
+
countries: Localizations;
|
|
302
|
+
schema: HydrogenThemeSchema;
|
|
303
|
+
publicEnv?: PublicEnv;
|
|
304
|
+
constructor({ theme, countries, schema, publicEnv, }: {
|
|
305
|
+
theme: HydrogenThemeSettings;
|
|
306
|
+
countries: Localizations;
|
|
307
|
+
schema: HydrogenThemeSchema;
|
|
308
|
+
publicEnv?: PublicEnv;
|
|
309
|
+
});
|
|
310
|
+
updateThemeSettings: (newSettings: HydrogenThemeSettings) => void;
|
|
311
|
+
subscribe: (listener: () => void) => (() => void);
|
|
312
|
+
getSnapshot: () => HydrogenThemeSettings | null;
|
|
313
|
+
getServerSnapshot: () => HydrogenThemeSettings | null;
|
|
314
|
+
emitChange: () => void;
|
|
315
|
+
}
|
|
294
316
|
declare function useThemeSettings<T = HydrogenThemeSettings>(): T;
|
|
295
317
|
|
|
296
318
|
declare function getRequestQueries<T = Record<string, string | boolean>>(request: Request): T;
|
|
@@ -311,5 +333,6 @@ declare function createContentSecurityPolicy(request: Request, directives?: Reco
|
|
|
311
333
|
};
|
|
312
334
|
|
|
313
335
|
declare function WeaverseHydrogenRoot({ errorComponent: ErrorComponent, components, }: WeaverseHydrogenRootProps): React__default.JSX.Element;
|
|
336
|
+
declare let withWeaverse: (Component: React__default.ComponentType<any>) => (props: any) => React__default.JSX.Element;
|
|
314
337
|
|
|
315
|
-
export { AllCacheOptions, ComponentLoaderArgs, FetchProjectPayload, FetchProjectRequestBody, FetchWithCacheOptions, HydrogenComponent, HydrogenComponentData, HydrogenComponentInstance, HydrogenComponentLoaderFunction, HydrogenComponentPresets, HydrogenComponentProps, HydrogenComponentSchema, HydrogenElement, HydrogenPageAssignment, HydrogenPageConfigs, HydrogenPageData, HydrogenProjectConfig, HydrogenProjectType, HydrogenThemeEnv, HydrogenThemeInfo, HydrogenThemeSchema, HydrogenThemeSettings, HydrogenToolbarAction, I18nLocale, InspectorGroup, Locale, Localizations, PageLoadParams, PageType, PublicEnv, RouteLoaderArgs, WeaverseClient, WeaverseClientArgs, WeaverseHydrogen, WeaverseHydrogenInit, WeaverseHydrogenRoot, WeaverseHydrogenRootProps, WeaverseInternal, WeaverseLoaderData, WeaverseLoaderRequestInfo, WeaverseProjectConfigs, WeaverseStorefrontData, WeaverseStudioQueries, WeaverseThemeConfigs, WeaverseThemeSettingsStore, createContentSecurityPolicy, createWeaverseClient, getRequestQueries, getSelectedProductOptions, getWeaverseConfigs, getWeaverseCsp, useThemeSettings };
|
|
338
|
+
export { AllCacheOptions, ComponentLoaderArgs, FetchProjectPayload, FetchProjectRequestBody, FetchWithCacheOptions, HydrogenComponent, HydrogenComponentData, HydrogenComponentInstance, HydrogenComponentLoaderFunction, HydrogenComponentPresets, HydrogenComponentProps, HydrogenComponentSchema, HydrogenElement, HydrogenPageAssignment, HydrogenPageConfigs, HydrogenPageData, HydrogenProjectConfig, HydrogenProjectType, HydrogenThemeEnv, HydrogenThemeInfo, HydrogenThemeSchema, HydrogenThemeSettings, HydrogenToolbarAction, I18nLocale, InspectorGroup, Locale, Localizations, PageLoadParams, PageType, PublicEnv, RouteLoaderArgs, ThemeSettingsStore, WeaverseClient, WeaverseClientArgs, WeaverseHydrogen, WeaverseHydrogenInit, WeaverseHydrogenRoot, WeaverseHydrogenRootProps, WeaverseInternal, WeaverseLoaderData, WeaverseLoaderRequestInfo, WeaverseProjectConfigs, WeaverseStorefrontData, WeaverseStudioQueries, WeaverseThemeConfigs, WeaverseThemeSettingsStore, createContentSecurityPolicy, createWeaverseClient, getRequestQueries, getSelectedProductOptions, getWeaverseConfigs, getWeaverseCsp, useThemeSettings, withWeaverse };
|
package/dist/index.d.ts
CHANGED
|
@@ -123,12 +123,11 @@ type WeaverseThemeConfigs = {
|
|
|
123
123
|
countries: Localizations;
|
|
124
124
|
};
|
|
125
125
|
type WeaverseInternal = {
|
|
126
|
-
themeConfigs: WeaverseThemeConfigs;
|
|
127
126
|
pageAssignment: HydrogenPageAssignment;
|
|
128
127
|
project: HydrogenProjectType;
|
|
129
128
|
navigate: NavigateFunction;
|
|
130
129
|
revalidate: () => void;
|
|
131
|
-
|
|
130
|
+
themeSettingsStore: WeaverseThemeSettingsStore;
|
|
132
131
|
};
|
|
133
132
|
type HydrogenComponentPresets = {
|
|
134
133
|
type: string;
|
|
@@ -201,7 +200,7 @@ type HydrogenPageData = {
|
|
|
201
200
|
};
|
|
202
201
|
interface WeaverseHydrogenRootProps {
|
|
203
202
|
components: HydrogenComponent[];
|
|
204
|
-
errorComponent
|
|
203
|
+
errorComponent?: React__default.FC<{
|
|
205
204
|
error: {
|
|
206
205
|
message: string;
|
|
207
206
|
stack?: string;
|
|
@@ -229,7 +228,7 @@ type PageLoadParams = {
|
|
|
229
228
|
type FetchProjectRequestBody = {
|
|
230
229
|
projectId: string;
|
|
231
230
|
url: string;
|
|
232
|
-
countries
|
|
231
|
+
countries?: Localizations;
|
|
233
232
|
i18n?: I18nLocale;
|
|
234
233
|
params?: PageLoadParams;
|
|
235
234
|
isDesignMode?: boolean;
|
|
@@ -244,6 +243,12 @@ type WeaverseThemeSettingsStore = {
|
|
|
244
243
|
subscribe(listener: () => void): () => void;
|
|
245
244
|
getSnapshot(): HydrogenThemeSettings | null;
|
|
246
245
|
getServerSnapshot(): HydrogenThemeSettings | null;
|
|
246
|
+
settings: HydrogenThemeSettings | null;
|
|
247
|
+
listeners: (() => void)[];
|
|
248
|
+
emitChange(): void;
|
|
249
|
+
countries: Localizations;
|
|
250
|
+
schema: HydrogenThemeSchema;
|
|
251
|
+
publicEnv?: PublicEnv;
|
|
247
252
|
};
|
|
248
253
|
type HydrogenThemeEnv = {
|
|
249
254
|
WEAVERSE_PROJECT_ID: string;
|
|
@@ -256,7 +261,7 @@ type WeaverseClientArgs = {
|
|
|
256
261
|
configs: WeaverseProjectConfigs;
|
|
257
262
|
storefront: Storefront<I18nLocale>;
|
|
258
263
|
components: HydrogenComponent[];
|
|
259
|
-
countries
|
|
264
|
+
countries?: Localizations;
|
|
260
265
|
themeSchema: HydrogenThemeSchema;
|
|
261
266
|
};
|
|
262
267
|
type FetchWithCacheOptions = RequestInit & {
|
|
@@ -266,7 +271,6 @@ declare global {
|
|
|
266
271
|
interface Window {
|
|
267
272
|
__weaverse: WeaverseHydrogen;
|
|
268
273
|
__weaverses: WeaverseHydrogen[];
|
|
269
|
-
__weaverseThemeSettingsStore: WeaverseThemeSettingsStore;
|
|
270
274
|
}
|
|
271
275
|
}
|
|
272
276
|
|
|
@@ -275,7 +279,7 @@ declare class WeaverseClient {
|
|
|
275
279
|
clientVersion: string;
|
|
276
280
|
storefront: Storefront<I18nLocale>;
|
|
277
281
|
components: HydrogenComponent[];
|
|
278
|
-
countries
|
|
282
|
+
countries?: Localizations;
|
|
279
283
|
themeSchema: HydrogenThemeSchema;
|
|
280
284
|
configs: WeaverseProjectConfigs;
|
|
281
285
|
basePageConfigs: Omit<WeaverseProjectConfigs, 'requestInfo'>;
|
|
@@ -291,6 +295,24 @@ declare class WeaverseClient {
|
|
|
291
295
|
}
|
|
292
296
|
declare function createWeaverseClient(args: WeaverseClientArgs): WeaverseClient;
|
|
293
297
|
|
|
298
|
+
declare class ThemeSettingsStore implements WeaverseThemeSettingsStore {
|
|
299
|
+
settings: HydrogenThemeSettings | null;
|
|
300
|
+
listeners: (() => void)[];
|
|
301
|
+
countries: Localizations;
|
|
302
|
+
schema: HydrogenThemeSchema;
|
|
303
|
+
publicEnv?: PublicEnv;
|
|
304
|
+
constructor({ theme, countries, schema, publicEnv, }: {
|
|
305
|
+
theme: HydrogenThemeSettings;
|
|
306
|
+
countries: Localizations;
|
|
307
|
+
schema: HydrogenThemeSchema;
|
|
308
|
+
publicEnv?: PublicEnv;
|
|
309
|
+
});
|
|
310
|
+
updateThemeSettings: (newSettings: HydrogenThemeSettings) => void;
|
|
311
|
+
subscribe: (listener: () => void) => (() => void);
|
|
312
|
+
getSnapshot: () => HydrogenThemeSettings | null;
|
|
313
|
+
getServerSnapshot: () => HydrogenThemeSettings | null;
|
|
314
|
+
emitChange: () => void;
|
|
315
|
+
}
|
|
294
316
|
declare function useThemeSettings<T = HydrogenThemeSettings>(): T;
|
|
295
317
|
|
|
296
318
|
declare function getRequestQueries<T = Record<string, string | boolean>>(request: Request): T;
|
|
@@ -311,5 +333,6 @@ declare function createContentSecurityPolicy(request: Request, directives?: Reco
|
|
|
311
333
|
};
|
|
312
334
|
|
|
313
335
|
declare function WeaverseHydrogenRoot({ errorComponent: ErrorComponent, components, }: WeaverseHydrogenRootProps): React__default.JSX.Element;
|
|
336
|
+
declare let withWeaverse: (Component: React__default.ComponentType<any>) => (props: any) => React__default.JSX.Element;
|
|
314
337
|
|
|
315
|
-
export { AllCacheOptions, ComponentLoaderArgs, FetchProjectPayload, FetchProjectRequestBody, FetchWithCacheOptions, HydrogenComponent, HydrogenComponentData, HydrogenComponentInstance, HydrogenComponentLoaderFunction, HydrogenComponentPresets, HydrogenComponentProps, HydrogenComponentSchema, HydrogenElement, HydrogenPageAssignment, HydrogenPageConfigs, HydrogenPageData, HydrogenProjectConfig, HydrogenProjectType, HydrogenThemeEnv, HydrogenThemeInfo, HydrogenThemeSchema, HydrogenThemeSettings, HydrogenToolbarAction, I18nLocale, InspectorGroup, Locale, Localizations, PageLoadParams, PageType, PublicEnv, RouteLoaderArgs, WeaverseClient, WeaverseClientArgs, WeaverseHydrogen, WeaverseHydrogenInit, WeaverseHydrogenRoot, WeaverseHydrogenRootProps, WeaverseInternal, WeaverseLoaderData, WeaverseLoaderRequestInfo, WeaverseProjectConfigs, WeaverseStorefrontData, WeaverseStudioQueries, WeaverseThemeConfigs, WeaverseThemeSettingsStore, createContentSecurityPolicy, createWeaverseClient, getRequestQueries, getSelectedProductOptions, getWeaverseConfigs, getWeaverseCsp, useThemeSettings };
|
|
338
|
+
export { AllCacheOptions, ComponentLoaderArgs, FetchProjectPayload, FetchProjectRequestBody, FetchWithCacheOptions, HydrogenComponent, HydrogenComponentData, HydrogenComponentInstance, HydrogenComponentLoaderFunction, HydrogenComponentPresets, HydrogenComponentProps, HydrogenComponentSchema, HydrogenElement, HydrogenPageAssignment, HydrogenPageConfigs, HydrogenPageData, HydrogenProjectConfig, HydrogenProjectType, HydrogenThemeEnv, HydrogenThemeInfo, HydrogenThemeSchema, HydrogenThemeSettings, HydrogenToolbarAction, I18nLocale, InspectorGroup, Locale, Localizations, PageLoadParams, PageType, PublicEnv, RouteLoaderArgs, ThemeSettingsStore, WeaverseClient, WeaverseClientArgs, WeaverseHydrogen, WeaverseHydrogenInit, WeaverseHydrogenRoot, WeaverseHydrogenRootProps, WeaverseInternal, WeaverseLoaderData, WeaverseLoaderRequestInfo, WeaverseProjectConfigs, WeaverseStorefrontData, WeaverseStudioQueries, WeaverseThemeConfigs, WeaverseThemeSettingsStore, createContentSecurityPolicy, createWeaverseClient, getRequestQueries, getSelectedProductOptions, getWeaverseConfigs, getWeaverseCsp, useThemeSettings, withWeaverse };
|
package/dist/index.js
CHANGED
|
@@ -31,6 +31,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
31
31
|
// src/index.ts
|
|
32
32
|
var src_exports = {};
|
|
33
33
|
__export(src_exports, {
|
|
34
|
+
ThemeSettingsStore: () => ThemeSettingsStore,
|
|
34
35
|
WeaverseClient: () => WeaverseClient,
|
|
35
36
|
WeaverseHydrogenRoot: () => WeaverseHydrogenRoot,
|
|
36
37
|
createContentSecurityPolicy: () => createContentSecurityPolicy,
|
|
@@ -39,7 +40,8 @@ __export(src_exports, {
|
|
|
39
40
|
getSelectedProductOptions: () => getSelectedProductOptions,
|
|
40
41
|
getWeaverseConfigs: () => getWeaverseConfigs,
|
|
41
42
|
getWeaverseCsp: () => getWeaverseCsp,
|
|
42
|
-
useThemeSettings: () => useThemeSettings
|
|
43
|
+
useThemeSettings: () => useThemeSettings,
|
|
44
|
+
withWeaverse: () => withWeaverse
|
|
43
45
|
});
|
|
44
46
|
module.exports = __toCommonJS(src_exports);
|
|
45
47
|
__reExport(src_exports, require("@weaverse/react"), module.exports);
|
|
@@ -49,7 +51,7 @@ var import_hydrogen = require("@shopify/hydrogen");
|
|
|
49
51
|
|
|
50
52
|
// package.json
|
|
51
53
|
var package_default = {
|
|
52
|
-
version: "1.1.
|
|
54
|
+
version: "1.1.20",
|
|
53
55
|
license: "MIT",
|
|
54
56
|
main: "dist/index.js",
|
|
55
57
|
typings: "dist/index.d.ts",
|
|
@@ -84,7 +86,7 @@ var package_default = {
|
|
|
84
86
|
dependencies: {
|
|
85
87
|
"@remix-run/react": "1.19.1",
|
|
86
88
|
"@shopify/hydrogen": "2023.7.7",
|
|
87
|
-
"@weaverse/react": "1.1.
|
|
89
|
+
"@weaverse/react": "1.1.20",
|
|
88
90
|
"react-error-boundary": "^4.0.11"
|
|
89
91
|
},
|
|
90
92
|
devDependencies: {
|
|
@@ -294,86 +296,13 @@ function createWeaverseClient(args) {
|
|
|
294
296
|
}
|
|
295
297
|
|
|
296
298
|
// src/hooks/use-theme-settings.ts
|
|
297
|
-
var import_react = require("@remix-run/react");
|
|
298
|
-
var import_react2 = require("@weaverse/react");
|
|
299
299
|
var import_react3 = require("react");
|
|
300
|
-
var settings = null;
|
|
301
|
-
var listeners = [];
|
|
302
|
-
var themeSettingsStore = {
|
|
303
|
-
updateThemeSettings(newSettings) {
|
|
304
|
-
settings = { ...settings, ...newSettings };
|
|
305
|
-
emitChange();
|
|
306
|
-
},
|
|
307
|
-
subscribe(listener) {
|
|
308
|
-
listeners = [...listeners, listener];
|
|
309
|
-
return () => {
|
|
310
|
-
listeners = listeners.filter((l) => l !== listener);
|
|
311
|
-
};
|
|
312
|
-
},
|
|
313
|
-
getSnapshot() {
|
|
314
|
-
return settings;
|
|
315
|
-
},
|
|
316
|
-
getServerSnapshot() {
|
|
317
|
-
return settings;
|
|
318
|
-
}
|
|
319
|
-
};
|
|
320
|
-
function emitChange() {
|
|
321
|
-
for (let listener of listeners) {
|
|
322
|
-
listener();
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
|
-
if (import_react2.isBrowser) {
|
|
326
|
-
window.__weaverseThemeSettingsStore = themeSettingsStore;
|
|
327
|
-
}
|
|
328
|
-
function useThemeSettings() {
|
|
329
|
-
let settings2 = (0, import_react3.useSyncExternalStore)(
|
|
330
|
-
themeSettingsStore.subscribe,
|
|
331
|
-
themeSettingsStore.getSnapshot,
|
|
332
|
-
themeSettingsStore.getServerSnapshot
|
|
333
|
-
);
|
|
334
|
-
let { weaverseTheme } = (0, import_react.useLoaderData)();
|
|
335
|
-
(0, import_react3.useEffect)(() => {
|
|
336
|
-
if (weaverseTheme) {
|
|
337
|
-
let settings3 = weaverseTheme.theme;
|
|
338
|
-
if (settings3) {
|
|
339
|
-
themeSettingsStore.updateThemeSettings(settings3);
|
|
340
|
-
}
|
|
341
|
-
} else {
|
|
342
|
-
console.warn(
|
|
343
|
-
`'weaverseTheme' should be returned from root loader in order to get global settings from 'useThemeSettings'.`
|
|
344
|
-
);
|
|
345
|
-
}
|
|
346
|
-
}, [weaverseTheme]);
|
|
347
|
-
return settings2;
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
// src/wrappers.ts
|
|
351
|
-
var import_hydrogen2 = require("@shopify/hydrogen");
|
|
352
|
-
var import_hydrogen3 = require("@shopify/hydrogen");
|
|
353
|
-
function getSelectedProductOptions(request) {
|
|
354
|
-
let options = (0, import_hydrogen2.getSelectedProductOptions)(request);
|
|
355
|
-
return options.filter(
|
|
356
|
-
({ name }) => name !== "isDesignMode" && !name.startsWith("weaverse")
|
|
357
|
-
);
|
|
358
|
-
}
|
|
359
|
-
function createContentSecurityPolicy(request, directives) {
|
|
360
|
-
let weaverseDirectives = getWeaverseCsp(request);
|
|
361
|
-
return (0, import_hydrogen3.createContentSecurityPolicy)({
|
|
362
|
-
...directives,
|
|
363
|
-
...weaverseDirectives
|
|
364
|
-
});
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
// src/WeaverseHydrogenRoot.tsx
|
|
368
|
-
var import_react8 = require("@remix-run/react");
|
|
369
|
-
var import_react9 = require("@weaverse/react");
|
|
370
|
-
var import_react10 = __toESM(require("react"));
|
|
371
|
-
var import_react_error_boundary = require("react-error-boundary");
|
|
372
300
|
|
|
373
301
|
// src/context.ts
|
|
374
|
-
var
|
|
302
|
+
var import_react = require("@weaverse/react");
|
|
303
|
+
var import_react2 = require("react");
|
|
375
304
|
function createCachedWeaverseInstance(init) {
|
|
376
|
-
if (
|
|
305
|
+
if (import_react.isBrowser) {
|
|
377
306
|
window.__weaverses = window.__weaverses || [];
|
|
378
307
|
let weaverse = window.__weaverses.find((w) => {
|
|
379
308
|
let { pathname, search } = w.requestInfo;
|
|
@@ -381,13 +310,13 @@ function createCachedWeaverseInstance(init) {
|
|
|
381
310
|
return pathname === init.requestInfo.pathname && search === init.requestInfo.search && __cachedId === init.data.__cachedId;
|
|
382
311
|
});
|
|
383
312
|
if (!weaverse) {
|
|
384
|
-
weaverse = new
|
|
313
|
+
weaverse = new import_react.Weaverse(init);
|
|
385
314
|
window.__weaverses.push(weaverse);
|
|
386
315
|
console.log("\u{1F4BF} Weaverse", weaverse);
|
|
387
316
|
}
|
|
388
317
|
return weaverse;
|
|
389
318
|
}
|
|
390
|
-
return new
|
|
319
|
+
return new import_react.Weaverse(init);
|
|
391
320
|
}
|
|
392
321
|
function createWeaverseInstance(weaverseData, components) {
|
|
393
322
|
let { page, configs, project, pageAssignment } = weaverseData || {};
|
|
@@ -408,33 +337,103 @@ function createWeaverseInstance(weaverseData, components) {
|
|
|
408
337
|
});
|
|
409
338
|
return weaverse;
|
|
410
339
|
}
|
|
340
|
+
var ThemeProvider = (0, import_react2.createContext)(null);
|
|
341
|
+
ThemeProvider.displayName = "WeaverseThemeProvider";
|
|
342
|
+
|
|
343
|
+
// src/hooks/use-theme-settings.ts
|
|
344
|
+
var ThemeSettingsStore = class {
|
|
345
|
+
constructor({
|
|
346
|
+
theme,
|
|
347
|
+
countries,
|
|
348
|
+
schema,
|
|
349
|
+
publicEnv
|
|
350
|
+
}) {
|
|
351
|
+
this.settings = null;
|
|
352
|
+
this.listeners = [];
|
|
353
|
+
this.updateThemeSettings = (newSettings) => {
|
|
354
|
+
this.settings = { ...this.settings, ...newSettings };
|
|
355
|
+
this.emitChange();
|
|
356
|
+
};
|
|
357
|
+
this.subscribe = (listener) => {
|
|
358
|
+
this.listeners = [...this.listeners, listener];
|
|
359
|
+
return () => {
|
|
360
|
+
this.listeners = this.listeners.filter((l) => l !== listener);
|
|
361
|
+
};
|
|
362
|
+
};
|
|
363
|
+
this.getSnapshot = () => {
|
|
364
|
+
return this.settings;
|
|
365
|
+
};
|
|
366
|
+
this.getServerSnapshot = () => {
|
|
367
|
+
return this.settings;
|
|
368
|
+
};
|
|
369
|
+
this.emitChange = () => {
|
|
370
|
+
for (const listener of this.listeners) {
|
|
371
|
+
listener();
|
|
372
|
+
}
|
|
373
|
+
};
|
|
374
|
+
this.settings = theme;
|
|
375
|
+
this.countries = countries;
|
|
376
|
+
this.schema = schema;
|
|
377
|
+
this.publicEnv = publicEnv;
|
|
378
|
+
}
|
|
379
|
+
};
|
|
380
|
+
function useThemeSettings() {
|
|
381
|
+
let themeSettingsStore = (0, import_react3.useContext)(ThemeProvider);
|
|
382
|
+
let settings = (0, import_react3.useSyncExternalStore)(
|
|
383
|
+
themeSettingsStore.subscribe,
|
|
384
|
+
themeSettingsStore.getSnapshot,
|
|
385
|
+
themeSettingsStore.getServerSnapshot
|
|
386
|
+
);
|
|
387
|
+
return settings;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
// src/wrappers.ts
|
|
391
|
+
var import_hydrogen2 = require("@shopify/hydrogen");
|
|
392
|
+
var import_hydrogen3 = require("@shopify/hydrogen");
|
|
393
|
+
function getSelectedProductOptions(request) {
|
|
394
|
+
let options = (0, import_hydrogen2.getSelectedProductOptions)(request);
|
|
395
|
+
return options.filter(
|
|
396
|
+
({ name }) => name !== "isDesignMode" && !name.startsWith("weaverse")
|
|
397
|
+
);
|
|
398
|
+
}
|
|
399
|
+
function createContentSecurityPolicy(request, directives) {
|
|
400
|
+
let weaverseDirectives = getWeaverseCsp(request);
|
|
401
|
+
return (0, import_hydrogen3.createContentSecurityPolicy)({
|
|
402
|
+
...directives,
|
|
403
|
+
...weaverseDirectives
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
// src/WeaverseHydrogenRoot.tsx
|
|
408
|
+
var import_react7 = require("@remix-run/react");
|
|
409
|
+
var import_react8 = require("@weaverse/react");
|
|
410
|
+
var import_react9 = __toESM(require("react"));
|
|
411
|
+
var import_react_error_boundary = require("react-error-boundary");
|
|
411
412
|
|
|
412
413
|
// src/hooks/use-studio.ts
|
|
413
|
-
var
|
|
414
|
-
var
|
|
415
|
-
var
|
|
414
|
+
var import_react4 = require("@remix-run/react");
|
|
415
|
+
var import_react5 = require("@weaverse/react");
|
|
416
|
+
var import_react6 = require("react");
|
|
416
417
|
function useStudio(weaverse) {
|
|
417
|
-
let
|
|
418
|
-
let
|
|
419
|
-
let
|
|
420
|
-
let { countries, schema, publicEnv } = weaverseTheme || {};
|
|
418
|
+
let navigate = (0, import_react4.useNavigate)();
|
|
419
|
+
let { revalidate } = (0, import_react4.useRevalidator)();
|
|
420
|
+
let themeSettingsStore = (0, import_react6.useContext)(ThemeProvider);
|
|
421
421
|
let { isDesignMode, weaverseHost, weaverseVersion } = weaverse;
|
|
422
|
-
let isStudio =
|
|
423
|
-
(0,
|
|
422
|
+
let isStudio = import_react5.isIframe && isDesignMode && weaverseHost && weaverseVersion;
|
|
423
|
+
(0, import_react6.useEffect)(() => {
|
|
424
424
|
if (isStudio) {
|
|
425
425
|
weaverse.internal = {
|
|
426
426
|
...weaverse.internal,
|
|
427
|
-
publicEnv,
|
|
428
427
|
navigate,
|
|
429
428
|
revalidate,
|
|
430
|
-
|
|
429
|
+
themeSettingsStore
|
|
431
430
|
};
|
|
432
431
|
window.__weaverse = weaverse;
|
|
433
432
|
if (window.weaverseStudio) {
|
|
434
433
|
window.weaverseStudio.init(weaverse);
|
|
435
434
|
} else {
|
|
436
435
|
let studioSrc = `${weaverseHost}/assets/studio/hydrogen/index.js?v=${weaverseVersion}`;
|
|
437
|
-
(0,
|
|
436
|
+
(0, import_react5.loadScript)(studioSrc);
|
|
438
437
|
}
|
|
439
438
|
}
|
|
440
439
|
}, [weaverse]);
|
|
@@ -445,31 +444,45 @@ function WeaverseHydrogenRoot({
|
|
|
445
444
|
errorComponent: ErrorComponent,
|
|
446
445
|
components
|
|
447
446
|
}) {
|
|
448
|
-
let loaderData = (0,
|
|
447
|
+
let loaderData = (0, import_react7.useLoaderData)();
|
|
449
448
|
let data = loaderData?.weaverseData;
|
|
450
449
|
if (data) {
|
|
451
450
|
if (data instanceof Promise) {
|
|
452
|
-
return /* @__PURE__ */
|
|
453
|
-
|
|
454
|
-
|
|
451
|
+
return /* @__PURE__ */ import_react9.default.createElement(
|
|
452
|
+
import_react_error_boundary.ErrorBoundary,
|
|
453
|
+
{
|
|
454
|
+
fallbackRender: ErrorComponent || (() => /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, "An error occurred!"))
|
|
455
|
+
},
|
|
456
|
+
/* @__PURE__ */ import_react9.default.createElement(import_react9.Suspense, null, /* @__PURE__ */ import_react9.default.createElement(import_react7.Await, { resolve: data }, (resolvedData) => {
|
|
457
|
+
return /* @__PURE__ */ import_react9.default.createElement(RenderRoot, { data: resolvedData, components });
|
|
458
|
+
}))
|
|
459
|
+
);
|
|
455
460
|
}
|
|
456
|
-
return /* @__PURE__ */
|
|
461
|
+
return /* @__PURE__ */ import_react9.default.createElement(RenderRoot, { data, components });
|
|
457
462
|
}
|
|
458
|
-
return /* @__PURE__ */
|
|
463
|
+
return ErrorComponent ? /* @__PURE__ */ import_react9.default.createElement(
|
|
459
464
|
ErrorComponent,
|
|
460
465
|
{
|
|
461
466
|
error: { message: "No Weaverse data return from route loader!" }
|
|
462
467
|
}
|
|
463
|
-
);
|
|
468
|
+
) : /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, "No Weaverse data return from route loader!");
|
|
464
469
|
}
|
|
465
470
|
function RenderRoot(props) {
|
|
466
471
|
let { data, components } = props;
|
|
467
472
|
let weaverse = createWeaverseInstance(data, components);
|
|
468
473
|
useStudio(weaverse);
|
|
469
|
-
return /* @__PURE__ */
|
|
474
|
+
return /* @__PURE__ */ import_react9.default.createElement(import_react8.WeaverseRoot, { context: weaverse });
|
|
470
475
|
}
|
|
476
|
+
var withWeaverse = (Component) => {
|
|
477
|
+
return (props) => {
|
|
478
|
+
let { weaverseTheme } = (0, import_react7.useLoaderData)();
|
|
479
|
+
let themeSettingsStore = new ThemeSettingsStore(weaverseTheme);
|
|
480
|
+
return /* @__PURE__ */ import_react9.default.createElement(ThemeProvider.Provider, { value: themeSettingsStore }, /* @__PURE__ */ import_react9.default.createElement(Component, { ...props }));
|
|
481
|
+
};
|
|
482
|
+
};
|
|
471
483
|
// Annotate the CommonJS export names for ESM import in node:
|
|
472
484
|
0 && (module.exports = {
|
|
485
|
+
ThemeSettingsStore,
|
|
473
486
|
WeaverseClient,
|
|
474
487
|
WeaverseHydrogenRoot,
|
|
475
488
|
createContentSecurityPolicy,
|
|
@@ -479,5 +492,6 @@ function RenderRoot(props) {
|
|
|
479
492
|
getWeaverseConfigs,
|
|
480
493
|
getWeaverseCsp,
|
|
481
494
|
useThemeSettings,
|
|
495
|
+
withWeaverse,
|
|
482
496
|
...require("@weaverse/react")
|
|
483
497
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import "@shopify/hydrogen";
|
|
|
6
6
|
|
|
7
7
|
// package.json
|
|
8
8
|
var package_default = {
|
|
9
|
-
version: "1.1.
|
|
9
|
+
version: "1.1.20",
|
|
10
10
|
license: "MIT",
|
|
11
11
|
main: "dist/index.js",
|
|
12
12
|
typings: "dist/index.d.ts",
|
|
@@ -41,7 +41,7 @@ var package_default = {
|
|
|
41
41
|
dependencies: {
|
|
42
42
|
"@remix-run/react": "1.19.1",
|
|
43
43
|
"@shopify/hydrogen": "2023.7.7",
|
|
44
|
-
"@weaverse/react": "1.1.
|
|
44
|
+
"@weaverse/react": "1.1.20",
|
|
45
45
|
"react-error-boundary": "^4.0.11"
|
|
46
46
|
},
|
|
47
47
|
devDependencies: {
|
|
@@ -251,86 +251,13 @@ function createWeaverseClient(args) {
|
|
|
251
251
|
}
|
|
252
252
|
|
|
253
253
|
// src/hooks/use-theme-settings.ts
|
|
254
|
-
import {
|
|
255
|
-
import { isBrowser } from "@weaverse/react";
|
|
256
|
-
import { useEffect, useSyncExternalStore } from "react";
|
|
257
|
-
var settings = null;
|
|
258
|
-
var listeners = [];
|
|
259
|
-
var themeSettingsStore = {
|
|
260
|
-
updateThemeSettings(newSettings) {
|
|
261
|
-
settings = { ...settings, ...newSettings };
|
|
262
|
-
emitChange();
|
|
263
|
-
},
|
|
264
|
-
subscribe(listener) {
|
|
265
|
-
listeners = [...listeners, listener];
|
|
266
|
-
return () => {
|
|
267
|
-
listeners = listeners.filter((l) => l !== listener);
|
|
268
|
-
};
|
|
269
|
-
},
|
|
270
|
-
getSnapshot() {
|
|
271
|
-
return settings;
|
|
272
|
-
},
|
|
273
|
-
getServerSnapshot() {
|
|
274
|
-
return settings;
|
|
275
|
-
}
|
|
276
|
-
};
|
|
277
|
-
function emitChange() {
|
|
278
|
-
for (let listener of listeners) {
|
|
279
|
-
listener();
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
if (isBrowser) {
|
|
283
|
-
window.__weaverseThemeSettingsStore = themeSettingsStore;
|
|
284
|
-
}
|
|
285
|
-
function useThemeSettings() {
|
|
286
|
-
let settings2 = useSyncExternalStore(
|
|
287
|
-
themeSettingsStore.subscribe,
|
|
288
|
-
themeSettingsStore.getSnapshot,
|
|
289
|
-
themeSettingsStore.getServerSnapshot
|
|
290
|
-
);
|
|
291
|
-
let { weaverseTheme } = useLoaderData();
|
|
292
|
-
useEffect(() => {
|
|
293
|
-
if (weaverseTheme) {
|
|
294
|
-
let settings3 = weaverseTheme.theme;
|
|
295
|
-
if (settings3) {
|
|
296
|
-
themeSettingsStore.updateThemeSettings(settings3);
|
|
297
|
-
}
|
|
298
|
-
} else {
|
|
299
|
-
console.warn(
|
|
300
|
-
`'weaverseTheme' should be returned from root loader in order to get global settings from 'useThemeSettings'.`
|
|
301
|
-
);
|
|
302
|
-
}
|
|
303
|
-
}, [weaverseTheme]);
|
|
304
|
-
return settings2;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
// src/wrappers.ts
|
|
308
|
-
import { getSelectedProductOptions as hydrogen_getSelectedProductOptions } from "@shopify/hydrogen";
|
|
309
|
-
import { createContentSecurityPolicy as hydrogen_createContentSecurityPolicy } from "@shopify/hydrogen";
|
|
310
|
-
function getSelectedProductOptions(request) {
|
|
311
|
-
let options = hydrogen_getSelectedProductOptions(request);
|
|
312
|
-
return options.filter(
|
|
313
|
-
({ name }) => name !== "isDesignMode" && !name.startsWith("weaverse")
|
|
314
|
-
);
|
|
315
|
-
}
|
|
316
|
-
function createContentSecurityPolicy(request, directives) {
|
|
317
|
-
let weaverseDirectives = getWeaverseCsp(request);
|
|
318
|
-
return hydrogen_createContentSecurityPolicy({
|
|
319
|
-
...directives,
|
|
320
|
-
...weaverseDirectives
|
|
321
|
-
});
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
// src/WeaverseHydrogenRoot.tsx
|
|
325
|
-
import { Await, useLoaderData as useLoaderData2 } from "@remix-run/react";
|
|
326
|
-
import { WeaverseRoot } from "@weaverse/react";
|
|
327
|
-
import React, { Suspense } from "react";
|
|
328
|
-
import { ErrorBoundary } from "react-error-boundary";
|
|
254
|
+
import { useContext, useSyncExternalStore } from "react";
|
|
329
255
|
|
|
330
256
|
// src/context.ts
|
|
331
|
-
import { Weaverse, isBrowser
|
|
257
|
+
import { Weaverse, isBrowser } from "@weaverse/react";
|
|
258
|
+
import { createContext } from "react";
|
|
332
259
|
function createCachedWeaverseInstance(init) {
|
|
333
|
-
if (
|
|
260
|
+
if (isBrowser) {
|
|
334
261
|
window.__weaverses = window.__weaverses || [];
|
|
335
262
|
let weaverse = window.__weaverses.find((w) => {
|
|
336
263
|
let { pathname, search } = w.requestInfo;
|
|
@@ -365,30 +292,96 @@ function createWeaverseInstance(weaverseData, components) {
|
|
|
365
292
|
});
|
|
366
293
|
return weaverse;
|
|
367
294
|
}
|
|
295
|
+
var ThemeProvider = createContext(null);
|
|
296
|
+
ThemeProvider.displayName = "WeaverseThemeProvider";
|
|
297
|
+
|
|
298
|
+
// src/hooks/use-theme-settings.ts
|
|
299
|
+
var ThemeSettingsStore = class {
|
|
300
|
+
constructor({
|
|
301
|
+
theme,
|
|
302
|
+
countries,
|
|
303
|
+
schema,
|
|
304
|
+
publicEnv
|
|
305
|
+
}) {
|
|
306
|
+
this.settings = null;
|
|
307
|
+
this.listeners = [];
|
|
308
|
+
this.updateThemeSettings = (newSettings) => {
|
|
309
|
+
this.settings = { ...this.settings, ...newSettings };
|
|
310
|
+
this.emitChange();
|
|
311
|
+
};
|
|
312
|
+
this.subscribe = (listener) => {
|
|
313
|
+
this.listeners = [...this.listeners, listener];
|
|
314
|
+
return () => {
|
|
315
|
+
this.listeners = this.listeners.filter((l) => l !== listener);
|
|
316
|
+
};
|
|
317
|
+
};
|
|
318
|
+
this.getSnapshot = () => {
|
|
319
|
+
return this.settings;
|
|
320
|
+
};
|
|
321
|
+
this.getServerSnapshot = () => {
|
|
322
|
+
return this.settings;
|
|
323
|
+
};
|
|
324
|
+
this.emitChange = () => {
|
|
325
|
+
for (const listener of this.listeners) {
|
|
326
|
+
listener();
|
|
327
|
+
}
|
|
328
|
+
};
|
|
329
|
+
this.settings = theme;
|
|
330
|
+
this.countries = countries;
|
|
331
|
+
this.schema = schema;
|
|
332
|
+
this.publicEnv = publicEnv;
|
|
333
|
+
}
|
|
334
|
+
};
|
|
335
|
+
function useThemeSettings() {
|
|
336
|
+
let themeSettingsStore = useContext(ThemeProvider);
|
|
337
|
+
let settings = useSyncExternalStore(
|
|
338
|
+
themeSettingsStore.subscribe,
|
|
339
|
+
themeSettingsStore.getSnapshot,
|
|
340
|
+
themeSettingsStore.getServerSnapshot
|
|
341
|
+
);
|
|
342
|
+
return settings;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
// src/wrappers.ts
|
|
346
|
+
import { getSelectedProductOptions as hydrogen_getSelectedProductOptions } from "@shopify/hydrogen";
|
|
347
|
+
import { createContentSecurityPolicy as hydrogen_createContentSecurityPolicy } from "@shopify/hydrogen";
|
|
348
|
+
function getSelectedProductOptions(request) {
|
|
349
|
+
let options = hydrogen_getSelectedProductOptions(request);
|
|
350
|
+
return options.filter(
|
|
351
|
+
({ name }) => name !== "isDesignMode" && !name.startsWith("weaverse")
|
|
352
|
+
);
|
|
353
|
+
}
|
|
354
|
+
function createContentSecurityPolicy(request, directives) {
|
|
355
|
+
let weaverseDirectives = getWeaverseCsp(request);
|
|
356
|
+
return hydrogen_createContentSecurityPolicy({
|
|
357
|
+
...directives,
|
|
358
|
+
...weaverseDirectives
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
// src/WeaverseHydrogenRoot.tsx
|
|
363
|
+
import { Await, useLoaderData } from "@remix-run/react";
|
|
364
|
+
import { WeaverseRoot } from "@weaverse/react";
|
|
365
|
+
import React, { Suspense } from "react";
|
|
366
|
+
import { ErrorBoundary } from "react-error-boundary";
|
|
368
367
|
|
|
369
368
|
// src/hooks/use-studio.ts
|
|
370
|
-
import {
|
|
371
|
-
useNavigate,
|
|
372
|
-
useRevalidator,
|
|
373
|
-
useRouteLoaderData
|
|
374
|
-
} from "@remix-run/react";
|
|
369
|
+
import { useNavigate, useRevalidator } from "@remix-run/react";
|
|
375
370
|
import { isIframe, loadScript } from "@weaverse/react";
|
|
376
|
-
import {
|
|
371
|
+
import { useContext as useContext2, useEffect } from "react";
|
|
377
372
|
function useStudio(weaverse) {
|
|
378
|
-
let { weaverseTheme } = useRouteLoaderData("root");
|
|
379
373
|
let navigate = useNavigate();
|
|
380
374
|
let { revalidate } = useRevalidator();
|
|
381
|
-
let
|
|
375
|
+
let themeSettingsStore = useContext2(ThemeProvider);
|
|
382
376
|
let { isDesignMode, weaverseHost, weaverseVersion } = weaverse;
|
|
383
377
|
let isStudio = isIframe && isDesignMode && weaverseHost && weaverseVersion;
|
|
384
|
-
|
|
378
|
+
useEffect(() => {
|
|
385
379
|
if (isStudio) {
|
|
386
380
|
weaverse.internal = {
|
|
387
381
|
...weaverse.internal,
|
|
388
|
-
publicEnv,
|
|
389
382
|
navigate,
|
|
390
383
|
revalidate,
|
|
391
|
-
|
|
384
|
+
themeSettingsStore
|
|
392
385
|
};
|
|
393
386
|
window.__weaverse = weaverse;
|
|
394
387
|
if (window.weaverseStudio) {
|
|
@@ -406,22 +399,28 @@ function WeaverseHydrogenRoot({
|
|
|
406
399
|
errorComponent: ErrorComponent,
|
|
407
400
|
components
|
|
408
401
|
}) {
|
|
409
|
-
let loaderData =
|
|
402
|
+
let loaderData = useLoaderData();
|
|
410
403
|
let data = loaderData?.weaverseData;
|
|
411
404
|
if (data) {
|
|
412
405
|
if (data instanceof Promise) {
|
|
413
|
-
return /* @__PURE__ */ React.createElement(
|
|
414
|
-
|
|
415
|
-
|
|
406
|
+
return /* @__PURE__ */ React.createElement(
|
|
407
|
+
ErrorBoundary,
|
|
408
|
+
{
|
|
409
|
+
fallbackRender: ErrorComponent || (() => /* @__PURE__ */ React.createElement(React.Fragment, null, "An error occurred!"))
|
|
410
|
+
},
|
|
411
|
+
/* @__PURE__ */ React.createElement(Suspense, null, /* @__PURE__ */ React.createElement(Await, { resolve: data }, (resolvedData) => {
|
|
412
|
+
return /* @__PURE__ */ React.createElement(RenderRoot, { data: resolvedData, components });
|
|
413
|
+
}))
|
|
414
|
+
);
|
|
416
415
|
}
|
|
417
416
|
return /* @__PURE__ */ React.createElement(RenderRoot, { data, components });
|
|
418
417
|
}
|
|
419
|
-
return /* @__PURE__ */ React.createElement(
|
|
418
|
+
return ErrorComponent ? /* @__PURE__ */ React.createElement(
|
|
420
419
|
ErrorComponent,
|
|
421
420
|
{
|
|
422
421
|
error: { message: "No Weaverse data return from route loader!" }
|
|
423
422
|
}
|
|
424
|
-
);
|
|
423
|
+
) : /* @__PURE__ */ React.createElement(React.Fragment, null, "No Weaverse data return from route loader!");
|
|
425
424
|
}
|
|
426
425
|
function RenderRoot(props) {
|
|
427
426
|
let { data, components } = props;
|
|
@@ -429,7 +428,15 @@ function RenderRoot(props) {
|
|
|
429
428
|
useStudio(weaverse);
|
|
430
429
|
return /* @__PURE__ */ React.createElement(WeaverseRoot, { context: weaverse });
|
|
431
430
|
}
|
|
431
|
+
var withWeaverse = (Component) => {
|
|
432
|
+
return (props) => {
|
|
433
|
+
let { weaverseTheme } = useLoaderData();
|
|
434
|
+
let themeSettingsStore = new ThemeSettingsStore(weaverseTheme);
|
|
435
|
+
return /* @__PURE__ */ React.createElement(ThemeProvider.Provider, { value: themeSettingsStore }, /* @__PURE__ */ React.createElement(Component, { ...props }));
|
|
436
|
+
};
|
|
437
|
+
};
|
|
432
438
|
export {
|
|
439
|
+
ThemeSettingsStore,
|
|
433
440
|
WeaverseClient,
|
|
434
441
|
WeaverseHydrogenRoot,
|
|
435
442
|
createContentSecurityPolicy,
|
|
@@ -438,5 +445,6 @@ export {
|
|
|
438
445
|
getSelectedProductOptions,
|
|
439
446
|
getWeaverseConfigs,
|
|
440
447
|
getWeaverseCsp,
|
|
441
|
-
useThemeSettings
|
|
448
|
+
useThemeSettings,
|
|
449
|
+
withWeaverse
|
|
442
450
|
};
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.2.0",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"typings": "dist/index.d.ts",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@remix-run/react": "1.19.1",
|
|
36
36
|
"@shopify/hydrogen": "2023.7.7",
|
|
37
|
-
"@weaverse/react": "1.
|
|
37
|
+
"@weaverse/react": "1.2.0",
|
|
38
38
|
"react-error-boundary": "^4.0.11"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|