@ikas/storefront 0.0.26 → 0.0.28
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/build/components/page/head.d.ts +2 -0
- package/build/index.es.js +28 -13
- package/build/index.js +28 -13
- package/build/utils/providers/page-data.d.ts +2 -2
- package/package.json +1 -1
|
@@ -2,6 +2,8 @@ import * as React from "react";
|
|
|
2
2
|
import { IkasThemePage } from "../../models/index";
|
|
3
3
|
declare type Props = {
|
|
4
4
|
page?: IkasThemePage;
|
|
5
|
+
pageTitle?: string | null;
|
|
6
|
+
description?: string | null;
|
|
5
7
|
pageSpecificDataStr?: string;
|
|
6
8
|
};
|
|
7
9
|
export declare const IkasPageHead: React.FC<Props>;
|
package/build/index.es.js
CHANGED
|
@@ -11634,7 +11634,7 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
11634
11634
|
IkasPageDataProvider.isServer = function () {
|
|
11635
11635
|
return typeof window === "undefined";
|
|
11636
11636
|
};
|
|
11637
|
-
IkasPageDataProvider.initPropValues = function (propValuesStr, router) {
|
|
11637
|
+
IkasPageDataProvider.initPropValues = function (propValuesStr, router, isBrowser) {
|
|
11638
11638
|
var pageComponentPropValues = JSON.parse(propValuesStr).map(function (v) { return ({
|
|
11639
11639
|
pageComponent: new IkasThemePageComponent(v.pageComponent),
|
|
11640
11640
|
component: new IkasThemeComponent(v.component),
|
|
@@ -11669,7 +11669,7 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
11669
11669
|
IkasPageDataProvider.initProductListPropValue(prop, propValue, pageComponentPropValue);
|
|
11670
11670
|
break;
|
|
11671
11671
|
case IkasThemeComponentPropType.PRODUCT_DETAIL:
|
|
11672
|
-
IkasPageDataProvider.initProductDetailPropValue(prop, propValue, pageComponentPropValue, router);
|
|
11672
|
+
IkasPageDataProvider.initProductDetailPropValue(prop, propValue, pageComponentPropValue, router, isBrowser);
|
|
11673
11673
|
break;
|
|
11674
11674
|
case IkasThemeComponentPropType.LINK:
|
|
11675
11675
|
case IkasThemeComponentPropType.LIST_OF_LINK:
|
|
@@ -11700,11 +11700,10 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
11700
11700
|
var productList = new IkasProductList(propValue);
|
|
11701
11701
|
pageComponentPropValue.propValues[prop.name] = productList;
|
|
11702
11702
|
};
|
|
11703
|
-
IkasPageDataProvider.initProductDetailPropValue = function (prop, propValue, pageComponentPropValue, router) {
|
|
11703
|
+
IkasPageDataProvider.initProductDetailPropValue = function (prop, propValue, pageComponentPropValue, router, isBrowser) {
|
|
11704
11704
|
var usePageData = propValue.usePageData;
|
|
11705
11705
|
var _propValue = propValue;
|
|
11706
11706
|
var productDetail = new IkasProductDetail(_propValue.product, _propValue.selectedVariantValues);
|
|
11707
|
-
var isBrowser = typeof window !== "undefined";
|
|
11708
11707
|
if (isBrowser) {
|
|
11709
11708
|
var urlParams = new URLSearchParams(window.location.search);
|
|
11710
11709
|
var vid_1 = urlParams.get("vid");
|
|
@@ -13661,7 +13660,7 @@ var IkasProductDetail = /** @class */ (function () {
|
|
|
13661
13660
|
var newUrl = "/" + metaData.slug + "-" + this.selectedVariantValues
|
|
13662
13661
|
.map(function (vv) { return vv.slug; })
|
|
13663
13662
|
.join("-");
|
|
13664
|
-
(_a = this.router) === null || _a === void 0 ? void 0 : _a.replace(newUrl);
|
|
13663
|
+
(_a = this.router) === null || _a === void 0 ? void 0 : _a.replace(newUrl, undefined, { shallow: true });
|
|
13665
13664
|
};
|
|
13666
13665
|
return IkasProductDetail;
|
|
13667
13666
|
}());
|
|
@@ -22683,14 +22682,14 @@ var PolicyModal = observer(function (_a) {
|
|
|
22683
22682
|
});
|
|
22684
22683
|
|
|
22685
22684
|
var IkasPageHead = observer(function (_a) {
|
|
22686
|
-
var page = _a.page, pageSpecificDataStr = _a.pageSpecificDataStr;
|
|
22685
|
+
var page = _a.page, pageTitle = _a.pageTitle, description = _a.description, pageSpecificDataStr = _a.pageSpecificDataStr;
|
|
22687
22686
|
var schema;
|
|
22688
22687
|
if (pageSpecificDataStr && (page === null || page === void 0 ? void 0 : page.type) === IkasThemePageType.PRODUCT) {
|
|
22689
22688
|
schema = createProductSchema(pageSpecificDataStr);
|
|
22690
22689
|
}
|
|
22691
22690
|
return (createElement(Head, null,
|
|
22692
|
-
createElement("title", null,
|
|
22693
|
-
createElement("meta", { name: "description", content:
|
|
22691
|
+
createElement("title", null, pageTitle || ""),
|
|
22692
|
+
createElement("meta", { name: "description", content: description || "" }),
|
|
22694
22693
|
!!schema && (createElement("script", { type: "application/ld+json", dangerouslySetInnerHTML: {
|
|
22695
22694
|
__html: JSON.stringify(schema),
|
|
22696
22695
|
} }))));
|
|
@@ -22699,6 +22698,17 @@ function createProductSchema(pageSpecificDataStr) {
|
|
|
22699
22698
|
var _a;
|
|
22700
22699
|
var productDetailParsed = JSON.parse(pageSpecificDataStr);
|
|
22701
22700
|
var productDetail = new IkasProductDetail(productDetailParsed.product, productDetailParsed.selectedVariantValues);
|
|
22701
|
+
var isBrowser = typeof window !== undefined;
|
|
22702
|
+
if (isBrowser) {
|
|
22703
|
+
var urlParams = new URLSearchParams(window.location.search);
|
|
22704
|
+
var vid_1 = urlParams.get("vid");
|
|
22705
|
+
if (vid_1) {
|
|
22706
|
+
var variant = productDetail.product.variants.find(function (v) { return v.id === vid_1; });
|
|
22707
|
+
if (variant) {
|
|
22708
|
+
productDetail.selectedVariantValues = variant.variantValues;
|
|
22709
|
+
}
|
|
22710
|
+
}
|
|
22711
|
+
}
|
|
22702
22712
|
return {
|
|
22703
22713
|
"@context": "https://schema.org/",
|
|
22704
22714
|
"@type": "Product",
|
|
@@ -22911,7 +22921,7 @@ var IkasPage = observer(function (_a) {
|
|
|
22911
22921
|
if (!page)
|
|
22912
22922
|
return null;
|
|
22913
22923
|
return (createElement(Fragment, null,
|
|
22914
|
-
createElement(IkasPageHead, { page: page, pageSpecificDataStr: pageSpecificDataStr }),
|
|
22924
|
+
createElement(IkasPageHead, { page: page, pageTitle: page.pageTitle, description: page.description, pageSpecificDataStr: pageSpecificDataStr }),
|
|
22915
22925
|
createElement("div", { style: pageStyle },
|
|
22916
22926
|
createElement("div", null,
|
|
22917
22927
|
headerComponent && renderComponent(headerComponent, -1),
|
|
@@ -23405,11 +23415,16 @@ var home = /*#__PURE__*/Object.freeze({
|
|
|
23405
23415
|
var Page$1 = function (_a) {
|
|
23406
23416
|
var page = _a.page, pageSpecificDataStr = _a.pageSpecificDataStr, propValuesStr = _a.propValuesStr;
|
|
23407
23417
|
var router = useRouter();
|
|
23408
|
-
var
|
|
23409
|
-
|
|
23410
|
-
|
|
23418
|
+
var _b = useState(false), isBrowser = _b[0], setIsBrowser = _b[1];
|
|
23419
|
+
var _c = useState(IkasPageDataProvider.initPropValues(propValuesStr, router)), propValues = _c[0], setPropValues = _c[1];
|
|
23420
|
+
useEffect(function () {
|
|
23421
|
+
setIsBrowser(typeof window !== "undefined");
|
|
23422
|
+
}, []);
|
|
23423
|
+
useEffect(function () {
|
|
23424
|
+
setPropValues(IkasPageDataProvider.initPropValues(propValuesStr, router, isBrowser));
|
|
23425
|
+
}, [isBrowser]);
|
|
23411
23426
|
handleGTM(page, pageSpecificDataStr);
|
|
23412
|
-
return (createElement(IkasPage, { page: page, propValues: propValues
|
|
23427
|
+
return (createElement(IkasPage, { page: page, propValues: propValues, pageSpecificDataStr: pageSpecificDataStr }));
|
|
23413
23428
|
};
|
|
23414
23429
|
var index$1 = observer(Page$1);
|
|
23415
23430
|
var getStaticPaths = function (context) { return __awaiter(void 0, void 0, void 0, function () {
|
package/build/index.js
CHANGED
|
@@ -11647,7 +11647,7 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
11647
11647
|
IkasPageDataProvider.isServer = function () {
|
|
11648
11648
|
return typeof window === "undefined";
|
|
11649
11649
|
};
|
|
11650
|
-
IkasPageDataProvider.initPropValues = function (propValuesStr, router) {
|
|
11650
|
+
IkasPageDataProvider.initPropValues = function (propValuesStr, router, isBrowser) {
|
|
11651
11651
|
var pageComponentPropValues = JSON.parse(propValuesStr).map(function (v) { return ({
|
|
11652
11652
|
pageComponent: new IkasThemePageComponent(v.pageComponent),
|
|
11653
11653
|
component: new IkasThemeComponent(v.component),
|
|
@@ -11682,7 +11682,7 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
11682
11682
|
IkasPageDataProvider.initProductListPropValue(prop, propValue, pageComponentPropValue);
|
|
11683
11683
|
break;
|
|
11684
11684
|
case exports.IkasThemeComponentPropType.PRODUCT_DETAIL:
|
|
11685
|
-
IkasPageDataProvider.initProductDetailPropValue(prop, propValue, pageComponentPropValue, router);
|
|
11685
|
+
IkasPageDataProvider.initProductDetailPropValue(prop, propValue, pageComponentPropValue, router, isBrowser);
|
|
11686
11686
|
break;
|
|
11687
11687
|
case exports.IkasThemeComponentPropType.LINK:
|
|
11688
11688
|
case exports.IkasThemeComponentPropType.LIST_OF_LINK:
|
|
@@ -11713,11 +11713,10 @@ var IkasPageDataProvider = /** @class */ (function () {
|
|
|
11713
11713
|
var productList = new IkasProductList(propValue);
|
|
11714
11714
|
pageComponentPropValue.propValues[prop.name] = productList;
|
|
11715
11715
|
};
|
|
11716
|
-
IkasPageDataProvider.initProductDetailPropValue = function (prop, propValue, pageComponentPropValue, router) {
|
|
11716
|
+
IkasPageDataProvider.initProductDetailPropValue = function (prop, propValue, pageComponentPropValue, router, isBrowser) {
|
|
11717
11717
|
var usePageData = propValue.usePageData;
|
|
11718
11718
|
var _propValue = propValue;
|
|
11719
11719
|
var productDetail = new IkasProductDetail(_propValue.product, _propValue.selectedVariantValues);
|
|
11720
|
-
var isBrowser = typeof window !== "undefined";
|
|
11721
11720
|
if (isBrowser) {
|
|
11722
11721
|
var urlParams = new URLSearchParams(window.location.search);
|
|
11723
11722
|
var vid_1 = urlParams.get("vid");
|
|
@@ -13647,7 +13646,7 @@ var IkasProductDetail = /** @class */ (function () {
|
|
|
13647
13646
|
var newUrl = "/" + metaData.slug + "-" + this.selectedVariantValues
|
|
13648
13647
|
.map(function (vv) { return vv.slug; })
|
|
13649
13648
|
.join("-");
|
|
13650
|
-
(_a = this.router) === null || _a === void 0 ? void 0 : _a.replace(newUrl);
|
|
13649
|
+
(_a = this.router) === null || _a === void 0 ? void 0 : _a.replace(newUrl, undefined, { shallow: true });
|
|
13651
13650
|
};
|
|
13652
13651
|
return IkasProductDetail;
|
|
13653
13652
|
}());
|
|
@@ -22667,14 +22666,14 @@ var PolicyModal = mobxReactLite.observer(function (_a) {
|
|
|
22667
22666
|
});
|
|
22668
22667
|
|
|
22669
22668
|
var IkasPageHead = mobxReactLite.observer(function (_a) {
|
|
22670
|
-
var page = _a.page, pageSpecificDataStr = _a.pageSpecificDataStr;
|
|
22669
|
+
var page = _a.page, pageTitle = _a.pageTitle, description = _a.description, pageSpecificDataStr = _a.pageSpecificDataStr;
|
|
22671
22670
|
var schema;
|
|
22672
22671
|
if (pageSpecificDataStr && (page === null || page === void 0 ? void 0 : page.type) === exports.IkasThemePageType.PRODUCT) {
|
|
22673
22672
|
schema = createProductSchema(pageSpecificDataStr);
|
|
22674
22673
|
}
|
|
22675
22674
|
return (React.createElement(Head__default['default'], null,
|
|
22676
|
-
React.createElement("title", null,
|
|
22677
|
-
React.createElement("meta", { name: "description", content:
|
|
22675
|
+
React.createElement("title", null, pageTitle || ""),
|
|
22676
|
+
React.createElement("meta", { name: "description", content: description || "" }),
|
|
22678
22677
|
!!schema && (React.createElement("script", { type: "application/ld+json", dangerouslySetInnerHTML: {
|
|
22679
22678
|
__html: JSON.stringify(schema),
|
|
22680
22679
|
} }))));
|
|
@@ -22683,6 +22682,17 @@ function createProductSchema(pageSpecificDataStr) {
|
|
|
22683
22682
|
var _a;
|
|
22684
22683
|
var productDetailParsed = JSON.parse(pageSpecificDataStr);
|
|
22685
22684
|
var productDetail = new IkasProductDetail(productDetailParsed.product, productDetailParsed.selectedVariantValues);
|
|
22685
|
+
var isBrowser = typeof window !== undefined;
|
|
22686
|
+
if (isBrowser) {
|
|
22687
|
+
var urlParams = new URLSearchParams(window.location.search);
|
|
22688
|
+
var vid_1 = urlParams.get("vid");
|
|
22689
|
+
if (vid_1) {
|
|
22690
|
+
var variant = productDetail.product.variants.find(function (v) { return v.id === vid_1; });
|
|
22691
|
+
if (variant) {
|
|
22692
|
+
productDetail.selectedVariantValues = variant.variantValues;
|
|
22693
|
+
}
|
|
22694
|
+
}
|
|
22695
|
+
}
|
|
22686
22696
|
return {
|
|
22687
22697
|
"@context": "https://schema.org/",
|
|
22688
22698
|
"@type": "Product",
|
|
@@ -22895,7 +22905,7 @@ var IkasPage = mobxReactLite.observer(function (_a) {
|
|
|
22895
22905
|
if (!page)
|
|
22896
22906
|
return null;
|
|
22897
22907
|
return (React.createElement(React.Fragment, null,
|
|
22898
|
-
React.createElement(IkasPageHead, { page: page, pageSpecificDataStr: pageSpecificDataStr }),
|
|
22908
|
+
React.createElement(IkasPageHead, { page: page, pageTitle: page.pageTitle, description: page.description, pageSpecificDataStr: pageSpecificDataStr }),
|
|
22899
22909
|
React.createElement("div", { style: pageStyle },
|
|
22900
22910
|
React.createElement("div", null,
|
|
22901
22911
|
headerComponent && renderComponent(headerComponent, -1),
|
|
@@ -23389,11 +23399,16 @@ var home = /*#__PURE__*/Object.freeze({
|
|
|
23389
23399
|
var Page$1 = function (_a) {
|
|
23390
23400
|
var page = _a.page, pageSpecificDataStr = _a.pageSpecificDataStr, propValuesStr = _a.propValuesStr;
|
|
23391
23401
|
var router$1 = router.useRouter();
|
|
23392
|
-
var
|
|
23393
|
-
|
|
23394
|
-
|
|
23402
|
+
var _b = React.useState(false), isBrowser = _b[0], setIsBrowser = _b[1];
|
|
23403
|
+
var _c = React.useState(IkasPageDataProvider.initPropValues(propValuesStr, router$1)), propValues = _c[0], setPropValues = _c[1];
|
|
23404
|
+
React.useEffect(function () {
|
|
23405
|
+
setIsBrowser(typeof window !== "undefined");
|
|
23406
|
+
}, []);
|
|
23407
|
+
React.useEffect(function () {
|
|
23408
|
+
setPropValues(IkasPageDataProvider.initPropValues(propValuesStr, router$1, isBrowser));
|
|
23409
|
+
}, [isBrowser]);
|
|
23395
23410
|
handleGTM(page, pageSpecificDataStr);
|
|
23396
|
-
return (React.createElement(IkasPage, { page: page, propValues: propValues
|
|
23411
|
+
return (React.createElement(IkasPage, { page: page, propValues: propValues, pageSpecificDataStr: pageSpecificDataStr }));
|
|
23397
23412
|
};
|
|
23398
23413
|
var index$1 = mobxReactLite.observer(Page$1);
|
|
23399
23414
|
var getStaticPaths = function (context) { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -22,13 +22,13 @@ export declare class IkasPageDataProvider {
|
|
|
22
22
|
getPageComponentPropValue(pageComponent: IkasThemePageComponent, prop: IkasThemeComponentProp): Promise<any>;
|
|
23
23
|
private setPageMetaData;
|
|
24
24
|
static isServer(): boolean;
|
|
25
|
-
static initPropValues(propValuesStr: string, router: NextRouter): IkasPageComponentPropValue[];
|
|
25
|
+
static initPropValues(propValuesStr: string, router: NextRouter, isBrowser?: boolean): IkasPageComponentPropValue[];
|
|
26
26
|
static initBrandPropValue(prop: IkasThemeComponentProp, propValue: any, pageComponentPropValue: IkasPageComponentPropValue): void;
|
|
27
27
|
static initBrandListPropValue(prop: IkasThemeComponentProp, propValue: any, pageComponentPropValue: IkasPageComponentPropValue): void;
|
|
28
28
|
static initCategoryPropValue(prop: IkasThemeComponentProp, propValue: any, pageComponentPropValue: IkasPageComponentPropValue): void;
|
|
29
29
|
static initCategoryListPropValue(prop: IkasThemeComponentProp, propValue: any, pageComponentPropValue: IkasPageComponentPropValue): void;
|
|
30
30
|
static initProductListPropValue(prop: IkasThemeComponentProp, propValue: any, pageComponentPropValue: IkasPageComponentPropValue): void;
|
|
31
|
-
static initProductDetailPropValue(prop: IkasThemeComponentProp, propValue: any, pageComponentPropValue: IkasPageComponentPropValue, router: NextRouter): void;
|
|
31
|
+
static initProductDetailPropValue(prop: IkasThemeComponentProp, propValue: any, pageComponentPropValue: IkasPageComponentPropValue, router: NextRouter, isBrowser?: boolean): void;
|
|
32
32
|
static initLinkPropValue(prop: IkasThemeComponentProp, propValue: any, pageComponentPropValue: IkasPageComponentPropValue): void;
|
|
33
33
|
static initImagePropValue(prop: IkasThemeComponentProp, propValue: any, pageComponentPropValue: IkasPageComponentPropValue): void;
|
|
34
34
|
static initImageListPropValue(prop: IkasThemeComponentProp, propValue: any, pageComponentPropValue: IkasPageComponentPropValue): void;
|