@gem-sdk/pages 1.24.11 → 1.25.3
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/cjs/components/builder/Toolbar.js +736 -0
- package/dist/cjs/components/builder/Toolbox.js +45 -1
- package/dist/cjs/libs/api/get-home-page-props-v2.js +3 -1
- package/dist/cjs/pages/builder.js +9 -3
- package/dist/esm/components/builder/Toolbar.js +732 -0
- package/dist/esm/components/builder/Toolbox.js +45 -1
- package/dist/esm/libs/api/get-home-page-props-v2.js +4 -2
- package/dist/esm/pages/builder.js +9 -3
- package/dist/types/index.d.ts +1 -0
- package/package.json +5 -5
|
@@ -19,12 +19,16 @@ const Toolbox = ()=>{
|
|
|
19
19
|
const initNormalizeState = useBuilderPreviewStore((s)=>s.forceChangeState);
|
|
20
20
|
const forceChangeItemProp = useBuilderPreviewStore((s)=>s.forceChangeItemProp);
|
|
21
21
|
const changeItemPropByKey = useBuilderPreviewStore((s)=>s.changeItemPropByKey);
|
|
22
|
+
const setDynamicProduct = useBuilderPreviewStore((s)=>s.setDynamicProduct);
|
|
23
|
+
const setDynamicCollection = useBuilderPreviewStore((s)=>s.setDynamicCollection);
|
|
22
24
|
const addItem = useBuilderPreviewStore((s)=>s.addItem);
|
|
23
25
|
const moveItem = useBuilderPreviewStore((s)=>s.moveItem);
|
|
24
26
|
const removeItem = useBuilderPreviewStore((s)=>s.removeItem);
|
|
25
27
|
const addSection = useSectionStore((s)=>s.addSection);
|
|
26
28
|
const changeSwatches = useShopStore((s)=>s.changeSwatches);
|
|
27
29
|
const changeLayoutSettings = useShopStore((s)=>s.changeLayoutSettings);
|
|
30
|
+
const changeCreateThemeSectionCount = useShopStore((s)=>s.changeCreateThemeSectionCount);
|
|
31
|
+
const changeShopPlan = useShopStore((s)=>s.changeShopPlan);
|
|
28
32
|
const clearModal = useModalStore((s)=>s.clearModal);
|
|
29
33
|
const fonts = useMemo(()=>getFontsFromDataBuilder(state), [
|
|
30
34
|
state
|
|
@@ -217,6 +221,34 @@ const Toolbox = ()=>{
|
|
|
217
221
|
}, [
|
|
218
222
|
changeLayoutSettings
|
|
219
223
|
]);
|
|
224
|
+
const onUpdateCreateThemeSectionCount = useCallback((e)=>{
|
|
225
|
+
const count = e.detail;
|
|
226
|
+
if (!count) return;
|
|
227
|
+
changeCreateThemeSectionCount(count);
|
|
228
|
+
}, [
|
|
229
|
+
changeCreateThemeSectionCount
|
|
230
|
+
]);
|
|
231
|
+
const onUpdateShopPlan = useCallback((e)=>{
|
|
232
|
+
const shopPlan = e.detail;
|
|
233
|
+
if (!shopPlan) return;
|
|
234
|
+
changeShopPlan(shopPlan);
|
|
235
|
+
}, [
|
|
236
|
+
changeShopPlan
|
|
237
|
+
]);
|
|
238
|
+
const onUpdateDynamicProduct = useCallback((e)=>{
|
|
239
|
+
const product = e.detail;
|
|
240
|
+
if (!product) return;
|
|
241
|
+
setDynamicProduct(product);
|
|
242
|
+
}, [
|
|
243
|
+
setDynamicProduct
|
|
244
|
+
]);
|
|
245
|
+
const onUpdateDynamicCollection = useCallback((e)=>{
|
|
246
|
+
const collection = e.detail;
|
|
247
|
+
if (!collection) return;
|
|
248
|
+
setDynamicCollection(collection);
|
|
249
|
+
}, [
|
|
250
|
+
setDynamicCollection
|
|
251
|
+
]);
|
|
220
252
|
useEffect(()=>{
|
|
221
253
|
if (customFontUrl) {
|
|
222
254
|
const fontId = 'google-font';
|
|
@@ -249,6 +281,10 @@ const Toolbox = ()=>{
|
|
|
249
281
|
window.addEventListener('set-global-style', onChangeGlobalStyle);
|
|
250
282
|
window.addEventListener('update-global-swatches-data', onChangeSwatchesData);
|
|
251
283
|
window.addEventListener('on-off-header-footer', onChangeLayoutSettingData);
|
|
284
|
+
window.addEventListener('update-create-theme-section-count', onUpdateCreateThemeSectionCount);
|
|
285
|
+
window.addEventListener('update-shop-plan', onUpdateShopPlan);
|
|
286
|
+
window.addEventListener('set-dynamic-product', onUpdateDynamicProduct);
|
|
287
|
+
window.addEventListener('set-dynamic-collection', onUpdateDynamicCollection);
|
|
252
288
|
return ()=>{
|
|
253
289
|
window.removeEventListener('update-shop-info', onChangeShopInfo);
|
|
254
290
|
window.removeEventListener('revalidate-query', onRevalidateQuery);
|
|
@@ -260,9 +296,14 @@ const Toolbox = ()=>{
|
|
|
260
296
|
window.removeEventListener('set-global-style', onChangeGlobalStyle);
|
|
261
297
|
window.removeEventListener('update-global-swatches-data', onChangeSwatchesData);
|
|
262
298
|
window.removeEventListener('on-off-header-footer', onChangeLayoutSettingData);
|
|
299
|
+
window.removeEventListener('update-create-theme-section-count', onUpdateCreateThemeSectionCount);
|
|
300
|
+
window.removeEventListener('update-shop-plan', onUpdateShopPlan);
|
|
301
|
+
window.removeEventListener('set-dynamic-product', onUpdateDynamicProduct);
|
|
302
|
+
window.removeEventListener('set-dynamic-collection', onUpdateDynamicCollection);
|
|
263
303
|
};
|
|
264
304
|
}, [
|
|
265
305
|
onAddEntity,
|
|
306
|
+
onUpdateShopPlan,
|
|
266
307
|
onForceUpdateEntityProps,
|
|
267
308
|
onUpdateEntityProp,
|
|
268
309
|
onInitBuilder,
|
|
@@ -272,7 +313,10 @@ const Toolbox = ()=>{
|
|
|
272
313
|
onChangeSwatchesData,
|
|
273
314
|
onRevalidateQuery,
|
|
274
315
|
onChangeShopInfo,
|
|
275
|
-
onChangeLayoutSettingData
|
|
316
|
+
onChangeLayoutSettingData,
|
|
317
|
+
onUpdateCreateThemeSectionCount,
|
|
318
|
+
onUpdateDynamicProduct,
|
|
319
|
+
onUpdateDynamicCollection
|
|
276
320
|
]);
|
|
277
321
|
return /*#__PURE__*/ jsx("div", {
|
|
278
322
|
className: "toolbox"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PublishedThemePagesDocument, StorePropertyDocument } from '@gem-sdk/core';
|
|
2
2
|
import { ShopMetaDocument } from '@gem-sdk/adapter-shopify';
|
|
3
|
-
import { getFontFromGlobalStyle } from '../google-fonts.js';
|
|
3
|
+
import { getFontStyleFromPageTemplate, getFontFromGlobalStyle } from '../google-fonts.js';
|
|
4
4
|
import { genCSS } from '../helpers/gen-css.js';
|
|
5
5
|
import { generateManifest } from '../helpers/generate-manifres.js';
|
|
6
6
|
import { getFallbackV2 } from '../helpers/get-fallback.js';
|
|
@@ -33,7 +33,8 @@ const getHomePagePropsV2 = (fetcher, shopifyFetcher)=>async ()=>{
|
|
|
33
33
|
throw new Error(`No data builder found for Home page`);
|
|
34
34
|
}
|
|
35
35
|
const homeTemplate = parseBuilderTemplateV2(dataBuilder);
|
|
36
|
-
const [fontStyle, fallback] = await Promise.all([
|
|
36
|
+
const [elementFontStyle, fontStyle, fallback] = await Promise.all([
|
|
37
|
+
getFontStyleFromPageTemplate(homeTemplate),
|
|
37
38
|
getFontFromGlobalStyle(dataBuilder?.pageStyle?.data),
|
|
38
39
|
getFallbackV2(fetcher, homeTemplate)
|
|
39
40
|
]);
|
|
@@ -113,6 +114,7 @@ const getHomePagePropsV2 = (fetcher, shopifyFetcher)=>async ()=>{
|
|
|
113
114
|
return serializableJson({
|
|
114
115
|
themeStyle: genCSS(dataBuilder?.pageStyle?.data, mobileOnly),
|
|
115
116
|
fontStyle,
|
|
117
|
+
elementFontStyle,
|
|
116
118
|
builderData: homeTemplate,
|
|
117
119
|
swr: {
|
|
118
120
|
fallback
|
|
@@ -10,8 +10,9 @@ import CollectionGlobalProvider from './CollectionGlobalProvider.js';
|
|
|
10
10
|
import PopupManager from '../components/builder/PopupManager.js';
|
|
11
11
|
import ImageToLayout from '../components/image-to-layout/ImageToLayout.js';
|
|
12
12
|
import AddSectionImageToLayout from '../components/image-to-layout/AddSectionImageToLayout.js';
|
|
13
|
+
import Toolbar from '../components/builder/Toolbar.js';
|
|
13
14
|
|
|
14
|
-
const BuilderPage = ({ components, seo, themeStyle, fontStyle, sectionData, pageType, editorImageToLayout })=>{
|
|
15
|
+
const BuilderPage = ({ components, seo, themeStyle, fontStyle, sectionData, pageType, editorImageToLayout, isThemeSectionEditor })=>{
|
|
15
16
|
const [loadSuccess, setLoadSuccess] = useState(false);
|
|
16
17
|
const initState = useMemo(()=>({
|
|
17
18
|
ROOT: {
|
|
@@ -53,15 +54,20 @@ const BuilderPage = ({ components, seo, themeStyle, fontStyle, sectionData, page
|
|
|
53
54
|
data: sectionData,
|
|
54
55
|
children: /*#__PURE__*/ jsxs(BuilderPreviewProvider, {
|
|
55
56
|
state: initState,
|
|
57
|
+
isThemeSectionEditor: isThemeSectionEditor,
|
|
56
58
|
children: [
|
|
57
59
|
/*#__PURE__*/ jsx(Toolbox, {}),
|
|
60
|
+
/*#__PURE__*/ jsx(Toolbar, {}),
|
|
58
61
|
/*#__PURE__*/ jsx(PopupManager, {}),
|
|
59
62
|
loadSuccess && /*#__PURE__*/ jsxs("div", {
|
|
60
63
|
className: "builder z-1 relative",
|
|
61
64
|
children: [
|
|
62
|
-
/*#__PURE__*/ jsx(
|
|
65
|
+
isThemeSectionEditor ? /*#__PURE__*/ jsx("div", {
|
|
66
|
+
className: "h-[40px] bg-[#f4f4f4]"
|
|
67
|
+
}) : /*#__PURE__*/ jsx(Header, {}),
|
|
63
68
|
/*#__PURE__*/ jsx("div", {
|
|
64
69
|
id: "storefront",
|
|
70
|
+
className: isThemeSectionEditor ? 'theme-section-editor' : '',
|
|
65
71
|
children: pageType === 'GP_COLLECTION' ? /*#__PURE__*/ jsx(CollectionGlobalProvider, {
|
|
66
72
|
children: /*#__PURE__*/ jsx(RenderPreview, {
|
|
67
73
|
uid: "ROOT"
|
|
@@ -79,7 +85,7 @@ const BuilderPage = ({ components, seo, themeStyle, fontStyle, sectionData, page
|
|
|
79
85
|
/*#__PURE__*/ jsx("div", {
|
|
80
86
|
id: "visual-content"
|
|
81
87
|
}),
|
|
82
|
-
/*#__PURE__*/ jsx(Footer, {})
|
|
88
|
+
!isThemeSectionEditor && /*#__PURE__*/ jsx(Footer, {})
|
|
83
89
|
]
|
|
84
90
|
})
|
|
85
91
|
]
|
package/dist/types/index.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gem-sdk/pages",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.25.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
"next-seo": "^6.0.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@gem-sdk/core": "1.
|
|
29
|
-
"@gem-sdk/plugin-cookie-bar": "
|
|
30
|
-
"@gem-sdk/plugin-quick-view": "
|
|
31
|
-
"@gem-sdk/plugin-sticky-add-to-cart": "
|
|
28
|
+
"@gem-sdk/core": "1.25.0",
|
|
29
|
+
"@gem-sdk/plugin-cookie-bar": "1.25.0",
|
|
30
|
+
"@gem-sdk/plugin-quick-view": "1.25.0",
|
|
31
|
+
"@gem-sdk/plugin-sticky-add-to-cart": "1.25.0"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"next": ">=13"
|