@gem-sdk/pages 2.0.0-dev.890 → 2.0.0-staging.120
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/ErrorBoundary.js +41 -1
- package/dist/cjs/components/ErrorFallback.js +27 -1
- package/dist/cjs/components/FacebookPixel.js +34 -3
- package/dist/cjs/components/FooterForPostPurchase.js +35 -1
- package/dist/cjs/components/GoogleAnalytic.js +66 -5
- package/dist/cjs/components/TikTokPixel.js +20 -3
- package/dist/cjs/components/builder/Body.js +37 -0
- package/dist/cjs/components/builder/Footer.js +155 -0
- package/dist/cjs/components/builder/Header.js +188 -0
- package/dist/cjs/components/builder/PopupManager.js +64 -1
- package/dist/cjs/components/builder/SwitchView.js +185 -0
- package/dist/cjs/components/builder/Toolbar.js +701 -1
- package/dist/cjs/components/builder/Toolbox.js +485 -1
- package/dist/cjs/components/builder/const.js +56 -0
- package/dist/cjs/components/builder/toolbar/const.js +7 -0
- package/dist/cjs/components/builder/toolbar/utils/findDOMClosest.js +41 -0
- package/dist/cjs/components/builder/toolbar/utils/findOverflowParent.js +20 -0
- package/dist/cjs/components/builder/toolbar/utils/getChildrenByAttrSelector.js +18 -0
- package/dist/cjs/components/builder/toolbar/utils/getDOMElementParents.js +32 -0
- package/dist/cjs/components/builder/toolbar/utils/isOverParent.js +16 -0
- package/dist/cjs/components/builder/toolbar/utils/isOverToolbarPosition.js +12 -0
- package/dist/cjs/components/builder/toolbar/utils/isSection.js +8 -0
- package/dist/cjs/components/builder/toolbar/utils/notVisible.js +8 -0
- package/dist/cjs/components/builder/toolbar/utils/waitForElementToExist.js +27 -0
- package/dist/cjs/components/image-to-layout/AddSectionImageToLayout.js +151 -1
- package/dist/cjs/components/image-to-layout/DropElement.js +167 -1
- package/dist/cjs/components/image-to-layout/ImageToLayout.js +42 -1
- package/dist/cjs/index.js +80 -1
- package/dist/cjs/layouts/main.js +31 -1
- package/dist/cjs/libs/api/get-builder-props.js +46 -1
- package/dist/cjs/libs/api/get-collection-props.js +68 -1
- package/dist/cjs/libs/api/get-home-page-props-v2.js +145 -1
- package/dist/cjs/libs/api/get-home-page-props.js +151 -1
- package/dist/cjs/libs/api/get-post-purchase-props-preview.js +268 -1
- package/dist/cjs/libs/api/get-preview-props.js +18 -1
- package/dist/cjs/libs/api/get-product-props.js +73 -1
- package/dist/cjs/libs/api/get-static-page-props-preview.js +155 -1
- package/dist/cjs/libs/api/get-static-page-props-v2.js +164 -1
- package/dist/cjs/libs/api/get-static-page-props.js +148 -1
- package/dist/cjs/libs/custom-fonts.js +60 -6
- package/dist/cjs/libs/fetcher.js +100 -1
- package/dist/cjs/libs/get-layout.js +13 -1
- package/dist/cjs/libs/get-storefront-api.js +12 -1
- package/dist/cjs/libs/getStaticPaths.js +10 -1
- package/dist/cjs/libs/google-fonts.js +118 -1
- package/dist/cjs/libs/helpers/check-option-font.js +65 -0
- package/dist/cjs/libs/helpers/common.js +27 -1
- package/dist/cjs/libs/helpers/gen-css.js +135 -1
- package/dist/cjs/libs/helpers/gen-fonts.js +90 -1
- package/dist/cjs/libs/helpers/generate-manifres.js +5 -1
- package/dist/cjs/libs/helpers/get-fallback.js +34 -1
- package/dist/cjs/libs/helpers/normalize.js +111 -1
- package/dist/cjs/libs/helpers/parse-json.js +16 -1
- package/dist/cjs/libs/helpers/user-agent.js +7 -1
- package/dist/cjs/libs/hooks/use-tracking-view.js +43 -1
- package/dist/cjs/libs/hooks/usePagePreview.js +92 -1
- package/dist/cjs/libs/parse-html.js +34 -1
- package/dist/cjs/libs/shopify-cdn-with-google-fonts.js +1845 -1
- package/dist/cjs/pages/404.js +43 -1
- package/dist/cjs/pages/500.js +74 -1
- package/dist/cjs/pages/CollectionGlobalProvider.js +59 -1
- package/dist/cjs/pages/builder.js +115 -1
- package/dist/cjs/pages/collection-detail.js +64 -1
- package/dist/cjs/pages/preview.js +26 -1
- package/dist/cjs/pages/product-detail.js +69 -1
- package/dist/cjs/pages/static-v2.js +139 -1
- package/dist/cjs/pages/static.js +75 -1
- package/dist/cjs/store/libs-store.js +14 -0
- package/dist/esm/components/ErrorBoundary.js +39 -1
- package/dist/esm/components/ErrorFallback.js +25 -1
- package/dist/esm/components/FacebookPixel.js +32 -3
- package/dist/esm/components/FooterForPostPurchase.js +31 -1
- package/dist/esm/components/GoogleAnalytic.js +64 -5
- package/dist/esm/components/TikTokPixel.js +18 -3
- package/dist/esm/components/builder/Body.js +33 -0
- package/dist/esm/components/builder/Footer.js +151 -0
- package/dist/esm/components/builder/Header.js +184 -0
- package/dist/esm/components/builder/PopupManager.js +60 -1
- package/dist/esm/components/builder/SwitchView.js +181 -0
- package/dist/esm/components/builder/Toolbar.js +697 -1
- package/dist/esm/components/builder/Toolbox.js +481 -1
- package/dist/esm/components/builder/const.js +54 -0
- package/dist/esm/components/builder/toolbar/const.js +4 -0
- package/dist/esm/components/builder/toolbar/utils/findDOMClosest.js +39 -0
- package/dist/esm/components/builder/toolbar/utils/findOverflowParent.js +18 -0
- package/dist/esm/components/builder/toolbar/utils/getChildrenByAttrSelector.js +16 -0
- package/dist/esm/components/builder/toolbar/utils/getDOMElementParents.js +30 -0
- package/dist/esm/components/builder/toolbar/utils/isOverParent.js +14 -0
- package/dist/esm/components/builder/toolbar/utils/isOverToolbarPosition.js +10 -0
- package/dist/esm/components/builder/toolbar/utils/isSection.js +6 -0
- package/dist/esm/components/builder/toolbar/utils/notVisible.js +6 -0
- package/dist/esm/components/builder/toolbar/utils/waitForElementToExist.js +25 -0
- package/dist/esm/components/image-to-layout/AddSectionImageToLayout.js +147 -1
- package/dist/esm/components/image-to-layout/DropElement.js +165 -1
- package/dist/esm/components/image-to-layout/ImageToLayout.js +38 -1
- package/dist/esm/index.js +35 -1
- package/dist/esm/layouts/main.js +27 -1
- package/dist/esm/libs/api/get-builder-props.js +44 -1
- package/dist/esm/libs/api/get-collection-props.js +66 -1
- package/dist/esm/libs/api/get-home-page-props-v2.js +143 -1
- package/dist/esm/libs/api/get-home-page-props.js +149 -1
- package/dist/esm/libs/api/get-post-purchase-props-preview.js +260 -1
- package/dist/esm/libs/api/get-preview-props.js +16 -1
- package/dist/esm/libs/api/get-product-props.js +71 -1
- package/dist/esm/libs/api/get-static-page-props-preview.js +153 -1
- package/dist/esm/libs/api/get-static-page-props-v2.js +162 -1
- package/dist/esm/libs/api/get-static-page-props.js +146 -1
- package/dist/esm/libs/custom-fonts.js +55 -6
- package/dist/esm/libs/fetcher.js +96 -1
- package/dist/esm/libs/get-layout.js +11 -1
- package/dist/esm/libs/get-storefront-api.js +10 -1
- package/dist/esm/libs/getStaticPaths.js +8 -1
- package/dist/esm/libs/google-fonts.js +112 -1
- package/dist/esm/libs/helpers/check-option-font.js +63 -0
- package/dist/esm/libs/helpers/common.js +24 -1
- package/dist/esm/libs/helpers/gen-css.js +133 -1
- package/dist/esm/libs/helpers/gen-fonts.js +87 -1
- package/dist/esm/libs/helpers/generate-manifres.js +3 -1
- package/dist/esm/libs/helpers/get-fallback.js +32 -1
- package/dist/esm/libs/helpers/normalize.js +103 -1
- package/dist/esm/libs/helpers/parse-json.js +13 -1
- package/dist/esm/libs/helpers/user-agent.js +5 -1
- package/dist/esm/libs/hooks/use-tracking-view.js +41 -1
- package/dist/esm/libs/hooks/usePagePreview.js +90 -1
- package/dist/esm/libs/parse-html.js +32 -1
- package/dist/esm/libs/shopify-cdn-with-google-fonts.js +1843 -1
- package/dist/esm/pages/404.js +41 -1
- package/dist/esm/pages/500.js +72 -1
- package/dist/esm/pages/CollectionGlobalProvider.js +55 -1
- package/dist/esm/pages/builder.js +113 -1
- package/dist/esm/pages/collection-detail.js +60 -1
- package/dist/esm/pages/preview.js +24 -1
- package/dist/esm/pages/product-detail.js +65 -1
- package/dist/esm/pages/static-v2.js +137 -1
- package/dist/esm/pages/static.js +71 -1
- package/dist/esm/store/libs-store.js +12 -0
- package/dist/types/index.d.ts +50 -34
- package/package.json +8 -5
- package/dist/cjs/components/Footer.js +0 -1
- package/dist/cjs/components/Header.js +0 -1
- package/dist/cjs/components/builder/toolbar/Onboarding.js +0 -1
- package/dist/esm/components/Footer.js +0 -1
- package/dist/esm/components/Header.js +0 -1
- package/dist/esm/components/builder/toolbar/Onboarding.js +0 -1
package/dist/esm/pages/404.js
CHANGED
|
@@ -1 +1,41 @@
|
|
|
1
|
-
import{jsxs
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { NextSeo } from 'next-seo';
|
|
3
|
+
import Image from 'next/image';
|
|
4
|
+
|
|
5
|
+
const Page404 = ()=>{
|
|
6
|
+
return /*#__PURE__*/ jsxs(Fragment, {
|
|
7
|
+
children: [
|
|
8
|
+
/*#__PURE__*/ jsx(NextSeo, {
|
|
9
|
+
title: "Page not found"
|
|
10
|
+
}),
|
|
11
|
+
/*#__PURE__*/ jsxs("div", {
|
|
12
|
+
className: "tablet:gp-max-w-2xl gp-container gp-mx-auto gp-flex gp-min-h-screen gp-max-w-4xl gp-flex-col gp-items-center gp-justify-center gp-gap-8 gp-px-8",
|
|
13
|
+
children: [
|
|
14
|
+
/*#__PURE__*/ jsx(Image, {
|
|
15
|
+
sizes: "(max-width: 768px) 100vw, 50vw",
|
|
16
|
+
src: "https://ucarecdn.com/27dfcf10-8fff-4341-90a0-dc97e4072acc/-/format/auto/",
|
|
17
|
+
width: 802,
|
|
18
|
+
height: 450,
|
|
19
|
+
alt: "Not found",
|
|
20
|
+
quality: 100,
|
|
21
|
+
priority: true
|
|
22
|
+
}),
|
|
23
|
+
/*#__PURE__*/ jsxs("div", {
|
|
24
|
+
className: "gp-flex gp-flex-col gp-items-center gp-justify-center gp-gap-2 gp-pb-36",
|
|
25
|
+
children: [
|
|
26
|
+
/*#__PURE__*/ jsx("h1", {
|
|
27
|
+
className: "mobile:gp-text-2xl gp-text-4xl gp-font-semibold",
|
|
28
|
+
children: "Oops! Page not found"
|
|
29
|
+
}),
|
|
30
|
+
/*#__PURE__*/ jsx("p", {
|
|
31
|
+
children: "Your page URL is incorrect."
|
|
32
|
+
})
|
|
33
|
+
]
|
|
34
|
+
})
|
|
35
|
+
]
|
|
36
|
+
})
|
|
37
|
+
]
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export { Page404 };
|
package/dist/esm/pages/500.js
CHANGED
|
@@ -1 +1,72 @@
|
|
|
1
|
-
import{jsxs
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { cls } from '@gem-sdk/core';
|
|
3
|
+
import { NextSeo } from 'next-seo';
|
|
4
|
+
import Image from 'next/image';
|
|
5
|
+
import { useState } from 'react';
|
|
6
|
+
|
|
7
|
+
const Page500 = ()=>{
|
|
8
|
+
const [loading, setLoading] = useState(false);
|
|
9
|
+
return /*#__PURE__*/ jsxs(Fragment, {
|
|
10
|
+
children: [
|
|
11
|
+
/*#__PURE__*/ jsx(NextSeo, {
|
|
12
|
+
title: "Service Unavailable"
|
|
13
|
+
}),
|
|
14
|
+
/*#__PURE__*/ jsxs("div", {
|
|
15
|
+
className: "tablet:gp-max-w-2xl gp-container gp-mx-auto gp-flex gp-min-h-screen gp-max-w-4xl gp-flex-col gp-items-center gp-justify-center gp-gap-8 gp-px-8",
|
|
16
|
+
children: [
|
|
17
|
+
/*#__PURE__*/ jsx(Image, {
|
|
18
|
+
sizes: "(max-width: 768px) 100vw, 50vw",
|
|
19
|
+
src: "https://ucarecdn.com/ea647025-54e3-4abb-87c4-859c5853ed56/-/format/auto/",
|
|
20
|
+
width: 802,
|
|
21
|
+
height: 450,
|
|
22
|
+
alt: "Not found",
|
|
23
|
+
quality: 100,
|
|
24
|
+
priority: true
|
|
25
|
+
}),
|
|
26
|
+
/*#__PURE__*/ jsxs("div", {
|
|
27
|
+
className: "gp-flex gp-flex-col gp-gap-8 gp-pb-36",
|
|
28
|
+
children: [
|
|
29
|
+
/*#__PURE__*/ jsxs("div", {
|
|
30
|
+
className: "gp-flex gp-flex-col gp-items-center gp-justify-center gp-gap-2 gp-text-center",
|
|
31
|
+
children: [
|
|
32
|
+
/*#__PURE__*/ jsx("h1", {
|
|
33
|
+
className: "mobile:gp-text-2xl gp-text-4xl gp-font-semiboldgp-",
|
|
34
|
+
children: "Service Unavailable"
|
|
35
|
+
}),
|
|
36
|
+
/*#__PURE__*/ jsx("p", {
|
|
37
|
+
className: "gp-text-center",
|
|
38
|
+
children: "The server is temporarily busy. Try again later."
|
|
39
|
+
})
|
|
40
|
+
]
|
|
41
|
+
}),
|
|
42
|
+
/*#__PURE__*/ jsxs("button", {
|
|
43
|
+
className: "gp-mx-auto gp-inline-flex gp-h-10 gp-items-center gp-justify-center gp-gap-2 gp-rounded gp-bg-[#3C67FF] gp-px-6 gp-text-white active:gp-translate-y-1",
|
|
44
|
+
onClick: ()=>{
|
|
45
|
+
setLoading(true);
|
|
46
|
+
window.location.reload();
|
|
47
|
+
},
|
|
48
|
+
children: [
|
|
49
|
+
/*#__PURE__*/ jsx("svg", {
|
|
50
|
+
className: cls('gp-w-5', {
|
|
51
|
+
'gp-animate-spin': loading
|
|
52
|
+
}),
|
|
53
|
+
viewBox: "0 0 20 20",
|
|
54
|
+
fill: "none",
|
|
55
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
56
|
+
children: /*#__PURE__*/ jsx("path", {
|
|
57
|
+
d: "M12.3408 3.03528C10.6845 2.42235 8.86506 2.41356 7.20294 3.01045C5.54082 3.60734 4.14265 4.77163 3.25471 6.29822C2.36677 7.82482 2.04603 9.61579 2.34898 11.3557C2.65193 13.0955 3.55915 14.6727 4.91081 15.8093C6.26248 16.9459 7.97189 17.5691 9.73794 17.5691C10.0831 17.5691 10.3629 17.2893 10.3629 16.9441C10.3629 16.5989 10.0831 16.3191 9.73792 16.3191C8.26621 16.3191 6.8417 15.7998 5.71531 14.8526C4.58892 13.9054 3.83291 12.5911 3.58045 11.1412C3.32799 9.69134 3.59528 8.19886 4.33523 6.9267C5.07518 5.65454 6.24032 4.6843 7.62542 4.18689C9.01052 3.68948 10.5267 3.69681 11.9069 4.20758C13.2872 4.71835 14.4429 5.69981 15.1705 6.97906C15.8981 8.25832 16.151 9.75331 15.8845 11.2007C15.677 12.3276 15.1651 13.3694 14.4127 14.2174L14.4127 11.7856C14.4127 11.4405 14.1329 11.1606 13.7877 11.1606C13.4425 11.1606 13.1627 11.4405 13.1627 11.7856L13.1627 15.4106C13.1627 15.5764 13.2285 15.7354 13.3457 15.8526C13.4629 15.9698 13.6219 16.0356 13.7877 16.0356H17.2845C17.6297 16.0356 17.9095 15.7558 17.9095 15.4106C17.9095 15.0655 17.6297 14.7856 17.2845 14.7856H15.5691C16.3513 13.8186 16.8858 12.6657 17.1139 11.427C17.4336 9.69015 17.1302 7.89616 16.257 6.36106C15.3839 4.82595 13.9971 3.64821 12.3408 3.03528Z",
|
|
58
|
+
fill: "currentColor"
|
|
59
|
+
})
|
|
60
|
+
}),
|
|
61
|
+
"Refresh"
|
|
62
|
+
]
|
|
63
|
+
})
|
|
64
|
+
]
|
|
65
|
+
})
|
|
66
|
+
]
|
|
67
|
+
})
|
|
68
|
+
]
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export { Page500 };
|
|
@@ -1 +1,55 @@
|
|
|
1
|
-
import{jsx
|
|
1
|
+
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { useState, useCallback, useEffect } from 'react';
|
|
3
|
+
import { useCollectionsQuery } from '@gem-sdk/core';
|
|
4
|
+
import dynamic from 'next/dynamic';
|
|
5
|
+
|
|
6
|
+
const CollectionProvider = dynamic(()=>import('@gem-sdk/core').then((m)=>m.CollectionProvider));
|
|
7
|
+
const CollectionGlobalProvider = ({ children })=>{
|
|
8
|
+
const [variables, setVariables] = useState({
|
|
9
|
+
first: 1,
|
|
10
|
+
orderBy: {
|
|
11
|
+
direction: 'DESC',
|
|
12
|
+
field: 'UPDATED_AT'
|
|
13
|
+
},
|
|
14
|
+
where: {
|
|
15
|
+
isSample: false
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
const { data: collections, isLoading, error } = useCollectionsQuery(variables);
|
|
19
|
+
const collection = collections?.collections?.edges?.[0]?.node;
|
|
20
|
+
const onChangeCollectionInfo = useCallback((e)=>{
|
|
21
|
+
const detail = e.detail;
|
|
22
|
+
setVariables({
|
|
23
|
+
...variables,
|
|
24
|
+
where: {
|
|
25
|
+
...variables.where,
|
|
26
|
+
baseID: detail?.baseID
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
}, [
|
|
30
|
+
variables
|
|
31
|
+
]);
|
|
32
|
+
useEffect(()=>{
|
|
33
|
+
window.addEventListener('update-collection-info', onChangeCollectionInfo);
|
|
34
|
+
return ()=>{
|
|
35
|
+
window.removeEventListener('update-collection-info', onChangeCollectionInfo);
|
|
36
|
+
};
|
|
37
|
+
}, [
|
|
38
|
+
onChangeCollectionInfo
|
|
39
|
+
]);
|
|
40
|
+
return /*#__PURE__*/ jsx(Fragment, {
|
|
41
|
+
children: isLoading ? /*#__PURE__*/ jsx("div", {
|
|
42
|
+
children: "Loading..."
|
|
43
|
+
}) : error ? /*#__PURE__*/ jsxs("div", {
|
|
44
|
+
children: [
|
|
45
|
+
"Error: ",
|
|
46
|
+
error?.message
|
|
47
|
+
]
|
|
48
|
+
}) : /*#__PURE__*/ jsx(CollectionProvider, {
|
|
49
|
+
collection: collection,
|
|
50
|
+
children: children
|
|
51
|
+
})
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export { CollectionGlobalProvider as default };
|
|
@@ -1 +1,113 @@
|
|
|
1
|
-
import{jsxs
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { PageProvider, BuilderComponentProvider, SectionProvider, BuilderPreviewProvider } from '@gem-sdk/core';
|
|
3
|
+
import { NextSeo } from 'next-seo';
|
|
4
|
+
import Head from 'next/head';
|
|
5
|
+
import { useState, useMemo, useEffect } from 'react';
|
|
6
|
+
import Toolbox from '../components/builder/Toolbox.js';
|
|
7
|
+
import Header from '../components/builder/Header.js';
|
|
8
|
+
import Footer from '../components/builder/Footer.js';
|
|
9
|
+
import PopupManager from '../components/builder/PopupManager.js';
|
|
10
|
+
import ImageToLayout from '../components/image-to-layout/ImageToLayout.js';
|
|
11
|
+
import AddSectionImageToLayout from '../components/image-to-layout/AddSectionImageToLayout.js';
|
|
12
|
+
import Toolbar from '../components/builder/Toolbar.js';
|
|
13
|
+
import Devices from '../components/builder/SwitchView.js';
|
|
14
|
+
import Body from '../components/builder/Body.js';
|
|
15
|
+
|
|
16
|
+
const BuilderPage = ({ components, seo, themeStyle, fontStyle, sectionData, pageType, editorImageToLayout, isThemeSectionEditor, hiddenToolbar, pageName, isOriginTemplate })=>{
|
|
17
|
+
const [loadSuccess, setLoadSuccess] = useState(false);
|
|
18
|
+
const isDisableHeaderFooter = ()=>{
|
|
19
|
+
return isThemeSectionEditor;
|
|
20
|
+
};
|
|
21
|
+
const initState = useMemo(()=>({
|
|
22
|
+
ROOT: {
|
|
23
|
+
uid: 'ROOT',
|
|
24
|
+
tag: 'Root',
|
|
25
|
+
label: 'Root',
|
|
26
|
+
childrens: []
|
|
27
|
+
}
|
|
28
|
+
}), []);
|
|
29
|
+
useEffect(()=>{
|
|
30
|
+
setLoadSuccess(true);
|
|
31
|
+
}, []);
|
|
32
|
+
const openPageSetting = ()=>{
|
|
33
|
+
window?.parent?.postMessage(JSON.stringify({
|
|
34
|
+
type: 'open-page-setting'
|
|
35
|
+
}), '*');
|
|
36
|
+
};
|
|
37
|
+
return /*#__PURE__*/ jsxs(Fragment, {
|
|
38
|
+
children: [
|
|
39
|
+
/*#__PURE__*/ jsx(NextSeo, {
|
|
40
|
+
...seo
|
|
41
|
+
}),
|
|
42
|
+
/*#__PURE__*/ jsxs(Head, {
|
|
43
|
+
children: [
|
|
44
|
+
themeStyle && /*#__PURE__*/ jsx("style", {
|
|
45
|
+
type: "text/css",
|
|
46
|
+
id: "global-style",
|
|
47
|
+
dangerouslySetInnerHTML: {
|
|
48
|
+
__html: themeStyle
|
|
49
|
+
}
|
|
50
|
+
}),
|
|
51
|
+
fontStyle && /*#__PURE__*/ jsx("style", {
|
|
52
|
+
"data-id": "google-fonts",
|
|
53
|
+
type: "text/css",
|
|
54
|
+
dangerouslySetInnerHTML: {
|
|
55
|
+
__html: fontStyle
|
|
56
|
+
}
|
|
57
|
+
})
|
|
58
|
+
]
|
|
59
|
+
}),
|
|
60
|
+
/*#__PURE__*/ jsx(PageProvider, {
|
|
61
|
+
children: /*#__PURE__*/ jsx(BuilderComponentProvider, {
|
|
62
|
+
components: components,
|
|
63
|
+
children: /*#__PURE__*/ jsx(SectionProvider, {
|
|
64
|
+
data: sectionData,
|
|
65
|
+
children: /*#__PURE__*/ jsxs(BuilderPreviewProvider, {
|
|
66
|
+
pageName: pageName,
|
|
67
|
+
state: initState,
|
|
68
|
+
isThemeSectionEditor: isThemeSectionEditor,
|
|
69
|
+
children: [
|
|
70
|
+
/*#__PURE__*/ jsx(Toolbox, {}),
|
|
71
|
+
!hiddenToolbar && /*#__PURE__*/ jsx(Toolbar, {}),
|
|
72
|
+
/*#__PURE__*/ jsx(PopupManager, {}),
|
|
73
|
+
loadSuccess && /*#__PURE__*/ jsxs("div", {
|
|
74
|
+
className: "builder gp-z-1 gp-relative",
|
|
75
|
+
children: [
|
|
76
|
+
!hiddenToolbar && (isDisableHeaderFooter() ? /*#__PURE__*/ jsx("div", {
|
|
77
|
+
className: "gp-h-[40px] gp-bg-[#ffffff] gp-border-b-[1px] gp-border-[#eeeeee]",
|
|
78
|
+
children: /*#__PURE__*/ jsx(Devices, {})
|
|
79
|
+
}) : /*#__PURE__*/ jsx(Header, {
|
|
80
|
+
pageType: pageType,
|
|
81
|
+
isOriginTemplate: isOriginTemplate,
|
|
82
|
+
openPageSetting: openPageSetting
|
|
83
|
+
})),
|
|
84
|
+
/*#__PURE__*/ jsx(Body, {
|
|
85
|
+
pageType: pageType,
|
|
86
|
+
isThemeSectionEditor: isThemeSectionEditor
|
|
87
|
+
}),
|
|
88
|
+
/*#__PURE__*/ jsx(ImageToLayout, {
|
|
89
|
+
editorImageToLayout: editorImageToLayout || false
|
|
90
|
+
}),
|
|
91
|
+
/*#__PURE__*/ jsx(AddSectionImageToLayout, {
|
|
92
|
+
editorImageToLayout: editorImageToLayout || false
|
|
93
|
+
}),
|
|
94
|
+
/*#__PURE__*/ jsx("div", {
|
|
95
|
+
id: "visual-content"
|
|
96
|
+
}),
|
|
97
|
+
!isDisableHeaderFooter() && !hiddenToolbar && /*#__PURE__*/ jsx(Footer, {
|
|
98
|
+
pageType: pageType,
|
|
99
|
+
isOriginTemplate: isOriginTemplate,
|
|
100
|
+
openPageSetting: openPageSetting
|
|
101
|
+
})
|
|
102
|
+
]
|
|
103
|
+
})
|
|
104
|
+
]
|
|
105
|
+
}, "preview")
|
|
106
|
+
})
|
|
107
|
+
})
|
|
108
|
+
})
|
|
109
|
+
]
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
export { BuilderPage };
|
|
@@ -1 +1,60 @@
|
|
|
1
|
-
import{jsx
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { PageProvider, BuilderComponentProvider, SectionProvider, BuilderProvider, Render } from '@gem-sdk/core';
|
|
3
|
+
import { NextSeo } from 'next-seo';
|
|
4
|
+
import dynamic from 'next/dynamic';
|
|
5
|
+
import Head from 'next/head';
|
|
6
|
+
import { useRouter } from 'next/router';
|
|
7
|
+
|
|
8
|
+
const CollectionProvider = dynamic(()=>import('@gem-sdk/core').then((m)=>m.CollectionProvider));
|
|
9
|
+
const CollectionDetailPage = ({ seo, components, builderData, sectionData, themeStyle, collection, fontStyle })=>{
|
|
10
|
+
const router = useRouter();
|
|
11
|
+
if (router.isFallback) {
|
|
12
|
+
return /*#__PURE__*/ jsx("div", {
|
|
13
|
+
children: "Loading..."
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return /*#__PURE__*/ jsxs(Fragment, {
|
|
17
|
+
children: [
|
|
18
|
+
/*#__PURE__*/ jsx(NextSeo, {
|
|
19
|
+
...seo
|
|
20
|
+
}),
|
|
21
|
+
/*#__PURE__*/ jsxs(Head, {
|
|
22
|
+
children: [
|
|
23
|
+
themeStyle && /*#__PURE__*/ jsx("style", {
|
|
24
|
+
"data-id": "global-style",
|
|
25
|
+
type: "text/css",
|
|
26
|
+
dangerouslySetInnerHTML: {
|
|
27
|
+
__html: themeStyle
|
|
28
|
+
}
|
|
29
|
+
}),
|
|
30
|
+
fontStyle && /*#__PURE__*/ jsx("style", {
|
|
31
|
+
"data-id": "google-fonts",
|
|
32
|
+
type: "text/css",
|
|
33
|
+
dangerouslySetInnerHTML: {
|
|
34
|
+
__html: fontStyle
|
|
35
|
+
}
|
|
36
|
+
})
|
|
37
|
+
]
|
|
38
|
+
}),
|
|
39
|
+
/*#__PURE__*/ jsx(PageProvider, {
|
|
40
|
+
children: /*#__PURE__*/ jsx(BuilderComponentProvider, {
|
|
41
|
+
components: components,
|
|
42
|
+
children: /*#__PURE__*/ jsx(SectionProvider, {
|
|
43
|
+
data: sectionData,
|
|
44
|
+
children: /*#__PURE__*/ jsx(CollectionProvider, {
|
|
45
|
+
collection: collection,
|
|
46
|
+
children: builderData && /*#__PURE__*/ jsx(BuilderProvider, {
|
|
47
|
+
state: builderData,
|
|
48
|
+
children: /*#__PURE__*/ jsx(Render, {
|
|
49
|
+
uid: "ROOT"
|
|
50
|
+
})
|
|
51
|
+
})
|
|
52
|
+
})
|
|
53
|
+
})
|
|
54
|
+
})
|
|
55
|
+
})
|
|
56
|
+
]
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export { CollectionDetailPage as default };
|
|
@@ -1 +1,24 @@
|
|
|
1
|
-
import{jsx
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import dynamic from 'next/dynamic';
|
|
3
|
+
|
|
4
|
+
const StaticPage = dynamic(()=>import('./static.js'));
|
|
5
|
+
const ProductPage = dynamic(()=>import('./product-detail.js'));
|
|
6
|
+
const CollectionPage = dynamic(()=>import('./collection-detail.js'));
|
|
7
|
+
const PreviewPage = ({ pageType, ...props })=>{
|
|
8
|
+
switch(pageType){
|
|
9
|
+
case 'PRODUCT':
|
|
10
|
+
return /*#__PURE__*/ jsx(ProductPage, {
|
|
11
|
+
...props
|
|
12
|
+
});
|
|
13
|
+
case 'COLLECTION':
|
|
14
|
+
return /*#__PURE__*/ jsx(CollectionPage, {
|
|
15
|
+
...props
|
|
16
|
+
});
|
|
17
|
+
default:
|
|
18
|
+
return /*#__PURE__*/ jsx(StaticPage, {
|
|
19
|
+
...props
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export { PreviewPage };
|
|
@@ -1 +1,65 @@
|
|
|
1
|
-
import{jsx
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { PageProvider, BuilderComponentProvider, SectionProvider, BuilderProvider, Render, AddOn } from '@gem-sdk/core';
|
|
3
|
+
import { NextSeo } from 'next-seo';
|
|
4
|
+
import dynamic from 'next/dynamic';
|
|
5
|
+
import Head from 'next/head';
|
|
6
|
+
import { useRouter } from 'next/router';
|
|
7
|
+
|
|
8
|
+
const ProductProvider = dynamic(()=>import('@gem-sdk/core').then((m)=>m.ProductProvider));
|
|
9
|
+
const ProductDetailPage = ({ themeStyle, fontStyle, seo, product, components, builderData, sectionData })=>{
|
|
10
|
+
const router = useRouter();
|
|
11
|
+
if (router.isFallback) {
|
|
12
|
+
return /*#__PURE__*/ jsx("div", {
|
|
13
|
+
children: "Loading..."
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return /*#__PURE__*/ jsxs(Fragment, {
|
|
17
|
+
children: [
|
|
18
|
+
/*#__PURE__*/ jsx(NextSeo, {
|
|
19
|
+
...seo
|
|
20
|
+
}),
|
|
21
|
+
/*#__PURE__*/ jsxs(Head, {
|
|
22
|
+
children: [
|
|
23
|
+
themeStyle && /*#__PURE__*/ jsx("style", {
|
|
24
|
+
"data-id": "global-style",
|
|
25
|
+
type: "text/css",
|
|
26
|
+
dangerouslySetInnerHTML: {
|
|
27
|
+
__html: themeStyle
|
|
28
|
+
}
|
|
29
|
+
}),
|
|
30
|
+
fontStyle && /*#__PURE__*/ jsx("style", {
|
|
31
|
+
"data-id": "google-fonts",
|
|
32
|
+
type: "text/css",
|
|
33
|
+
dangerouslySetInnerHTML: {
|
|
34
|
+
__html: fontStyle
|
|
35
|
+
}
|
|
36
|
+
})
|
|
37
|
+
]
|
|
38
|
+
}),
|
|
39
|
+
/*#__PURE__*/ jsx(PageProvider, {
|
|
40
|
+
children: /*#__PURE__*/ jsx(BuilderComponentProvider, {
|
|
41
|
+
components: components,
|
|
42
|
+
children: /*#__PURE__*/ jsx(SectionProvider, {
|
|
43
|
+
data: sectionData,
|
|
44
|
+
children: /*#__PURE__*/ jsxs(ProductProvider, {
|
|
45
|
+
product: product,
|
|
46
|
+
children: [
|
|
47
|
+
builderData && /*#__PURE__*/ jsx(BuilderProvider, {
|
|
48
|
+
state: builderData,
|
|
49
|
+
children: /*#__PURE__*/ jsx(Render, {
|
|
50
|
+
uid: "ROOT"
|
|
51
|
+
})
|
|
52
|
+
}),
|
|
53
|
+
/*#__PURE__*/ jsx(AddOn, {
|
|
54
|
+
name: "sticky-add-to-cart"
|
|
55
|
+
})
|
|
56
|
+
]
|
|
57
|
+
})
|
|
58
|
+
})
|
|
59
|
+
})
|
|
60
|
+
})
|
|
61
|
+
]
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export { ProductDetailPage as default };
|
|
@@ -1 +1,137 @@
|
|
|
1
|
-
import{jsx
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { PageProvider, BuilderComponentProvider, SectionProvider, BuilderProvider, Render } from '@gem-sdk/core';
|
|
3
|
+
import { NextSeo } from 'next-seo';
|
|
4
|
+
import Head from 'next/head';
|
|
5
|
+
import { useRouter } from 'next/router';
|
|
6
|
+
import { useTrackingView } from '../libs/hooks/use-tracking-view.js';
|
|
7
|
+
import { parseHtml } from '../libs/parse-html.js';
|
|
8
|
+
import Header from '../components/builder/Header.js';
|
|
9
|
+
import FooterForPostPurchase from '../components/FooterForPostPurchase.js';
|
|
10
|
+
import Script from 'next/script';
|
|
11
|
+
import { useEffect } from 'react';
|
|
12
|
+
|
|
13
|
+
const StaticPageV2 = ({ components, builderData, sectionData, seo, themeStyle, fontStyle, elementFontStyle, customCodeHeader, shopToken, pageHandle, customFonts, isPostPurchase, shopName, productOffers, publicStoreFrontData, isPreview, interaction, pageBackground })=>{
|
|
14
|
+
const router = useRouter();
|
|
15
|
+
const baseAssetURL = process.env.NEXT_GP_BASE_ASSET_URL || 'https://d3kbi0je7pp4lw.cloudfront.net';
|
|
16
|
+
useTrackingView(shopToken, pageHandle, router.isFallback);
|
|
17
|
+
const customCodeHeaderID = 'custom-code-header';
|
|
18
|
+
useEffect(()=>{
|
|
19
|
+
const customCodeHeaderElement = document.querySelectorAll(`#${customCodeHeaderID}`);
|
|
20
|
+
if (customCodeHeaderElement.length > 1) {
|
|
21
|
+
customCodeHeaderElement.forEach((script, index)=>{
|
|
22
|
+
if (index !== 0) script.remove();
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
}, []);
|
|
26
|
+
if (router.isFallback) {
|
|
27
|
+
return /*#__PURE__*/ jsx("div", {
|
|
28
|
+
className: "gp-flex gp-h-[100vh] gp-items-center gp-justify-center",
|
|
29
|
+
children: /*#__PURE__*/ jsxs("div", {
|
|
30
|
+
className: "gp-flex gp-gap-2",
|
|
31
|
+
children: [
|
|
32
|
+
/*#__PURE__*/ jsx("span", {
|
|
33
|
+
className: "gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_alternate] gp-rounded-full gp-bg-slate-800"
|
|
34
|
+
}),
|
|
35
|
+
/*#__PURE__*/ jsx("span", {
|
|
36
|
+
className: "gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_200ms_linear_alternate] gp-rounded-full gp-bg-slate-800"
|
|
37
|
+
}),
|
|
38
|
+
/*#__PURE__*/ jsx("span", {
|
|
39
|
+
className: "gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_500ms_alternate] gp-rounded-full gp-bg-slate-800"
|
|
40
|
+
})
|
|
41
|
+
]
|
|
42
|
+
})
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
const hasInteraction = (interaction?.value || []).length > 0;
|
|
46
|
+
return /*#__PURE__*/ jsxs(Fragment, {
|
|
47
|
+
children: [
|
|
48
|
+
/*#__PURE__*/ jsx(NextSeo, {
|
|
49
|
+
...seo
|
|
50
|
+
}),
|
|
51
|
+
/*#__PURE__*/ jsxs(Head, {
|
|
52
|
+
children: [
|
|
53
|
+
parseHtml(customCodeHeaderID, customCodeHeader, true),
|
|
54
|
+
themeStyle && /*#__PURE__*/ jsx("style", {
|
|
55
|
+
"data-id": "global-style",
|
|
56
|
+
type: "text/css",
|
|
57
|
+
dangerouslySetInnerHTML: {
|
|
58
|
+
__html: themeStyle
|
|
59
|
+
}
|
|
60
|
+
}, "global-style"),
|
|
61
|
+
fontStyle && /*#__PURE__*/ jsx("style", {
|
|
62
|
+
"data-id": "google-fonts",
|
|
63
|
+
type: "text/css",
|
|
64
|
+
dangerouslySetInnerHTML: {
|
|
65
|
+
__html: fontStyle
|
|
66
|
+
}
|
|
67
|
+
}, "google-fonts"),
|
|
68
|
+
elementFontStyle && elementFontStyle.map((fontStyle)=>/*#__PURE__*/ jsx("style", {
|
|
69
|
+
"data-id": "google-element-fonts",
|
|
70
|
+
type: "text/css",
|
|
71
|
+
dangerouslySetInnerHTML: {
|
|
72
|
+
__html: fontStyle
|
|
73
|
+
}
|
|
74
|
+
}, fontStyle)),
|
|
75
|
+
customFonts && /*#__PURE__*/ jsx("style", {
|
|
76
|
+
"data-id": "custom-element-fonts",
|
|
77
|
+
type: "text/css",
|
|
78
|
+
dangerouslySetInnerHTML: {
|
|
79
|
+
__html: customFonts
|
|
80
|
+
}
|
|
81
|
+
}, fontStyle),
|
|
82
|
+
pageBackground?.isUsePageBackground && pageBackground?.background && /*#__PURE__*/ jsx("style", {
|
|
83
|
+
children: `
|
|
84
|
+
body {
|
|
85
|
+
background: ${pageBackground.background};
|
|
86
|
+
}
|
|
87
|
+
`
|
|
88
|
+
}, `page_background_${pageBackground?.background}`)
|
|
89
|
+
]
|
|
90
|
+
}),
|
|
91
|
+
/*#__PURE__*/ jsx(PageProvider, {
|
|
92
|
+
productOffers: productOffers,
|
|
93
|
+
publicStoreFrontData: publicStoreFrontData,
|
|
94
|
+
children: /*#__PURE__*/ jsx(BuilderComponentProvider, {
|
|
95
|
+
components: components,
|
|
96
|
+
children: /*#__PURE__*/ jsxs("div", {
|
|
97
|
+
className: `${isPostPurchase ? 'gp-bg-white post-purchase-page' : ''} `,
|
|
98
|
+
children: [
|
|
99
|
+
isPostPurchase && /*#__PURE__*/ jsx(Header, {
|
|
100
|
+
pageType: "POST_PURCHASE"
|
|
101
|
+
}),
|
|
102
|
+
hasInteraction && /*#__PURE__*/ jsx("div", {
|
|
103
|
+
dangerouslySetInnerHTML: {
|
|
104
|
+
__html: `<div id="gp-interaction" style="display: none;">${JSON.stringify(interaction?.value || [])}</div>`
|
|
105
|
+
}
|
|
106
|
+
}),
|
|
107
|
+
/*#__PURE__*/ jsx(SectionProvider, {
|
|
108
|
+
data: sectionData,
|
|
109
|
+
children: builderData?.map((builder)=>/*#__PURE__*/ jsxs(BuilderProvider, {
|
|
110
|
+
state: builder.data,
|
|
111
|
+
lazy: builder.lazy,
|
|
112
|
+
priority: builder.priority,
|
|
113
|
+
isPostPurchase: isPostPurchase,
|
|
114
|
+
isPreview: isPreview,
|
|
115
|
+
children: [
|
|
116
|
+
/*#__PURE__*/ jsx(Render, {
|
|
117
|
+
uid: builder.uid
|
|
118
|
+
}),
|
|
119
|
+
hasInteraction && /*#__PURE__*/ jsx(Script, {
|
|
120
|
+
defer: true,
|
|
121
|
+
src: `${baseAssetURL}/assets-v2/gp-flow-action-lip.js`
|
|
122
|
+
})
|
|
123
|
+
]
|
|
124
|
+
}, builder.uid))
|
|
125
|
+
}),
|
|
126
|
+
isPostPurchase && /*#__PURE__*/ jsx(FooterForPostPurchase, {
|
|
127
|
+
shopName: shopName || ''
|
|
128
|
+
})
|
|
129
|
+
]
|
|
130
|
+
})
|
|
131
|
+
})
|
|
132
|
+
})
|
|
133
|
+
]
|
|
134
|
+
});
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
export { StaticPageV2 };
|