@sitecore-jss/sitecore-jss-react 21.4.0-canary.1 → 21.4.0-canary.2
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.
|
@@ -22,11 +22,20 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
25
34
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
36
|
};
|
|
28
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.BYOCComponent = exports.BYOC_COMPONENT_RENDERING_NAME = void 0;
|
|
38
|
+
exports.fetchBYOCComponentServerProps = exports.BYOCComponent = exports.BYOC_COMPONENT_RENDERING_NAME = void 0;
|
|
30
39
|
const react_1 = __importDefault(require("react"));
|
|
31
40
|
const utils_1 = require("../utils");
|
|
32
41
|
const MissingComponent_1 = require("./MissingComponent");
|
|
@@ -77,20 +86,40 @@ class BYOCComponent extends react_1.default.Component {
|
|
|
77
86
|
errorOverride: 'BYOC: This component was not registered.',
|
|
78
87
|
};
|
|
79
88
|
const fallbackComponent = this.props.missingComponentComponent ? (react_1.default.createElement(this.props.missingComponentComponent, Object.assign({}, unRegisteredComponentProps))) : (react_1.default.createElement(MissingComponent_1.MissingComponent, Object.assign({}, unRegisteredComponentProps)));
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
89
|
+
const ErrorComponent = this.props.errorComponent;
|
|
90
|
+
const isNull = Object.keys(props.fetchedData).length === 0;
|
|
91
|
+
let componentProps = isNull ? null : props.fetchedData;
|
|
92
|
+
if (!componentProps) {
|
|
93
|
+
if ((_a = props.params) === null || _a === void 0 ? void 0 : _a.ComponentProps) {
|
|
94
|
+
try {
|
|
95
|
+
componentProps = (_b = JSON.parse(props.params.ComponentProps)) !== null && _b !== void 0 ? _b : {};
|
|
96
|
+
}
|
|
97
|
+
catch (e) {
|
|
98
|
+
console.error(`Parsing props for ${componentName} component from rendering params failed. Error: ${e}`);
|
|
99
|
+
return ErrorComponent ? (react_1.default.createElement(ErrorComponent, { error: e })) : (react_1.default.createElement(DefaultErrorComponent, { error: e }));
|
|
100
|
+
}
|
|
84
101
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
return this.props.errorComponent ? (react_1.default.createElement(this.props.errorComponent, { error: e })) : (react_1.default.createElement(DefaultErrorComponent, { error: e }));
|
|
102
|
+
else {
|
|
103
|
+
componentProps = props.fields ? (0, utils_1.getDataFromFields)(props.fields) : {};
|
|
88
104
|
}
|
|
89
105
|
}
|
|
90
|
-
if (!componentProps) {
|
|
91
|
-
componentProps = props.fields ? (0, utils_1.getDataFromFields)(props.fields) : {};
|
|
92
|
-
}
|
|
93
106
|
return (react_1.default.createElement(FEAAS.ExternalComponent, Object.assign({ componentName: componentName, fallback: fallbackComponent }, componentProps)));
|
|
94
107
|
}
|
|
95
108
|
}
|
|
96
109
|
exports.BYOCComponent = BYOCComponent;
|
|
110
|
+
/**
|
|
111
|
+
* Fetches server component props required for server rendering, based on rendering params.
|
|
112
|
+
* @param {BYOCComponentParams} params component params
|
|
113
|
+
*/
|
|
114
|
+
function fetchBYOCComponentServerProps(params) {
|
|
115
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
116
|
+
const fetchDataOptions = params.ComponentProps
|
|
117
|
+
? JSON.parse(params.ComponentProps)
|
|
118
|
+
: {};
|
|
119
|
+
const fetchedData = yield FEAAS.DataSettings.fetch(fetchDataOptions || {});
|
|
120
|
+
return {
|
|
121
|
+
fetchedData,
|
|
122
|
+
};
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
exports.fetchBYOCComponentServerProps = fetchBYOCComponentServerProps;
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ComponentBuilder = exports.EditFrame = exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecoreContext = exports.withSitecoreContext = exports.SitecoreContextReactContext = exports.SitecoreContext = exports.VisitorIdentification = exports.File = exports.LinkPropTypes = exports.Link = exports.BYOCWrapper = exports.BYOCComponent = exports.FEaaSWrapper = exports.fetchFEaaSComponentServerProps = exports.FEaaSComponent = exports.DateField = exports.Text = exports.RichTextPropTypes = exports.RichText = exports.getEEMarkup = exports.Image = exports.Placeholder = exports.getFEAASLibraryStylesheetLinks = exports.mediaApi = exports.RestDictionaryService = exports.GraphQLDictionaryService = exports.trackingApi = exports.getFieldValue = exports.getChildPlaceholder = exports.RestLayoutService = exports.GraphQLLayoutService = exports.LayoutServicePageState = exports.DefaultEditFrameButtons = exports.DefaultEditFrameButton = exports.resetEditorChromes = exports.isEditorActive = exports.enableDebug = exports.constants = void 0;
|
|
3
|
+
exports.ComponentBuilder = exports.EditFrame = exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecoreContext = exports.withSitecoreContext = exports.SitecoreContextReactContext = exports.SitecoreContext = exports.VisitorIdentification = exports.File = exports.LinkPropTypes = exports.Link = exports.BYOCWrapper = exports.fetchBYOCComponentServerProps = exports.BYOCComponent = exports.FEaaSWrapper = exports.fetchFEaaSComponentServerProps = exports.FEaaSComponent = exports.DateField = exports.Text = exports.RichTextPropTypes = exports.RichText = exports.getEEMarkup = exports.Image = exports.Placeholder = exports.getFEAASLibraryStylesheetLinks = exports.mediaApi = exports.RestDictionaryService = exports.GraphQLDictionaryService = exports.trackingApi = exports.getFieldValue = exports.getChildPlaceholder = exports.RestLayoutService = exports.GraphQLLayoutService = exports.LayoutServicePageState = exports.DefaultEditFrameButtons = exports.DefaultEditFrameButton = exports.resetEditorChromes = exports.isEditorActive = exports.enableDebug = exports.constants = void 0;
|
|
4
4
|
var sitecore_jss_1 = require("@sitecore-jss/sitecore-jss");
|
|
5
5
|
Object.defineProperty(exports, "constants", { enumerable: true, get: function () { return sitecore_jss_1.constants; } });
|
|
6
6
|
Object.defineProperty(exports, "enableDebug", { enumerable: true, get: function () { return sitecore_jss_1.enableDebug; } });
|
|
@@ -43,6 +43,7 @@ var FEaaSWrapper_1 = require("./components/FEaaSWrapper");
|
|
|
43
43
|
Object.defineProperty(exports, "FEaaSWrapper", { enumerable: true, get: function () { return FEaaSWrapper_1.FEaaSWrapper; } });
|
|
44
44
|
var BYOCComponent_1 = require("./components/BYOCComponent");
|
|
45
45
|
Object.defineProperty(exports, "BYOCComponent", { enumerable: true, get: function () { return BYOCComponent_1.BYOCComponent; } });
|
|
46
|
+
Object.defineProperty(exports, "fetchBYOCComponentServerProps", { enumerable: true, get: function () { return BYOCComponent_1.fetchBYOCComponentServerProps; } });
|
|
46
47
|
var BYOCWrapper_1 = require("./components/BYOCWrapper");
|
|
47
48
|
Object.defineProperty(exports, "BYOCWrapper", { enumerable: true, get: function () { return BYOCWrapper_1.BYOCWrapper; } });
|
|
48
49
|
var Link_1 = require("./components/Link");
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
1
10
|
import React from 'react';
|
|
2
11
|
import { getDataFromFields } from '../utils';
|
|
3
12
|
import { MissingComponent } from './MissingComponent';
|
|
@@ -48,19 +57,38 @@ export class BYOCComponent extends React.Component {
|
|
|
48
57
|
errorOverride: 'BYOC: This component was not registered.',
|
|
49
58
|
};
|
|
50
59
|
const fallbackComponent = this.props.missingComponentComponent ? (React.createElement(this.props.missingComponentComponent, Object.assign({}, unRegisteredComponentProps))) : (React.createElement(MissingComponent, Object.assign({}, unRegisteredComponentProps)));
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
60
|
+
const ErrorComponent = this.props.errorComponent;
|
|
61
|
+
const isNull = Object.keys(props.fetchedData).length === 0;
|
|
62
|
+
let componentProps = isNull ? null : props.fetchedData;
|
|
63
|
+
if (!componentProps) {
|
|
64
|
+
if ((_a = props.params) === null || _a === void 0 ? void 0 : _a.ComponentProps) {
|
|
65
|
+
try {
|
|
66
|
+
componentProps = (_b = JSON.parse(props.params.ComponentProps)) !== null && _b !== void 0 ? _b : {};
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
console.error(`Parsing props for ${componentName} component from rendering params failed. Error: ${e}`);
|
|
70
|
+
return ErrorComponent ? (React.createElement(ErrorComponent, { error: e })) : (React.createElement(DefaultErrorComponent, { error: e }));
|
|
71
|
+
}
|
|
55
72
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return this.props.errorComponent ? (React.createElement(this.props.errorComponent, { error: e })) : (React.createElement(DefaultErrorComponent, { error: e }));
|
|
73
|
+
else {
|
|
74
|
+
componentProps = props.fields ? getDataFromFields(props.fields) : {};
|
|
59
75
|
}
|
|
60
76
|
}
|
|
61
|
-
if (!componentProps) {
|
|
62
|
-
componentProps = props.fields ? getDataFromFields(props.fields) : {};
|
|
63
|
-
}
|
|
64
77
|
return (React.createElement(FEAAS.ExternalComponent, Object.assign({ componentName: componentName, fallback: fallbackComponent }, componentProps)));
|
|
65
78
|
}
|
|
66
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Fetches server component props required for server rendering, based on rendering params.
|
|
82
|
+
* @param {BYOCComponentParams} params component params
|
|
83
|
+
*/
|
|
84
|
+
export function fetchBYOCComponentServerProps(params) {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
const fetchDataOptions = params.ComponentProps
|
|
87
|
+
? JSON.parse(params.ComponentProps)
|
|
88
|
+
: {};
|
|
89
|
+
const fetchedData = yield FEAAS.DataSettings.fetch(fetchDataOptions || {});
|
|
90
|
+
return {
|
|
91
|
+
fetchedData,
|
|
92
|
+
};
|
|
93
|
+
});
|
|
94
|
+
}
|
package/dist/esm/index.js
CHANGED
|
@@ -12,7 +12,7 @@ export { Text } from './components/Text';
|
|
|
12
12
|
export { DateField } from './components/Date';
|
|
13
13
|
export { FEaaSComponent, fetchFEaaSComponentServerProps, } from './components/FEaaSComponent';
|
|
14
14
|
export { FEaaSWrapper } from './components/FEaaSWrapper';
|
|
15
|
-
export { BYOCComponent } from './components/BYOCComponent';
|
|
15
|
+
export { BYOCComponent, fetchBYOCComponentServerProps, } from './components/BYOCComponent';
|
|
16
16
|
export { BYOCWrapper } from './components/BYOCWrapper';
|
|
17
17
|
export { Link, LinkPropTypes } from './components/Link';
|
|
18
18
|
export { File } from './components/File';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sitecore-jss/sitecore-jss-react",
|
|
3
|
-
"version": "21.4.0-canary.
|
|
3
|
+
"version": "21.4.0-canary.2",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -63,14 +63,14 @@
|
|
|
63
63
|
"react-dom": "^18.2.0"
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"@sitecore-jss/sitecore-jss": "^21.4.0-canary.
|
|
66
|
+
"@sitecore-jss/sitecore-jss": "^21.4.0-canary.2",
|
|
67
67
|
"deep-equal": "^2.1.0",
|
|
68
68
|
"prop-types": "^15.8.1",
|
|
69
69
|
"style-attr": "^1.3.0"
|
|
70
70
|
},
|
|
71
71
|
"description": "",
|
|
72
72
|
"types": "types/index.d.ts",
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "30d79c092ae7bee91d3f6a1a480a89c76e5b262c",
|
|
74
74
|
"files": [
|
|
75
75
|
"dist",
|
|
76
76
|
"types"
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { ComponentFields } from '@sitecore-jss/sitecore-jss/layout';
|
|
3
3
|
import { MissingComponentProps } from './MissingComponent';
|
|
4
|
+
import * as FEAAS from '@sitecore-feaas/clientside/react';
|
|
4
5
|
export declare const BYOC_COMPONENT_RENDERING_NAME = "BYOCComponent";
|
|
6
|
+
/**
|
|
7
|
+
* FEaaS props for server rendering.
|
|
8
|
+
*/
|
|
9
|
+
type BYOCServerProps = {
|
|
10
|
+
/**
|
|
11
|
+
* Fetched data from server component props for server rendering, based on rendering params.
|
|
12
|
+
*/
|
|
13
|
+
fetchedData?: FEAAS.DataScopes;
|
|
14
|
+
};
|
|
5
15
|
/**
|
|
6
16
|
* Data from rendering params on Sitecore's BYOC rendering
|
|
7
17
|
*/
|
|
@@ -9,7 +19,7 @@ export type BYOCComponentParams = {
|
|
|
9
19
|
/**
|
|
10
20
|
* Name of the component to render
|
|
11
21
|
*/
|
|
12
|
-
ComponentName
|
|
22
|
+
ComponentName?: string;
|
|
13
23
|
/**
|
|
14
24
|
* JSON props to pass into rendered component
|
|
15
25
|
*/
|
|
@@ -23,7 +33,7 @@ export type BYOCComponentParams = {
|
|
|
23
33
|
/**
|
|
24
34
|
* Props for BYOCComponent. Includes components list to load external components from.
|
|
25
35
|
*/
|
|
26
|
-
export type
|
|
36
|
+
export type BYOCComponentClientProps = {
|
|
27
37
|
/**
|
|
28
38
|
* rendering params
|
|
29
39
|
*/
|
|
@@ -42,6 +52,7 @@ export type BYOCComponentProps = {
|
|
|
42
52
|
*/
|
|
43
53
|
missingComponentComponent?: React.ComponentClass<MissingComponentProps> | React.FC<MissingComponentProps>;
|
|
44
54
|
};
|
|
55
|
+
export type BYOCComponentProps = BYOCComponentClientProps & BYOCServerProps;
|
|
45
56
|
type ErrorComponentProps = {
|
|
46
57
|
[prop: string]: unknown;
|
|
47
58
|
error?: Error;
|
|
@@ -63,4 +74,9 @@ export declare class BYOCComponent extends React.Component<BYOCComponentProps> {
|
|
|
63
74
|
componentDidCatch(error: Error): void;
|
|
64
75
|
render(): JSX.Element;
|
|
65
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Fetches server component props required for server rendering, based on rendering params.
|
|
79
|
+
* @param {BYOCComponentParams} params component params
|
|
80
|
+
*/
|
|
81
|
+
export declare function fetchBYOCComponentServerProps(params: BYOCComponentParams): Promise<BYOCComponentProps>;
|
|
66
82
|
export {};
|
package/types/index.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export { Text, TextField } from './components/Text';
|
|
|
13
13
|
export { DateField, DateFieldProps } from './components/Date';
|
|
14
14
|
export { FEaaSComponent, FEaaSComponentProps, FEaaSComponentParams, fetchFEaaSComponentServerProps, } from './components/FEaaSComponent';
|
|
15
15
|
export { FEaaSWrapper } from './components/FEaaSWrapper';
|
|
16
|
-
export { BYOCComponent, BYOCComponentParams, BYOCComponentProps } from './components/BYOCComponent';
|
|
16
|
+
export { BYOCComponent, BYOCComponentParams, BYOCComponentProps, fetchBYOCComponentServerProps, } from './components/BYOCComponent';
|
|
17
17
|
export { BYOCWrapper } from './components/BYOCWrapper';
|
|
18
18
|
export { Link, LinkField, LinkFieldValue, LinkProps, LinkPropTypes } from './components/Link';
|
|
19
19
|
export { File, FileField } from './components/File';
|