@sitecore-content-sdk/react 0.1.0-beta.4 → 0.1.0-beta.41
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/README.md +5 -4
- package/dist/cjs/components/{ComponentLibraryLayout.js → DesignLibrary.js} +5 -5
- package/dist/cjs/components/EditingScripts.js +20 -7
- package/dist/cjs/components/Form.js +75 -0
- package/dist/cjs/components/Placeholder.js +4 -4
- package/dist/cjs/components/PlaceholderCommon.js +16 -9
- package/dist/cjs/components/SitecoreContext.js +11 -4
- package/dist/cjs/components/sharedTypes/components.js +7 -0
- package/dist/cjs/components/sharedTypes/index.js +18 -0
- package/dist/cjs/enhancers/{withComponentFactory.js → withComponentMap.js} +7 -7
- package/dist/cjs/enhancers/withPlaceholder.js +3 -3
- package/dist/cjs/enhancers/withSitecoreContext.js +2 -2
- package/dist/cjs/index.js +11 -9
- package/dist/esm/components/{ComponentLibraryLayout.js → DesignLibrary.js} +4 -4
- package/dist/esm/components/EditingScripts.js +21 -8
- package/dist/esm/components/Form.js +38 -0
- package/dist/esm/components/Placeholder.js +4 -4
- package/dist/esm/components/PlaceholderCommon.js +16 -9
- package/dist/esm/components/SitecoreContext.js +10 -3
- package/dist/esm/components/sharedTypes/components.js +4 -0
- package/dist/esm/components/sharedTypes/index.js +2 -0
- package/dist/esm/enhancers/withComponentMap.js +20 -0
- package/dist/esm/enhancers/withPlaceholder.js +3 -3
- package/dist/esm/enhancers/withSitecoreContext.js +3 -3
- package/dist/esm/index.js +5 -4
- package/package.json +10 -7
- package/types/components/DesignLibrary.d.ts +2 -0
- package/types/components/EditingScripts.d.ts +15 -2
- package/types/components/Form.d.ts +24 -0
- package/types/components/PlaceholderCommon.d.ts +7 -7
- package/types/components/SitecoreContext.d.ts +7 -4
- package/types/components/sharedTypes/components.d.ts +32 -0
- package/types/components/sharedTypes/index.d.ts +2 -0
- package/types/components/sharedTypes/props.d.ts +14 -0
- package/types/enhancers/withComponentMap.d.ts +12 -0
- package/types/enhancers/withSitecoreContext.d.ts +3 -6
- package/types/index.d.ts +6 -5
- package/dist/cjs/ComponentBuilder.js +0 -25
- package/dist/esm/ComponentBuilder.js +0 -21
- package/dist/esm/enhancers/withComponentFactory.js +0 -20
- package/types/ComponentBuilder.d.ts +0 -27
- package/types/components/ComponentLibraryLayout.d.ts +0 -2
- package/types/components/sharedTypes.d.ts +0 -28
- package/types/enhancers/withComponentFactory.d.ts +0 -12
- /package/dist/cjs/components/{sharedTypes.js → sharedTypes/props.js} +0 -0
- /package/dist/esm/components/{sharedTypes.js → sharedTypes/props.js} +0 -0
package/README.md
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
# Sitecore
|
|
1
|
+
# Sitecore Content SDK for React
|
|
2
2
|
|
|
3
|
-
This module is provided as a part of Sitecore
|
|
3
|
+
This module is provided as a part of Sitecore Content SDK. It contains React components and integration for Sitecore Content SDK.
|
|
4
4
|
|
|
5
5
|
<!---
|
|
6
|
-
@TODO:
|
|
6
|
+
@TODO: Update link with appropriate page when avaiable
|
|
7
7
|
-->
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
[Documentation](https://doc.sitecore.com/xmc/en/developers/xm-cloud/sitecore-javascript-rendering-sdk--jss--for-next-js.html)
|
|
9
10
|
|
|
10
11
|
[API reference documentation](/ref-docs/react/)
|
|
@@ -33,13 +33,13 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.
|
|
36
|
+
exports.DesignLibrary = void 0;
|
|
37
37
|
const react_1 = __importStar(require("react"));
|
|
38
38
|
const Placeholder_1 = require("./Placeholder");
|
|
39
39
|
const layout_1 = require("@sitecore-content-sdk/core/layout");
|
|
40
40
|
const editing_1 = require("@sitecore-content-sdk/core/editing");
|
|
41
41
|
const EditingScripts_1 = require("./EditingScripts");
|
|
42
|
-
const
|
|
42
|
+
const DesignLibrary = (layoutData) => {
|
|
43
43
|
const { route } = layoutData.sitecore;
|
|
44
44
|
const [renderKey, setRenderKey] = (0, react_1.useState)(0);
|
|
45
45
|
const [rootUpdate, setRootUpdate] = (0, react_1.useState)(null);
|
|
@@ -56,7 +56,7 @@ const ComponentLibraryLayout = (layoutData) => {
|
|
|
56
56
|
// useEffect will fire when components are ready - and we inform the whole wide world of it too
|
|
57
57
|
if (!componentReady) {
|
|
58
58
|
componentReady = true;
|
|
59
|
-
window.top.postMessage((0, editing_1.
|
|
59
|
+
window.top.postMessage((0, editing_1.getDesignLibraryStatusEvent)(editing_1.DesignLibraryStatus.READY, rootComponent.uid), '*');
|
|
60
60
|
}
|
|
61
61
|
const unsubscribe = (0, editing_1.addComponentUpdateHandler)(persistedRoot, (updatedRoot) => {
|
|
62
62
|
setRootUpdate(Object.assign({}, updatedRoot));
|
|
@@ -70,11 +70,11 @@ const ComponentLibraryLayout = (layoutData) => {
|
|
|
70
70
|
if (renderKey === 0) {
|
|
71
71
|
return;
|
|
72
72
|
}
|
|
73
|
-
window.top.postMessage((0, editing_1.
|
|
73
|
+
window.top.postMessage((0, editing_1.getDesignLibraryStatusEvent)(editing_1.DesignLibraryStatus.RENDERED, rootComponent.uid), '*');
|
|
74
74
|
}, [renderKey, rootComponent.uid]);
|
|
75
75
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
76
76
|
react_1.default.createElement(EditingScripts_1.EditingScripts, null),
|
|
77
77
|
react_1.default.createElement("main", null,
|
|
78
78
|
react_1.default.createElement("div", { id: layout_1.EDITING_COMPONENT_ID }, route && (react_1.default.createElement(Placeholder_1.Placeholder, { name: layout_1.EDITING_COMPONENT_PLACEHOLDER, rendering: route, key: renderKey }))))));
|
|
79
79
|
};
|
|
80
|
-
exports.
|
|
80
|
+
exports.DesignLibrary = DesignLibrary;
|
|
@@ -8,17 +8,30 @@ const react_1 = __importDefault(require("react"));
|
|
|
8
8
|
const layout_1 = require("@sitecore-content-sdk/core/layout");
|
|
9
9
|
const withSitecoreContext_1 = require("../enhancers/withSitecoreContext");
|
|
10
10
|
const editing_1 = require("@sitecore-content-sdk/core/editing");
|
|
11
|
+
const editing_2 = require("@sitecore-content-sdk/core/editing");
|
|
11
12
|
/**
|
|
12
|
-
* Renders client scripts and data for editing/preview mode
|
|
13
|
+
* Renders client scripts and data for editing/preview mode for Pages.
|
|
14
|
+
* Renders script required for the Design Library (when RenderingType is `component`).
|
|
15
|
+
* @param {EditingScriptsProps} props - The props for the EditingScripts component.
|
|
16
|
+
* @param {string} props.sitecoreEdgeUrl - Sitecore Edge Platform URL.
|
|
17
|
+
* @returns A JSX element containing the editing scripts or an empty fragment if not in editing/preview mode.
|
|
13
18
|
*/
|
|
14
|
-
const EditingScripts = () => {
|
|
15
|
-
const { sitecoreContext: { pageState, clientData, clientScripts }, } = (0, withSitecoreContext_1.useSitecoreContext)();
|
|
16
|
-
// Don't render anything if not in editing/preview mode
|
|
17
|
-
if (
|
|
18
|
-
pageState === layout_1.LayoutServicePageState.
|
|
19
|
-
|
|
19
|
+
const EditingScripts = (props) => {
|
|
20
|
+
const { sitecoreContext: { pageState, clientData, clientScripts, renderingType }, } = (0, withSitecoreContext_1.useSitecoreContext)();
|
|
21
|
+
// Don't render anything if not in editing/preview mode and rendering type is not component
|
|
22
|
+
if (renderingType !== layout_1.RenderingType.Component &&
|
|
23
|
+
(pageState === layout_1.LayoutServicePageState.Normal ||
|
|
24
|
+
pageState === layout_1.LayoutServicePageState.Preview ||
|
|
25
|
+
!pageState)) {
|
|
20
26
|
return react_1.default.createElement(react_1.default.Fragment, null);
|
|
21
27
|
}
|
|
28
|
+
// In case of RenderingType.Component - render only the script for Design Libnrary
|
|
29
|
+
if (renderingType === layout_1.RenderingType.Component) {
|
|
30
|
+
// Add cache buster to the script URL
|
|
31
|
+
const scriptUrl = `${(0, editing_2.getDesignLibraryScriptLink)(props.sitecoreEdgeUrl)}?cb=${Date.now()}`;
|
|
32
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
33
|
+
react_1.default.createElement("script", { src: scriptUrl, suppressHydrationWarning: true })));
|
|
34
|
+
}
|
|
22
35
|
const jssClientData = Object.assign(Object.assign({}, clientData), (0, editing_1.getJssPagesClientData)());
|
|
23
36
|
return (react_1.default.createElement(react_1.default.Fragment, null, clientScripts === null || clientScripts === void 0 ? void 0 :
|
|
24
37
|
clientScripts.map((src, index) => (react_1.default.createElement("script", { src: src, key: index }))),
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.Form = void 0;
|
|
37
|
+
const react_1 = __importStar(require("react"));
|
|
38
|
+
const form_1 = require("@sitecore-content-sdk/core/form");
|
|
39
|
+
const withSitecoreContext_1 = require("../enhancers/withSitecoreContext");
|
|
40
|
+
const Form = ({ params, rendering }) => {
|
|
41
|
+
var _a;
|
|
42
|
+
const id = params === null || params === void 0 ? void 0 : params.RenderingIdentifier;
|
|
43
|
+
const [error, setError] = (0, react_1.useState)(false);
|
|
44
|
+
const [content, setContent] = (0, react_1.useState)('');
|
|
45
|
+
const context = (0, withSitecoreContext_1.useSitecoreContext)();
|
|
46
|
+
const formRef = (0, react_1.useRef)(null);
|
|
47
|
+
const isEditing = context.sitecoreContext.pageEditing;
|
|
48
|
+
(0, react_1.useEffect)(() => {
|
|
49
|
+
var _a, _b, _c, _d;
|
|
50
|
+
if (!content) {
|
|
51
|
+
(0, form_1.loadForm)((_b = (_a = context.api) === null || _a === void 0 ? void 0 : _a.edge) === null || _b === void 0 ? void 0 : _b.contextId, params.FormId, (_d = (_c = context.api) === null || _c === void 0 ? void 0 : _c.edge) === null || _d === void 0 ? void 0 : _d.edgeUrl)
|
|
52
|
+
.then(setContent)
|
|
53
|
+
.catch(() => {
|
|
54
|
+
if (isEditing) {
|
|
55
|
+
console.error(`Failed to load form with id ${params.FormId}. Check debug logs for sitecore-jss:form for more details.`);
|
|
56
|
+
}
|
|
57
|
+
setError(true);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
// If we are in editing mode, we don't want to send any events
|
|
62
|
+
if (!isEditing) {
|
|
63
|
+
(0, form_1.subscribeToFormSubmitEvent)(formRef.current, rendering.uid);
|
|
64
|
+
}
|
|
65
|
+
(0, form_1.executeScriptElements)(formRef.current);
|
|
66
|
+
}
|
|
67
|
+
}, [content]);
|
|
68
|
+
if (isEditing) {
|
|
69
|
+
if (error) {
|
|
70
|
+
return (react_1.default.createElement("div", { className: "sc-jss-placeholder-error" }, "There was a problem loading this section"));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return (react_1.default.createElement("div", { ref: formRef, dangerouslySetInnerHTML: { __html: content }, className: (_a = params.styles) === null || _a === void 0 ? void 0 : _a.trimEnd(), id: id ? id : undefined }));
|
|
74
|
+
};
|
|
75
|
+
exports.Form = Form;
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.Placeholder = void 0;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const PlaceholderCommon_1 = require("./PlaceholderCommon");
|
|
9
|
-
const
|
|
9
|
+
const withComponentMap_1 = require("../enhancers/withComponentMap");
|
|
10
10
|
const editing_1 = require("@sitecore-content-sdk/core/editing");
|
|
11
11
|
const withSitecoreContext_1 = require("../enhancers/withSitecoreContext");
|
|
12
12
|
class PlaceholderComponent extends PlaceholderCommon_1.PlaceholderCommon {
|
|
@@ -30,7 +30,7 @@ class PlaceholderComponent extends PlaceholderCommon_1.PlaceholderCommon {
|
|
|
30
30
|
render() {
|
|
31
31
|
var _a, _b;
|
|
32
32
|
const childProps = Object.assign({}, this.props);
|
|
33
|
-
delete childProps.
|
|
33
|
+
delete childProps.componentMap;
|
|
34
34
|
if (this.state.error) {
|
|
35
35
|
if (childProps.errorComponent) {
|
|
36
36
|
return react_1.default.createElement(childProps.errorComponent, { error: this.state.error });
|
|
@@ -68,5 +68,5 @@ class PlaceholderComponent extends PlaceholderCommon_1.PlaceholderCommon {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
PlaceholderComponent.propTypes = PlaceholderCommon_1.PlaceholderCommon.propTypes;
|
|
71
|
-
const
|
|
72
|
-
exports.Placeholder = (0, withSitecoreContext_1.withSitecoreContext)()(
|
|
71
|
+
const PlaceholderWithComponentMap = (0, withComponentMap_1.withComponentMap)(PlaceholderComponent);
|
|
72
|
+
exports.Placeholder = (0, withSitecoreContext_1.withSitecoreContext)()(PlaceholderWithComponentMap);
|
|
@@ -18,6 +18,7 @@ exports.PlaceholderCommon = void 0;
|
|
|
18
18
|
const react_1 = __importDefault(require("react"));
|
|
19
19
|
const prop_types_1 = __importDefault(require("prop-types"));
|
|
20
20
|
const MissingComponent_1 = require("./MissingComponent");
|
|
21
|
+
const sharedTypes_1 = require("./sharedTypes");
|
|
21
22
|
const layout_1 = require("@sitecore-content-sdk/core/layout");
|
|
22
23
|
const core_1 = require("@sitecore-content-sdk/core");
|
|
23
24
|
const HiddenRendering_1 = require("./HiddenRendering");
|
|
@@ -102,7 +103,7 @@ class PlaceholderCommon extends react_1.default.Component {
|
|
|
102
103
|
else {
|
|
103
104
|
component = this.getComponentForRendering(componentRendering);
|
|
104
105
|
}
|
|
105
|
-
// Fallback/defaults for Sitecore Component renderings (in case not defined in component
|
|
106
|
+
// Fallback/defaults for Sitecore Component renderings (in case not defined in component map)
|
|
106
107
|
if (!component) {
|
|
107
108
|
if (componentRendering.componentName === FEaaSComponent_1.FEAAS_COMPONENT_RENDERING_NAME) {
|
|
108
109
|
component = FEaaSComponent_1.FEaaSComponent;
|
|
@@ -118,7 +119,7 @@ class PlaceholderCommon extends react_1.default.Component {
|
|
|
118
119
|
}
|
|
119
120
|
}
|
|
120
121
|
if (!component) {
|
|
121
|
-
console.error(`Placeholder ${name} contains unknown component ${componentRendering.componentName}. Ensure that a React component exists for it, and that it is registered in your
|
|
122
|
+
console.error(`Placeholder ${name} contains unknown component ${componentRendering.componentName}. Ensure that a React component exists for it, and that it is registered in your component-map file.`);
|
|
122
123
|
component = missingComponentComponent !== null && missingComponentComponent !== void 0 ? missingComponentComponent : MissingComponent_1.MissingComponent;
|
|
123
124
|
isEmpty = true;
|
|
124
125
|
}
|
|
@@ -151,16 +152,22 @@ class PlaceholderCommon extends react_1.default.Component {
|
|
|
151
152
|
}
|
|
152
153
|
getComponentForRendering(renderingDefinition) {
|
|
153
154
|
var _a;
|
|
154
|
-
const
|
|
155
|
-
if (!
|
|
156
|
-
console.warn(`No
|
|
155
|
+
const componentMap = this.props.componentMap;
|
|
156
|
+
if (!componentMap || componentMap.size === 0) {
|
|
157
|
+
console.warn(`No components were available in component map to service request for component ${renderingDefinition}`);
|
|
157
158
|
return null;
|
|
158
159
|
}
|
|
159
|
-
// Render SXA Rendering Variant
|
|
160
|
-
|
|
161
|
-
|
|
160
|
+
// Render SXA Rendering Variant if available
|
|
161
|
+
const exportName = (_a = renderingDefinition.params) === null || _a === void 0 ? void 0 : _a.FieldNames;
|
|
162
|
+
const component = componentMap.get(renderingDefinition.componentName);
|
|
163
|
+
if (!component)
|
|
164
|
+
return null;
|
|
165
|
+
if (exportName && exportName !== sharedTypes_1.DEFAULT_EXPORT_NAME) {
|
|
166
|
+
return component[exportName];
|
|
162
167
|
}
|
|
163
|
-
return
|
|
168
|
+
return (component.default ||
|
|
169
|
+
component.Default ||
|
|
170
|
+
component);
|
|
164
171
|
}
|
|
165
172
|
}
|
|
166
173
|
exports.PlaceholderCommon = PlaceholderCommon;
|
|
@@ -3,15 +3,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.SitecoreContext = exports.
|
|
6
|
+
exports.SitecoreContext = exports.ComponentMapReactContext = exports.SitecoreContextReactContext = void 0;
|
|
7
7
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
8
8
|
const react_1 = __importDefault(require("react"));
|
|
9
9
|
const prop_types_1 = __importDefault(require("prop-types"));
|
|
10
10
|
const react_2 = __importDefault(require("fast-deep-equal/es6/react"));
|
|
11
|
+
const core_1 = require("@sitecore-content-sdk/core");
|
|
11
12
|
exports.SitecoreContextReactContext = react_1.default.createContext({});
|
|
12
|
-
exports.
|
|
13
|
+
exports.ComponentMapReactContext = react_1.default.createContext(new Map());
|
|
13
14
|
class SitecoreContext extends react_1.default.Component {
|
|
14
15
|
constructor(props) {
|
|
16
|
+
var _a, _b, _c, _d;
|
|
15
17
|
super(props);
|
|
16
18
|
/**
|
|
17
19
|
* Update context state. Value can be @type {LayoutServiceData} which will be automatically transformed
|
|
@@ -26,9 +28,14 @@ class SitecoreContext extends react_1.default.Component {
|
|
|
26
28
|
});
|
|
27
29
|
};
|
|
28
30
|
const context = this.constructContext(props.layoutData);
|
|
31
|
+
let api = props.api;
|
|
32
|
+
if (((_b = (_a = props.api) === null || _a === void 0 ? void 0 : _a.edge) === null || _b === void 0 ? void 0 : _b.contextId) && !((_d = (_c = props.api) === null || _c === void 0 ? void 0 : _c.edge) === null || _d === void 0 ? void 0 : _d.edgeUrl)) {
|
|
33
|
+
api = Object.assign(Object.assign({}, props.api), { edge: Object.assign(Object.assign({}, props.api.edge), { edgeUrl: core_1.constants.SITECORE_EDGE_URL_DEFAULT }) });
|
|
34
|
+
}
|
|
29
35
|
this.state = {
|
|
30
36
|
context,
|
|
31
37
|
setContext: this.setContext,
|
|
38
|
+
api,
|
|
32
39
|
};
|
|
33
40
|
}
|
|
34
41
|
constructContext(layoutData) {
|
|
@@ -49,14 +56,14 @@ class SitecoreContext extends react_1.default.Component {
|
|
|
49
56
|
}
|
|
50
57
|
}
|
|
51
58
|
render() {
|
|
52
|
-
return (react_1.default.createElement(exports.
|
|
59
|
+
return (react_1.default.createElement(exports.ComponentMapReactContext.Provider, { value: this.props.componentMap },
|
|
53
60
|
react_1.default.createElement(exports.SitecoreContextReactContext.Provider, { value: this.state }, this.props.children)));
|
|
54
61
|
}
|
|
55
62
|
}
|
|
56
63
|
exports.SitecoreContext = SitecoreContext;
|
|
57
64
|
SitecoreContext.propTypes = {
|
|
58
65
|
children: prop_types_1.default.any.isRequired,
|
|
59
|
-
|
|
66
|
+
componentMap: prop_types_1.default.instanceOf(Map),
|
|
60
67
|
layoutData: prop_types_1.default.shape({
|
|
61
68
|
sitecore: prop_types_1.default.shape({
|
|
62
69
|
context: prop_types_1.default.any,
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./components"), exports);
|
|
18
|
+
__exportStar(require("./props"), exports);
|
|
@@ -3,24 +3,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.withComponentMap = withComponentMap;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const SitecoreContext_1 = require("../components/SitecoreContext");
|
|
9
9
|
const react_2 = require("react");
|
|
10
10
|
/**
|
|
11
11
|
* @param {React.ComponentClass<T> | React.FC<T>} Component
|
|
12
12
|
*/
|
|
13
|
-
function
|
|
13
|
+
function withComponentMap(Component) {
|
|
14
14
|
/**
|
|
15
15
|
* @param {T} props - props to pass to the wrapped component
|
|
16
16
|
* @returns {JSX.Element} - the rendered component
|
|
17
17
|
*/
|
|
18
|
-
function
|
|
19
|
-
const context = (0, react_2.useContext)(SitecoreContext_1.
|
|
20
|
-
return react_1.default.createElement(Component, Object.assign({}, props, {
|
|
18
|
+
function WithComponentMap(props) {
|
|
19
|
+
const context = (0, react_2.useContext)(SitecoreContext_1.ComponentMapReactContext);
|
|
20
|
+
return react_1.default.createElement(Component, Object.assign({}, props, { componentMap: props.componentMap || context }));
|
|
21
21
|
}
|
|
22
|
-
|
|
22
|
+
WithComponentMap.displayName = `withComponentMap(${Component.displayName ||
|
|
23
23
|
Component.name ||
|
|
24
24
|
'Anonymous'})`;
|
|
25
|
-
return
|
|
25
|
+
return WithComponentMap;
|
|
26
26
|
}
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.withPlaceholder = withPlaceholder;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const PlaceholderCommon_1 = require("../components/PlaceholderCommon");
|
|
9
|
-
const
|
|
9
|
+
const withComponentMap_1 = require("./withComponentMap");
|
|
10
10
|
const withSitecoreContext_1 = require("./withSitecoreContext");
|
|
11
11
|
/**
|
|
12
12
|
* @param {WithPlaceholderSpec} placeholders
|
|
@@ -20,7 +20,7 @@ function withPlaceholder(placeholders, options) {
|
|
|
20
20
|
}
|
|
21
21
|
render() {
|
|
22
22
|
let childProps = Object.assign({}, this.props);
|
|
23
|
-
delete childProps.
|
|
23
|
+
delete childProps.componentMap;
|
|
24
24
|
if (options && options.propsTransformer) {
|
|
25
25
|
childProps = options.propsTransformer(childProps);
|
|
26
26
|
}
|
|
@@ -58,6 +58,6 @@ function withPlaceholder(placeholders, options) {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
WithPlaceholder.propTypes = PlaceholderCommon_1.PlaceholderCommon.propTypes;
|
|
61
|
-
return (0, withSitecoreContext_1.withSitecoreContext)()((0,
|
|
61
|
+
return (0, withSitecoreContext_1.withSitecoreContext)()((0, withComponentMap_1.withComponentMap)(WithPlaceholder));
|
|
62
62
|
};
|
|
63
63
|
}
|
|
@@ -13,7 +13,7 @@ const SitecoreContext_1 = require("../components/SitecoreContext");
|
|
|
13
13
|
function withSitecoreContext(options) {
|
|
14
14
|
return function withSitecoreContextHoc(Component) {
|
|
15
15
|
return function WithSitecoreContext(props) {
|
|
16
|
-
return (react_1.default.createElement(SitecoreContext_1.SitecoreContextReactContext.Consumer, null, (context) => (react_1.default.createElement(Component, Object.assign({}, props, { sitecoreContext: context.context, updateSitecoreContext: options && options.updatable && context.setContext })))));
|
|
16
|
+
return (react_1.default.createElement(SitecoreContext_1.SitecoreContextReactContext.Consumer, null, (context) => (react_1.default.createElement(Component, Object.assign({}, props, { sitecoreContext: context.context, api: context.api, updateSitecoreContext: options && options.updatable && context.setContext })))));
|
|
17
17
|
};
|
|
18
18
|
};
|
|
19
19
|
}
|
|
@@ -23,7 +23,6 @@ function withSitecoreContext(options) {
|
|
|
23
23
|
* - pageEditing - Provided by Layout Service, a boolean indicating whether the route is being accessed via the Sitecore Editor.
|
|
24
24
|
* - pageState - Like pageEditing, but a string: normal, preview or edit.
|
|
25
25
|
* - site - Provided by Layout Service, an object containing the name of the current Sitecore site context.
|
|
26
|
-
* @see https://jss.sitecore.com/docs/techniques/extending-layout-service/layoutservice-extending-context
|
|
27
26
|
* @param {WithSitecoreContextOptions} [options] hook options
|
|
28
27
|
* @example
|
|
29
28
|
* const EditMode = () => {
|
|
@@ -42,6 +41,7 @@ function useSitecoreContext(options) {
|
|
|
42
41
|
const reactContext = react_1.default.useContext(SitecoreContext_1.SitecoreContextReactContext);
|
|
43
42
|
const updatable = options === null || options === void 0 ? void 0 : options.updatable;
|
|
44
43
|
return {
|
|
44
|
+
api: reactContext.api,
|
|
45
45
|
sitecoreContext: reactContext.context,
|
|
46
46
|
updateSitecoreContext: updatable ? reactContext.setContext : undefined,
|
|
47
47
|
};
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DefaultEmptyFieldEditingComponentImage = exports.DefaultEmptyFieldEditingComponentText = exports.EditingScripts = exports.withEmptyFieldEditingComponent = exports.withFieldMetadata = exports.
|
|
3
|
+
exports.GraphQLSitePathService = exports.DefaultEmptyFieldEditingComponentImage = exports.DefaultEmptyFieldEditingComponentText = exports.EditingScripts = exports.withEmptyFieldEditingComponent = exports.withFieldMetadata = exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecoreContext = exports.withSitecoreContext = exports.SitecoreContextReactContext = exports.SitecoreContext = exports.File = exports.LinkPropTypes = exports.Link = exports.BYOCWrapper = exports.fetchBYOCComponentServerProps = exports.BYOCComponent = exports.DesignLibrary = exports.FEaaSWrapper = exports.fetchFEaaSComponentServerProps = exports.FEaaSComponent = exports.DateField = exports.Text = exports.RichTextPropTypes = exports.RichText = exports.Image = exports.Placeholder = exports.Form = exports.mediaApi = exports.GraphQLRequestClient = exports.DefaultRetryStrategy = exports.GraphQLDictionaryService = exports.EditMode = exports.getFieldValue = exports.getChildPlaceholder = exports.GraphQLLayoutService = exports.LayoutServicePageState = exports.getDesignLibraryStylesheetLinks = exports.getContentStylesheetLink = exports.resetEditorChromes = exports.isEditorActive = exports.NativeDataFetcher = exports.MemoryCacheClient = exports.ClientError = exports.enableDebug = exports.constants = void 0;
|
|
4
4
|
var core_1 = require("@sitecore-content-sdk/core");
|
|
5
5
|
Object.defineProperty(exports, "constants", { enumerable: true, get: function () { return core_1.constants; } });
|
|
6
6
|
Object.defineProperty(exports, "enableDebug", { enumerable: true, get: function () { return core_1.enableDebug; } });
|
|
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "isEditorActive", { enumerable: true, get: functi
|
|
|
12
12
|
Object.defineProperty(exports, "resetEditorChromes", { enumerable: true, get: function () { return editing_1.resetEditorChromes; } });
|
|
13
13
|
var layout_1 = require("@sitecore-content-sdk/core/layout");
|
|
14
14
|
Object.defineProperty(exports, "getContentStylesheetLink", { enumerable: true, get: function () { return layout_1.getContentStylesheetLink; } });
|
|
15
|
-
Object.defineProperty(exports, "
|
|
15
|
+
Object.defineProperty(exports, "getDesignLibraryStylesheetLinks", { enumerable: true, get: function () { return layout_1.getDesignLibraryStylesheetLinks; } });
|
|
16
16
|
Object.defineProperty(exports, "LayoutServicePageState", { enumerable: true, get: function () { return layout_1.LayoutServicePageState; } });
|
|
17
17
|
Object.defineProperty(exports, "GraphQLLayoutService", { enumerable: true, get: function () { return layout_1.GraphQLLayoutService; } });
|
|
18
18
|
Object.defineProperty(exports, "getChildPlaceholder", { enumerable: true, get: function () { return layout_1.getChildPlaceholder; } });
|
|
@@ -20,11 +20,13 @@ Object.defineProperty(exports, "getFieldValue", { enumerable: true, get: functio
|
|
|
20
20
|
Object.defineProperty(exports, "EditMode", { enumerable: true, get: function () { return layout_1.EditMode; } });
|
|
21
21
|
var i18n_1 = require("@sitecore-content-sdk/core/i18n");
|
|
22
22
|
Object.defineProperty(exports, "GraphQLDictionaryService", { enumerable: true, get: function () { return i18n_1.GraphQLDictionaryService; } });
|
|
23
|
-
var
|
|
24
|
-
Object.defineProperty(exports, "DefaultRetryStrategy", { enumerable: true, get: function () { return
|
|
25
|
-
Object.defineProperty(exports, "GraphQLRequestClient", { enumerable: true, get: function () { return
|
|
23
|
+
var client_1 = require("@sitecore-content-sdk/core/client");
|
|
24
|
+
Object.defineProperty(exports, "DefaultRetryStrategy", { enumerable: true, get: function () { return client_1.DefaultRetryStrategy; } });
|
|
25
|
+
Object.defineProperty(exports, "GraphQLRequestClient", { enumerable: true, get: function () { return client_1.GraphQLRequestClient; } });
|
|
26
26
|
var media_1 = require("@sitecore-content-sdk/core/media");
|
|
27
27
|
Object.defineProperty(exports, "mediaApi", { enumerable: true, get: function () { return media_1.mediaApi; } });
|
|
28
|
+
var Form_1 = require("./components/Form");
|
|
29
|
+
Object.defineProperty(exports, "Form", { enumerable: true, get: function () { return Form_1.Form; } });
|
|
28
30
|
var Placeholder_1 = require("./components/Placeholder");
|
|
29
31
|
Object.defineProperty(exports, "Placeholder", { enumerable: true, get: function () { return Placeholder_1.Placeholder; } });
|
|
30
32
|
var Image_1 = require("./components/Image");
|
|
@@ -41,8 +43,8 @@ Object.defineProperty(exports, "FEaaSComponent", { enumerable: true, get: functi
|
|
|
41
43
|
Object.defineProperty(exports, "fetchFEaaSComponentServerProps", { enumerable: true, get: function () { return FEaaSComponent_1.fetchFEaaSComponentServerProps; } });
|
|
42
44
|
var FEaaSWrapper_1 = require("./components/FEaaSWrapper");
|
|
43
45
|
Object.defineProperty(exports, "FEaaSWrapper", { enumerable: true, get: function () { return FEaaSWrapper_1.FEaaSWrapper; } });
|
|
44
|
-
var
|
|
45
|
-
Object.defineProperty(exports, "
|
|
46
|
+
var DesignLibrary_1 = require("./components/DesignLibrary");
|
|
47
|
+
Object.defineProperty(exports, "DesignLibrary", { enumerable: true, get: function () { return DesignLibrary_1.DesignLibrary; } });
|
|
46
48
|
var BYOCComponent_1 = require("./components/BYOCComponent");
|
|
47
49
|
Object.defineProperty(exports, "BYOCComponent", { enumerable: true, get: function () { return BYOCComponent_1.BYOCComponent; } });
|
|
48
50
|
Object.defineProperty(exports, "fetchBYOCComponentServerProps", { enumerable: true, get: function () { return BYOCComponent_1.fetchBYOCComponentServerProps; } });
|
|
@@ -65,8 +67,6 @@ var withPlaceholder_1 = require("./enhancers/withPlaceholder");
|
|
|
65
67
|
Object.defineProperty(exports, "withPlaceholder", { enumerable: true, get: function () { return withPlaceholder_1.withPlaceholder; } });
|
|
66
68
|
var withDatasourceCheck_1 = require("./enhancers/withDatasourceCheck");
|
|
67
69
|
Object.defineProperty(exports, "withDatasourceCheck", { enumerable: true, get: function () { return withDatasourceCheck_1.withDatasourceCheck; } });
|
|
68
|
-
var ComponentBuilder_1 = require("./ComponentBuilder");
|
|
69
|
-
Object.defineProperty(exports, "ComponentBuilder", { enumerable: true, get: function () { return ComponentBuilder_1.ComponentBuilder; } });
|
|
70
70
|
var withFieldMetadata_1 = require("./enhancers/withFieldMetadata");
|
|
71
71
|
Object.defineProperty(exports, "withFieldMetadata", { enumerable: true, get: function () { return withFieldMetadata_1.withFieldMetadata; } });
|
|
72
72
|
var withEmptyFieldEditingComponent_1 = require("./enhancers/withEmptyFieldEditingComponent");
|
|
@@ -76,3 +76,5 @@ Object.defineProperty(exports, "EditingScripts", { enumerable: true, get: functi
|
|
|
76
76
|
var DefaultEmptyFieldEditingComponents_1 = require("./components/DefaultEmptyFieldEditingComponents");
|
|
77
77
|
Object.defineProperty(exports, "DefaultEmptyFieldEditingComponentText", { enumerable: true, get: function () { return DefaultEmptyFieldEditingComponents_1.DefaultEmptyFieldEditingComponentText; } });
|
|
78
78
|
Object.defineProperty(exports, "DefaultEmptyFieldEditingComponentImage", { enumerable: true, get: function () { return DefaultEmptyFieldEditingComponents_1.DefaultEmptyFieldEditingComponentImage; } });
|
|
79
|
+
var site_1 = require("@sitecore-content-sdk/core/site");
|
|
80
|
+
Object.defineProperty(exports, "GraphQLSitePathService", { enumerable: true, get: function () { return site_1.GraphQLSitePathService; } });
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React, { useEffect, useMemo, useState } from 'react';
|
|
2
2
|
import { Placeholder } from './Placeholder';
|
|
3
3
|
import { EDITING_COMPONENT_ID, EDITING_COMPONENT_PLACEHOLDER, } from '@sitecore-content-sdk/core/layout';
|
|
4
|
-
import {
|
|
4
|
+
import { DesignLibraryStatus, getDesignLibraryStatusEvent, addComponentUpdateHandler, } from '@sitecore-content-sdk/core/editing';
|
|
5
5
|
import { EditingScripts } from './EditingScripts';
|
|
6
|
-
export const
|
|
6
|
+
export const DesignLibrary = (layoutData) => {
|
|
7
7
|
const { route } = layoutData.sitecore;
|
|
8
8
|
const [renderKey, setRenderKey] = useState(0);
|
|
9
9
|
const [rootUpdate, setRootUpdate] = useState(null);
|
|
@@ -20,7 +20,7 @@ export const ComponentLibraryLayout = (layoutData) => {
|
|
|
20
20
|
// useEffect will fire when components are ready - and we inform the whole wide world of it too
|
|
21
21
|
if (!componentReady) {
|
|
22
22
|
componentReady = true;
|
|
23
|
-
window.top.postMessage(
|
|
23
|
+
window.top.postMessage(getDesignLibraryStatusEvent(DesignLibraryStatus.READY, rootComponent.uid), '*');
|
|
24
24
|
}
|
|
25
25
|
const unsubscribe = addComponentUpdateHandler(persistedRoot, (updatedRoot) => {
|
|
26
26
|
setRootUpdate(Object.assign({}, updatedRoot));
|
|
@@ -34,7 +34,7 @@ export const ComponentLibraryLayout = (layoutData) => {
|
|
|
34
34
|
if (renderKey === 0) {
|
|
35
35
|
return;
|
|
36
36
|
}
|
|
37
|
-
window.top.postMessage(
|
|
37
|
+
window.top.postMessage(getDesignLibraryStatusEvent(DesignLibraryStatus.RENDERED, rootComponent.uid), '*');
|
|
38
38
|
}, [renderKey, rootComponent.uid]);
|
|
39
39
|
return (React.createElement(React.Fragment, null,
|
|
40
40
|
React.createElement(EditingScripts, null),
|
|
@@ -1,18 +1,31 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { LayoutServicePageState } from '@sitecore-content-sdk/core/layout';
|
|
2
|
+
import { LayoutServicePageState, RenderingType } from '@sitecore-content-sdk/core/layout';
|
|
3
3
|
import { useSitecoreContext } from '../enhancers/withSitecoreContext';
|
|
4
4
|
import { getJssPagesClientData } from '@sitecore-content-sdk/core/editing';
|
|
5
|
+
import { getDesignLibraryScriptLink } from '@sitecore-content-sdk/core/editing';
|
|
5
6
|
/**
|
|
6
|
-
* Renders client scripts and data for editing/preview mode
|
|
7
|
+
* Renders client scripts and data for editing/preview mode for Pages.
|
|
8
|
+
* Renders script required for the Design Library (when RenderingType is `component`).
|
|
9
|
+
* @param {EditingScriptsProps} props - The props for the EditingScripts component.
|
|
10
|
+
* @param {string} props.sitecoreEdgeUrl - Sitecore Edge Platform URL.
|
|
11
|
+
* @returns A JSX element containing the editing scripts or an empty fragment if not in editing/preview mode.
|
|
7
12
|
*/
|
|
8
|
-
export const EditingScripts = () => {
|
|
9
|
-
const { sitecoreContext: { pageState, clientData, clientScripts }, } = useSitecoreContext();
|
|
10
|
-
// Don't render anything if not in editing/preview mode
|
|
11
|
-
if (
|
|
12
|
-
pageState === LayoutServicePageState.
|
|
13
|
-
|
|
13
|
+
export const EditingScripts = (props) => {
|
|
14
|
+
const { sitecoreContext: { pageState, clientData, clientScripts, renderingType }, } = useSitecoreContext();
|
|
15
|
+
// Don't render anything if not in editing/preview mode and rendering type is not component
|
|
16
|
+
if (renderingType !== RenderingType.Component &&
|
|
17
|
+
(pageState === LayoutServicePageState.Normal ||
|
|
18
|
+
pageState === LayoutServicePageState.Preview ||
|
|
19
|
+
!pageState)) {
|
|
14
20
|
return React.createElement(React.Fragment, null);
|
|
15
21
|
}
|
|
22
|
+
// In case of RenderingType.Component - render only the script for Design Libnrary
|
|
23
|
+
if (renderingType === RenderingType.Component) {
|
|
24
|
+
// Add cache buster to the script URL
|
|
25
|
+
const scriptUrl = `${getDesignLibraryScriptLink(props.sitecoreEdgeUrl)}?cb=${Date.now()}`;
|
|
26
|
+
return (React.createElement(React.Fragment, null,
|
|
27
|
+
React.createElement("script", { src: scriptUrl, suppressHydrationWarning: true })));
|
|
28
|
+
}
|
|
16
29
|
const jssClientData = Object.assign(Object.assign({}, clientData), getJssPagesClientData());
|
|
17
30
|
return (React.createElement(React.Fragment, null, clientScripts === null || clientScripts === void 0 ? void 0 :
|
|
18
31
|
clientScripts.map((src, index) => (React.createElement("script", { src: src, key: index }))),
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { executeScriptElements, loadForm, subscribeToFormSubmitEvent, } from '@sitecore-content-sdk/core/form';
|
|
3
|
+
import { useSitecoreContext } from '../enhancers/withSitecoreContext';
|
|
4
|
+
export const Form = ({ params, rendering }) => {
|
|
5
|
+
var _a;
|
|
6
|
+
const id = params === null || params === void 0 ? void 0 : params.RenderingIdentifier;
|
|
7
|
+
const [error, setError] = useState(false);
|
|
8
|
+
const [content, setContent] = useState('');
|
|
9
|
+
const context = useSitecoreContext();
|
|
10
|
+
const formRef = useRef(null);
|
|
11
|
+
const isEditing = context.sitecoreContext.pageEditing;
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
var _a, _b, _c, _d;
|
|
14
|
+
if (!content) {
|
|
15
|
+
loadForm((_b = (_a = context.api) === null || _a === void 0 ? void 0 : _a.edge) === null || _b === void 0 ? void 0 : _b.contextId, params.FormId, (_d = (_c = context.api) === null || _c === void 0 ? void 0 : _c.edge) === null || _d === void 0 ? void 0 : _d.edgeUrl)
|
|
16
|
+
.then(setContent)
|
|
17
|
+
.catch(() => {
|
|
18
|
+
if (isEditing) {
|
|
19
|
+
console.error(`Failed to load form with id ${params.FormId}. Check debug logs for sitecore-jss:form for more details.`);
|
|
20
|
+
}
|
|
21
|
+
setError(true);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
// If we are in editing mode, we don't want to send any events
|
|
26
|
+
if (!isEditing) {
|
|
27
|
+
subscribeToFormSubmitEvent(formRef.current, rendering.uid);
|
|
28
|
+
}
|
|
29
|
+
executeScriptElements(formRef.current);
|
|
30
|
+
}
|
|
31
|
+
}, [content]);
|
|
32
|
+
if (isEditing) {
|
|
33
|
+
if (error) {
|
|
34
|
+
return (React.createElement("div", { className: "sc-jss-placeholder-error" }, "There was a problem loading this section"));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return (React.createElement("div", { ref: formRef, dangerouslySetInnerHTML: { __html: content }, className: (_a = params.styles) === null || _a === void 0 ? void 0 : _a.trimEnd(), id: id ? id : undefined }));
|
|
38
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { PlaceholderCommon } from './PlaceholderCommon';
|
|
3
|
-
import {
|
|
3
|
+
import { withComponentMap } from '../enhancers/withComponentMap';
|
|
4
4
|
import { PagesEditor } from '@sitecore-content-sdk/core/editing';
|
|
5
5
|
import { withSitecoreContext } from '../enhancers/withSitecoreContext';
|
|
6
6
|
class PlaceholderComponent extends PlaceholderCommon {
|
|
@@ -24,7 +24,7 @@ class PlaceholderComponent extends PlaceholderCommon {
|
|
|
24
24
|
render() {
|
|
25
25
|
var _a, _b;
|
|
26
26
|
const childProps = Object.assign({}, this.props);
|
|
27
|
-
delete childProps.
|
|
27
|
+
delete childProps.componentMap;
|
|
28
28
|
if (this.state.error) {
|
|
29
29
|
if (childProps.errorComponent) {
|
|
30
30
|
return React.createElement(childProps.errorComponent, { error: this.state.error });
|
|
@@ -62,5 +62,5 @@ class PlaceholderComponent extends PlaceholderCommon {
|
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
PlaceholderComponent.propTypes = PlaceholderCommon.propTypes;
|
|
65
|
-
const
|
|
66
|
-
export const Placeholder = withSitecoreContext()(
|
|
65
|
+
const PlaceholderWithComponentMap = withComponentMap(PlaceholderComponent);
|
|
66
|
+
export const Placeholder = withSitecoreContext()(PlaceholderWithComponentMap);
|