@sitecore-jss/sitecore-jss-react 22.6.0 → 22.7.0-canary.10

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.
Files changed (41) hide show
  1. package/LICENSE.txt +202 -202
  2. package/README.md +10 -10
  3. package/dist/cjs/components/Date.js +0 -15
  4. package/dist/cjs/components/ErrorBoundary.js +2 -2
  5. package/dist/cjs/components/FieldMetadata.js +0 -5
  6. package/dist/cjs/components/File.js +0 -11
  7. package/dist/cjs/components/Image.js +0 -19
  8. package/dist/cjs/components/Link.js +1 -24
  9. package/dist/cjs/components/MissingComponent.js +0 -6
  10. package/dist/cjs/components/PlaceholderCommon.js +2 -27
  11. package/dist/cjs/components/RichText.js +1 -19
  12. package/dist/cjs/components/SitecoreContext.js +0 -11
  13. package/dist/cjs/components/Text.js +0 -15
  14. package/dist/cjs/index.js +2 -4
  15. package/dist/esm/components/Date.js +0 -15
  16. package/dist/esm/components/ErrorBoundary.js +2 -2
  17. package/dist/esm/components/FieldMetadata.js +0 -5
  18. package/dist/esm/components/File.js +0 -11
  19. package/dist/esm/components/Image.js +0 -19
  20. package/dist/esm/components/Link.js +0 -20
  21. package/dist/esm/components/MissingComponent.js +0 -6
  22. package/dist/esm/components/PlaceholderCommon.js +2 -27
  23. package/dist/esm/components/RichText.js +0 -15
  24. package/dist/esm/components/SitecoreContext.js +0 -11
  25. package/dist/esm/components/Text.js +0 -15
  26. package/dist/esm/index.js +2 -2
  27. package/package.json +15 -17
  28. package/types/components/BYOCWrapper.d.ts +1 -0
  29. package/types/components/EditingScripts.d.ts +1 -0
  30. package/types/components/ErrorBoundary.d.ts +1 -0
  31. package/types/components/FEaaSComponent.d.ts +1 -0
  32. package/types/components/FEaaSWrapper.d.ts +1 -0
  33. package/types/components/FieldMetadata.d.ts +1 -6
  34. package/types/components/Link.d.ts +0 -13
  35. package/types/components/PlaceholderCommon.d.ts +5 -15
  36. package/types/components/PlaceholderMetadata.d.ts +1 -1
  37. package/types/components/RichText.d.ts +0 -13
  38. package/types/components/SitecoreContext.d.ts +0 -11
  39. package/types/enhancers/withComponentFactory.d.ts +1 -1
  40. package/types/enhancers/withDatasourceCheck.d.ts +2 -2
  41. package/types/index.d.ts +2 -2
@@ -16,7 +16,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.PlaceholderCommon = void 0;
18
18
  const react_1 = __importDefault(require("react"));
19
- const prop_types_1 = __importDefault(require("prop-types"));
20
19
  const MissingComponent_1 = require("./MissingComponent");
21
20
  const layout_1 = require("@sitecore-jss/sitecore-jss/layout");
22
21
  const sitecore_jss_1 = require("@sitecore-jss/sitecore-jss");
@@ -151,9 +150,10 @@ class PlaceholderCommon extends react_1.default.Component {
151
150
  const isByocWrapper = componentRendering.componentName === BYOCWrapper_1.BYOC_WRAPPER_RENDERING_NAME;
152
151
  // all dynamic elements will have a separate render prop
153
152
  const isDynamicComponent = !!((_a = component.render) === null || _a === void 0 ? void 0 : _a.preload);
153
+ const disableSuspense = this.props.disableSuspense || false;
154
154
  // wrapping with error boundary could cause problems in case where parent component uses withPlaceholder HOC and tries to access its children props
155
155
  // that's why we need to expose element's props here
156
- rendered = (react_1.default.createElement(ErrorBoundary_1.default, Object.assign({ key: rendered.type + '-' + index, errorComponent: this.props.errorComponent, componentLoadingMessage: this.props.componentLoadingMessage, type: type, isDynamic: isDynamicComponent || isByocWrapper }, rendered.props), rendered));
156
+ rendered = (react_1.default.createElement(ErrorBoundary_1.default, Object.assign({ key: rendered.type + '-' + index, errorComponent: this.props.errorComponent, componentLoadingMessage: this.props.componentLoadingMessage, type: type, isDynamic: isDynamicComponent || isByocWrapper, disableSuspense: disableSuspense }, rendered.props), rendered));
157
157
  }
158
158
  // if editMode is equal to 'metadata' then emit shallow chromes for hydration in Pages
159
159
  if (((_b = this.props.sitecoreContext) === null || _b === void 0 ? void 0 : _b.editMode) === layout_1.EditMode.Metadata) {
@@ -220,28 +220,3 @@ class PlaceholderCommon extends react_1.default.Component {
220
220
  }
221
221
  }
222
222
  exports.PlaceholderCommon = PlaceholderCommon;
223
- PlaceholderCommon.propTypes = {
224
- rendering: prop_types_1.default.oneOfType([
225
- prop_types_1.default.object,
226
- prop_types_1.default.object,
227
- ]).isRequired,
228
- fields: prop_types_1.default.objectOf(prop_types_1.default.oneOfType([
229
- prop_types_1.default.object,
230
- prop_types_1.default.object,
231
- ]).isRequired),
232
- params: prop_types_1.default.objectOf(prop_types_1.default.string.isRequired),
233
- missingComponentComponent: prop_types_1.default.oneOfType([
234
- prop_types_1.default.object,
235
- prop_types_1.default.func,
236
- ]),
237
- hiddenRenderingComponent: prop_types_1.default.oneOfType([
238
- prop_types_1.default.object,
239
- prop_types_1.default.func,
240
- ]),
241
- errorComponent: prop_types_1.default.oneOfType([
242
- prop_types_1.default.object,
243
- prop_types_1.default.func,
244
- ]),
245
- modifyComponentProps: prop_types_1.default.func,
246
- sitecoreContext: prop_types_1.default.object,
247
- };
@@ -33,13 +33,9 @@ var __rest = (this && this.__rest) || function (s, e) {
33
33
  }
34
34
  return t;
35
35
  };
36
- var __importDefault = (this && this.__importDefault) || function (mod) {
37
- return (mod && mod.__esModule) ? mod : { "default": mod };
38
- };
39
36
  Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.RichTextPropTypes = exports.RichText = void 0;
37
+ exports.RichText = void 0;
41
38
  const react_1 = __importStar(require("react"));
42
- const prop_types_1 = __importDefault(require("prop-types"));
43
39
  const withFieldMetadata_1 = require("../enhancers/withFieldMetadata");
44
40
  const withEmptyFieldEditingComponent_1 = require("../enhancers/withEmptyFieldEditingComponent");
45
41
  const DefaultEmptyFieldEditingComponents_1 = require("./DefaultEmptyFieldEditingComponents");
@@ -56,18 +52,4 @@ exports.RichText = (0, withFieldMetadata_1.withFieldMetadata)((0, withEmptyField
56
52
  }, ref }, otherProps);
57
53
  return react_1.default.createElement(tag || 'div', htmlProps);
58
54
  }), { defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponents_1.DefaultEmptyFieldEditingComponentText, isForwardRef: true }), true);
59
- exports.RichTextPropTypes = {
60
- field: prop_types_1.default.shape({
61
- value: prop_types_1.default.string,
62
- editable: prop_types_1.default.string,
63
- metadata: prop_types_1.default.objectOf(prop_types_1.default.any),
64
- }),
65
- tag: prop_types_1.default.string,
66
- editable: prop_types_1.default.bool,
67
- emptyFieldEditingComponent: prop_types_1.default.oneOfType([
68
- prop_types_1.default.object,
69
- prop_types_1.default.func,
70
- ]),
71
- };
72
- exports.RichText.propTypes = exports.RichTextPropTypes;
73
55
  exports.RichText.displayName = 'RichText';
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.SitecoreContext = exports.ComponentFactoryReactContext = exports.SitecoreContextReactContext = void 0;
7
7
  /* eslint-disable @typescript-eslint/no-explicit-any */
8
8
  const react_1 = __importDefault(require("react"));
9
- const prop_types_1 = __importDefault(require("prop-types"));
10
9
  const react_2 = __importDefault(require("fast-deep-equal/es6/react"));
11
10
  const sitecore_jss_1 = require("@sitecore-jss/sitecore-jss");
12
11
  exports.SitecoreContextReactContext = react_1.default.createContext({});
@@ -61,14 +60,4 @@ class SitecoreContext extends react_1.default.Component {
61
60
  }
62
61
  }
63
62
  exports.SitecoreContext = SitecoreContext;
64
- SitecoreContext.propTypes = {
65
- children: prop_types_1.default.any.isRequired,
66
- componentFactory: prop_types_1.default.func,
67
- layoutData: prop_types_1.default.shape({
68
- sitecore: prop_types_1.default.shape({
69
- context: prop_types_1.default.any,
70
- route: prop_types_1.default.any,
71
- }),
72
- }),
73
- };
74
63
  SitecoreContext.displayName = 'SitecoreContext';
@@ -19,7 +19,6 @@ const react_1 = __importDefault(require("react"));
19
19
  const withFieldMetadata_1 = require("../enhancers/withFieldMetadata");
20
20
  const withEmptyFieldEditingComponent_1 = require("../enhancers/withEmptyFieldEditingComponent");
21
21
  const DefaultEmptyFieldEditingComponents_1 = require("./DefaultEmptyFieldEditingComponents");
22
- const prop_types_1 = __importDefault(require("prop-types"));
23
22
  const layout_1 = require("@sitecore-jss/sitecore-jss/layout");
24
23
  exports.Text = (0, withFieldMetadata_1.withFieldMetadata)((0, withEmptyFieldEditingComponent_1.withEmptyFieldEditingComponent)((_a) => {
25
24
  var { field, tag, editable = true, encode = true } = _a, otherProps = __rest(_a, ["field", "tag", "editable", "encode"]);
@@ -70,18 +69,4 @@ exports.Text = (0, withFieldMetadata_1.withFieldMetadata)((0, withEmptyFieldEdit
70
69
  return react_1.default.createElement(react_1.default.Fragment, null, children);
71
70
  }
72
71
  }, { defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponents_1.DefaultEmptyFieldEditingComponentText }));
73
- exports.Text.propTypes = {
74
- field: prop_types_1.default.shape({
75
- value: prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number]),
76
- editable: prop_types_1.default.string,
77
- metadata: prop_types_1.default.objectOf(prop_types_1.default.any),
78
- }),
79
- tag: prop_types_1.default.string,
80
- editable: prop_types_1.default.bool,
81
- encode: prop_types_1.default.bool,
82
- emptyFieldEditingComponent: prop_types_1.default.oneOfType([
83
- prop_types_1.default.object,
84
- prop_types_1.default.func,
85
- ]),
86
- };
87
72
  exports.Text.displayName = 'Text';
package/dist/cjs/index.js CHANGED
@@ -1,7 +1,7 @@
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.fetchBYOCComponentServerProps = exports.BYOCComponent = exports.FEaaSWrapper = exports.fetchFEaaSComponentServerProps = exports.FEaaSComponent = exports.DateField = exports.Text = exports.RichTextPropTypes = exports.RichText = exports.getEEMarkup = exports.Image = exports.Form = exports.Placeholder = exports.mediaApi = exports.GraphQLRequestClient = exports.DefaultRetryStrategy = exports.RestDictionaryService = exports.GraphQLDictionaryService = exports.trackingApi = exports.EditMode = exports.getFieldValue = exports.getChildPlaceholder = exports.RestLayoutService = exports.GraphQLLayoutService = exports.LayoutServicePageState = exports.getComponentLibraryStylesheetLinks = exports.getContentStylesheetLink = exports.DefaultEditFrameButtons = exports.DefaultEditFrameButton = exports.resetEditorChromes = exports.isEditorActive = exports.NativeDataFetcher = exports.MemoryCacheClient = exports.ClientError = exports.enableDebug = exports.constants = void 0;
4
- exports.DefaultEmptyFieldEditingComponentImage = exports.DefaultEmptyFieldEditingComponentText = exports.EditingScripts = exports.withEmptyFieldEditingComponent = exports.withFieldMetadata = void 0;
3
+ exports.withEmptyFieldEditingComponent = exports.withFieldMetadata = exports.ComponentBuilder = exports.EditFrame = exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecoreContext = exports.withSitecoreContext = exports.SitecoreContextReactContext = exports.SitecoreContext = exports.VisitorIdentification = exports.File = exports.Link = exports.BYOCWrapper = exports.fetchBYOCComponentServerProps = exports.BYOCComponent = exports.FEaaSWrapper = exports.fetchFEaaSComponentServerProps = exports.FEaaSComponent = exports.DateField = exports.Text = exports.RichText = exports.getEEMarkup = exports.Image = exports.Form = exports.Placeholder = exports.mediaApi = exports.GraphQLRequestClient = exports.DefaultRetryStrategy = exports.RestDictionaryService = exports.GraphQLDictionaryService = exports.trackingApi = exports.EditMode = exports.getFieldValue = exports.getChildPlaceholder = exports.RestLayoutService = exports.GraphQLLayoutService = exports.LayoutServicePageState = exports.getComponentLibraryStylesheetLinks = exports.getContentStylesheetLink = exports.DefaultEditFrameButtons = exports.DefaultEditFrameButton = exports.resetEditorChromes = exports.isEditorActive = exports.NativeDataFetcher = exports.MemoryCacheClient = exports.ClientError = exports.enableDebug = exports.constants = void 0;
4
+ exports.DefaultEmptyFieldEditingComponentImage = exports.DefaultEmptyFieldEditingComponentText = exports.EditingScripts = void 0;
5
5
  var sitecore_jss_1 = require("@sitecore-jss/sitecore-jss");
6
6
  Object.defineProperty(exports, "constants", { enumerable: true, get: function () { return sitecore_jss_1.constants; } });
7
7
  Object.defineProperty(exports, "enableDebug", { enumerable: true, get: function () { return sitecore_jss_1.enableDebug; } });
@@ -41,7 +41,6 @@ Object.defineProperty(exports, "Image", { enumerable: true, get: function () { r
41
41
  Object.defineProperty(exports, "getEEMarkup", { enumerable: true, get: function () { return Image_1.getEEMarkup; } });
42
42
  var RichText_1 = require("./components/RichText");
43
43
  Object.defineProperty(exports, "RichText", { enumerable: true, get: function () { return RichText_1.RichText; } });
44
- Object.defineProperty(exports, "RichTextPropTypes", { enumerable: true, get: function () { return RichText_1.RichTextPropTypes; } });
45
44
  var Text_1 = require("./components/Text");
46
45
  Object.defineProperty(exports, "Text", { enumerable: true, get: function () { return Text_1.Text; } });
47
46
  var Date_1 = require("./components/Date");
@@ -58,7 +57,6 @@ var BYOCWrapper_1 = require("./components/BYOCWrapper");
58
57
  Object.defineProperty(exports, "BYOCWrapper", { enumerable: true, get: function () { return BYOCWrapper_1.BYOCWrapper; } });
59
58
  var Link_1 = require("./components/Link");
60
59
  Object.defineProperty(exports, "Link", { enumerable: true, get: function () { return Link_1.Link; } });
61
- Object.defineProperty(exports, "LinkPropTypes", { enumerable: true, get: function () { return Link_1.LinkPropTypes; } });
62
60
  var File_1 = require("./components/File");
63
61
  Object.defineProperty(exports, "File", { enumerable: true, get: function () { return File_1.File; } });
64
62
  var VisitorIdentification_1 = require("./components/VisitorIdentification");
@@ -10,7 +10,6 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import React from 'react';
13
- import PropTypes from 'prop-types';
14
13
  import { withFieldMetadata } from '../enhancers/withFieldMetadata';
15
14
  import { withEmptyFieldEditingComponent } from '../enhancers/withEmptyFieldEditingComponent';
16
15
  import { DefaultEmptyFieldEditingComponentText } from './DefaultEmptyFieldEditingComponents';
@@ -40,18 +39,4 @@ export const DateField = withFieldMetadata(withEmptyFieldEditingComponent((_a) =
40
39
  return React.createElement(React.Fragment, null, children);
41
40
  }
42
41
  }, { defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText }));
43
- DateField.propTypes = {
44
- field: PropTypes.shape({
45
- value: PropTypes.string,
46
- editable: PropTypes.string,
47
- metadata: PropTypes.objectOf(PropTypes.any),
48
- }).isRequired,
49
- tag: PropTypes.string,
50
- editable: PropTypes.bool,
51
- render: PropTypes.func,
52
- emptyFieldEditingComponent: PropTypes.oneOfType([
53
- PropTypes.object,
54
- PropTypes.func,
55
- ]),
56
- };
57
42
  DateField.displayName = 'Date';
@@ -50,8 +50,8 @@ class ErrorBoundary extends React.Component {
50
50
  }
51
51
  }
52
52
  }
53
- // do not apply suspense on already dynamic components
54
- if (this.props.isDynamic) {
53
+ // do not apply suspense when suspense is disabled or when on already dynamic components
54
+ if (this.props.disableSuspense || this.props.isDynamic) {
55
55
  return this.props.children;
56
56
  }
57
57
  return (React.createElement(Suspense, { fallback: React.createElement("h4", null, this.props.componentLoadingMessage || this.defaultLoadingMessage) }, this.props.children));
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
- import PropTypes from 'prop-types';
3
2
  import { MetadataKind } from '@sitecore-jss/sitecore-jss/editing';
4
3
  /**
5
4
  * The component which renders field metadata markup
@@ -21,7 +20,3 @@ export const FieldMetadata = (props) => {
21
20
  React.createElement("code", Object.assign({}, codeCloseAttributes))));
22
21
  };
23
22
  FieldMetadata.displayName = 'FieldMetadata';
24
- FieldMetadata.propTypes = {
25
- metadata: PropTypes.object.isRequired,
26
- children: PropTypes.node.isRequired,
27
- };
@@ -10,7 +10,6 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import { isFieldValueEmpty } from '@sitecore-jss/sitecore-jss/layout';
13
- import PropTypes from 'prop-types';
14
13
  import React from 'react';
15
14
  export const File = (_a) => {
16
15
  /*
@@ -34,14 +33,4 @@ export const File = (_a) => {
34
33
  };
35
34
  return React.createElement('a', Object.assign(Object.assign({}, anchorAttrs), otherProps), linkText, children);
36
35
  };
37
- File.propTypes = {
38
- field: PropTypes.oneOfType([
39
- PropTypes.shape({
40
- src: PropTypes.string,
41
- }),
42
- PropTypes.shape({
43
- value: PropTypes.object,
44
- }),
45
- ]).isRequired,
46
- };
47
36
  File.displayName = 'File';
@@ -10,7 +10,6 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import { mediaApi } from '@sitecore-jss/sitecore-jss/media';
13
- import PropTypes from 'prop-types';
14
13
  import React from 'react';
15
14
  import { addClassName, convertAttributesToReactProps } from '../utils';
16
15
  import { getAttributesString } from '../utils';
@@ -90,22 +89,4 @@ export const Image = withFieldMetadata(withEmptyFieldEditingComponent((_a) => {
90
89
  }
91
90
  return null; // we can't handle the truth
92
91
  }, { defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentImage }));
93
- Image.propTypes = {
94
- field: PropTypes.oneOfType([
95
- PropTypes.shape({
96
- src: PropTypes.string,
97
- }),
98
- PropTypes.shape({
99
- value: PropTypes.object,
100
- editable: PropTypes.string,
101
- }),
102
- ]),
103
- editable: PropTypes.bool,
104
- mediaUrlPrefix: PropTypes.instanceOf(RegExp),
105
- imageParams: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.number.isRequired, PropTypes.string.isRequired]).isRequired),
106
- emptyFieldEditingComponent: PropTypes.oneOfType([
107
- PropTypes.object,
108
- PropTypes.func,
109
- ]),
110
- };
111
92
  Image.displayName = 'Image';
@@ -10,7 +10,6 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import React, { forwardRef } from 'react';
13
- import PropTypes from 'prop-types';
14
13
  import { withFieldMetadata } from '../enhancers/withFieldMetadata';
15
14
  import { withEmptyFieldEditingComponent } from '../enhancers/withEmptyFieldEditingComponent';
16
15
  import { DefaultEmptyFieldEditingComponentText } from './DefaultEmptyFieldEditingComponents';
@@ -68,23 +67,4 @@ forwardRef((_a, ref) => {
68
67
  resultTags.push(React.createElement('a', Object.assign(Object.assign(Object.assign({}, anchorAttrs), otherProps), { key: 'link', ref }), linkText, children));
69
68
  return React.createElement(React.Fragment, null, resultTags);
70
69
  }), { defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText, isForwardRef: true }), true);
71
- export const LinkPropTypes = {
72
- field: PropTypes.oneOfType([
73
- PropTypes.shape({
74
- href: PropTypes.oneOfType([PropTypes.string.isRequired, PropTypes.oneOf([null]).isRequired]),
75
- }),
76
- PropTypes.shape({
77
- value: PropTypes.object,
78
- editableFirstPart: PropTypes.string,
79
- editableLastPart: PropTypes.string,
80
- }),
81
- ]).isRequired,
82
- editable: PropTypes.bool,
83
- showLinkTextWithChildrenPresent: PropTypes.bool,
84
- emptyFieldEditingComponent: PropTypes.oneOfType([
85
- PropTypes.object,
86
- PropTypes.func,
87
- ]),
88
- };
89
- Link.propTypes = LinkPropTypes;
90
70
  Link.displayName = 'Link';
@@ -1,4 +1,3 @@
1
- import PropTypes from 'prop-types';
2
1
  import React from 'react';
3
2
  export const MissingComponent = (props) => {
4
3
  const componentName = props.rendering && props.rendering.componentName
@@ -19,9 +18,4 @@ export const MissingComponent = (props) => {
19
18
  React.createElement("h2", null, componentName),
20
19
  React.createElement("p", null, errorMessage)));
21
20
  };
22
- MissingComponent.propTypes = {
23
- rendering: PropTypes.shape({
24
- componentName: PropTypes.string,
25
- }),
26
- };
27
21
  MissingComponent.displayName = 'MissingComponent';
@@ -10,7 +10,6 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import React from 'react';
13
- import PropTypes from 'prop-types';
14
13
  import { MissingComponent } from './MissingComponent';
15
14
  import { EditMode, isDynamicPlaceholder, getDynamicPlaceholderPattern, } from '@sitecore-jss/sitecore-jss/layout';
16
15
  import { constants } from '@sitecore-jss/sitecore-jss';
@@ -145,9 +144,10 @@ export class PlaceholderCommon extends React.Component {
145
144
  const isByocWrapper = componentRendering.componentName === BYOC_WRAPPER_RENDERING_NAME;
146
145
  // all dynamic elements will have a separate render prop
147
146
  const isDynamicComponent = !!((_a = component.render) === null || _a === void 0 ? void 0 : _a.preload);
147
+ const disableSuspense = this.props.disableSuspense || false;
148
148
  // wrapping with error boundary could cause problems in case where parent component uses withPlaceholder HOC and tries to access its children props
149
149
  // that's why we need to expose element's props here
150
- rendered = (React.createElement(ErrorBoundary, Object.assign({ key: rendered.type + '-' + index, errorComponent: this.props.errorComponent, componentLoadingMessage: this.props.componentLoadingMessage, type: type, isDynamic: isDynamicComponent || isByocWrapper }, rendered.props), rendered));
150
+ rendered = (React.createElement(ErrorBoundary, Object.assign({ key: rendered.type + '-' + index, errorComponent: this.props.errorComponent, componentLoadingMessage: this.props.componentLoadingMessage, type: type, isDynamic: isDynamicComponent || isByocWrapper, disableSuspense: disableSuspense }, rendered.props), rendered));
151
151
  }
152
152
  // if editMode is equal to 'metadata' then emit shallow chromes for hydration in Pages
153
153
  if (((_b = this.props.sitecoreContext) === null || _b === void 0 ? void 0 : _b.editMode) === EditMode.Metadata) {
@@ -213,28 +213,3 @@ export class PlaceholderCommon extends React.Component {
213
213
  });
214
214
  }
215
215
  }
216
- PlaceholderCommon.propTypes = {
217
- rendering: PropTypes.oneOfType([
218
- PropTypes.object,
219
- PropTypes.object,
220
- ]).isRequired,
221
- fields: PropTypes.objectOf(PropTypes.oneOfType([
222
- PropTypes.object,
223
- PropTypes.object,
224
- ]).isRequired),
225
- params: PropTypes.objectOf(PropTypes.string.isRequired),
226
- missingComponentComponent: PropTypes.oneOfType([
227
- PropTypes.object,
228
- PropTypes.func,
229
- ]),
230
- hiddenRenderingComponent: PropTypes.oneOfType([
231
- PropTypes.object,
232
- PropTypes.func,
233
- ]),
234
- errorComponent: PropTypes.oneOfType([
235
- PropTypes.object,
236
- PropTypes.func,
237
- ]),
238
- modifyComponentProps: PropTypes.func,
239
- sitecoreContext: PropTypes.object,
240
- };
@@ -10,7 +10,6 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import React, { forwardRef } from 'react';
13
- import PropTypes from 'prop-types';
14
13
  import { withFieldMetadata } from '../enhancers/withFieldMetadata';
15
14
  import { withEmptyFieldEditingComponent } from '../enhancers/withEmptyFieldEditingComponent';
16
15
  import { DefaultEmptyFieldEditingComponentText } from './DefaultEmptyFieldEditingComponents';
@@ -27,18 +26,4 @@ forwardRef((_a, ref) => {
27
26
  }, ref }, otherProps);
28
27
  return React.createElement(tag || 'div', htmlProps);
29
28
  }), { defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText, isForwardRef: true }), true);
30
- export const RichTextPropTypes = {
31
- field: PropTypes.shape({
32
- value: PropTypes.string,
33
- editable: PropTypes.string,
34
- metadata: PropTypes.objectOf(PropTypes.any),
35
- }),
36
- tag: PropTypes.string,
37
- editable: PropTypes.bool,
38
- emptyFieldEditingComponent: PropTypes.oneOfType([
39
- PropTypes.object,
40
- PropTypes.func,
41
- ]),
42
- };
43
- RichText.propTypes = RichTextPropTypes;
44
29
  RichText.displayName = 'RichText';
@@ -1,6 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import React from 'react';
3
- import PropTypes from 'prop-types';
4
3
  import fastDeepEqual from 'fast-deep-equal/es6/react';
5
4
  import { constants } from '@sitecore-jss/sitecore-jss';
6
5
  export const SitecoreContextReactContext = React.createContext({});
@@ -54,14 +53,4 @@ export class SitecoreContext extends React.Component {
54
53
  React.createElement(SitecoreContextReactContext.Provider, { value: this.state }, this.props.children)));
55
54
  }
56
55
  }
57
- SitecoreContext.propTypes = {
58
- children: PropTypes.any.isRequired,
59
- componentFactory: PropTypes.func,
60
- layoutData: PropTypes.shape({
61
- sitecore: PropTypes.shape({
62
- context: PropTypes.any,
63
- route: PropTypes.any,
64
- }),
65
- }),
66
- };
67
56
  SitecoreContext.displayName = 'SitecoreContext';
@@ -13,7 +13,6 @@ import React from 'react';
13
13
  import { withFieldMetadata } from '../enhancers/withFieldMetadata';
14
14
  import { withEmptyFieldEditingComponent } from '../enhancers/withEmptyFieldEditingComponent';
15
15
  import { DefaultEmptyFieldEditingComponentText } from './DefaultEmptyFieldEditingComponents';
16
- import PropTypes from 'prop-types';
17
16
  import { isFieldValueEmpty } from '@sitecore-jss/sitecore-jss/layout';
18
17
  export const Text = withFieldMetadata(withEmptyFieldEditingComponent((_a) => {
19
18
  var { field, tag, editable = true, encode = true } = _a, otherProps = __rest(_a, ["field", "tag", "editable", "encode"]);
@@ -64,18 +63,4 @@ export const Text = withFieldMetadata(withEmptyFieldEditingComponent((_a) => {
64
63
  return React.createElement(React.Fragment, null, children);
65
64
  }
66
65
  }, { defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentText }));
67
- Text.propTypes = {
68
- field: PropTypes.shape({
69
- value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
70
- editable: PropTypes.string,
71
- metadata: PropTypes.objectOf(PropTypes.any),
72
- }),
73
- tag: PropTypes.string,
74
- editable: PropTypes.bool,
75
- encode: PropTypes.bool,
76
- emptyFieldEditingComponent: PropTypes.oneOfType([
77
- PropTypes.object,
78
- PropTypes.func,
79
- ]),
80
- };
81
66
  Text.displayName = 'Text';
package/dist/esm/index.js CHANGED
@@ -8,14 +8,14 @@ export { mediaApi } from '@sitecore-jss/sitecore-jss/media';
8
8
  export { Placeholder } from './components/Placeholder';
9
9
  export { Form } from './components/Form';
10
10
  export { Image, getEEMarkup, } from './components/Image';
11
- export { RichText, RichTextPropTypes } from './components/RichText';
11
+ export { RichText } from './components/RichText';
12
12
  export { Text } from './components/Text';
13
13
  export { DateField } from './components/Date';
14
14
  export { FEaaSComponent, fetchFEaaSComponentServerProps, } from './components/FEaaSComponent';
15
15
  export { FEaaSWrapper } from './components/FEaaSWrapper';
16
16
  export { BYOCComponent, fetchBYOCComponentServerProps, } from './components/BYOCComponent';
17
17
  export { BYOCWrapper } from './components/BYOCWrapper';
18
- export { Link, LinkPropTypes } from './components/Link';
18
+ export { Link } from './components/Link';
19
19
  export { File } from './components/File';
20
20
  export { VisitorIdentification } from './components/VisitorIdentification';
21
21
  export { SitecoreContext, SitecoreContextReactContext, } from './components/SitecoreContext';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sitecore-jss/sitecore-jss-react",
3
- "version": "22.6.0",
3
+ "version": "22.7.0-canary.10",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "sideEffects": false,
@@ -8,7 +8,7 @@
8
8
  "build": "npm run clean && tsc -p tsconfig.json && tsc -p tsconfig-esm.json",
9
9
  "clean": "del-cli dist types",
10
10
  "lint": "eslint \"./src/**/*.tsx\" \"./src/**/*.ts\"",
11
- "test": "mocha --require ts-node/register/transpile-only --require ./src/tests/shim.ts ./src/tests/jsdom-setup.ts ./src/tests/enzyme-setup.ts \"./src/**/*.test.ts\" \"./src/**/*.test.tsx\" --exit",
11
+ "test": "mocha --require ts-node/register/transpile-only --require ./src/tests/jsdom-setup.ts \"./src/**/*.test.ts\" \"./src/**/*.test.tsx\" --exit",
12
12
  "prepublishOnly": "npm run build",
13
13
  "coverage": "nyc npm test",
14
14
  "generate-docs": "npx typedoc --plugin typedoc-plugin-markdown --outputFileStrategy Members --parametersFormat table --readme none --out ../../ref-docs/sitecore-jss-react src/index.ts --githubPages false"
@@ -27,49 +27,47 @@
27
27
  },
28
28
  "devDependencies": {
29
29
  "@sitecore-feaas/clientside": "^0.5.19",
30
+ "@testing-library/dom": "^10.4.0",
31
+ "@testing-library/react": "^16.1.0",
32
+ "@testing-library/user-event": "^14.6.0",
30
33
  "@types/chai": "^4.3.4",
31
34
  "@types/chai-string": "^1.4.2",
32
- "@types/enzyme": "^3.10.12",
33
35
  "@types/mocha": "^10.0.1",
34
36
  "@types/node": "20.14.2",
35
- "@types/prop-types": "^15.7.5",
36
- "@types/react": "^18.2.45",
37
- "@types/react-dom": "^18.0.10",
37
+ "@types/react": "^19.1.2",
38
+ "@types/react-dom": "^19.1.3",
38
39
  "@types/sinon": "^10.0.13",
39
40
  "@types/sinon-chai": "^3.2.9",
40
- "@wojtekmaj/enzyme-adapter-react-17": "^0.8.0",
41
41
  "chai": "^4.3.7",
42
42
  "chai-string": "^1.5.0",
43
43
  "cheerio": "1.0.0-rc.12",
44
44
  "del-cli": "^5.0.0",
45
- "enzyme": "^3.11.0",
46
45
  "eslint": "^8.56.0",
47
- "eslint-plugin-react": "^7.31.11",
46
+ "eslint-plugin-react": "^7.37.5",
48
47
  "jsdom": "^25.0.1",
49
48
  "mocha": "^10.2.0",
50
49
  "nyc": "^15.1.0",
51
- "react": "^18.2.0",
52
- "react-dom": "^18.2.0",
50
+ "react": "^19.1.0",
51
+ "react-dom": "^19.1.0",
53
52
  "sinon": "^15.0.0",
54
53
  "sinon-chai": "^3.7.0",
55
54
  "ts-node": "^10.9.1",
56
55
  "typescript": "~4.9.3"
57
56
  },
58
57
  "peerDependencies": {
59
- "@sitecore-cloudsdk/events": "^0.4.2",
58
+ "@sitecore-cloudsdk/events": "^0.5.1",
60
59
  "@sitecore-feaas/clientside": "^0.5.19",
61
- "react": "^18.2.0",
62
- "react-dom": "^18.2.0"
60
+ "react": "^19.1.0",
61
+ "react-dom": "^19.1.0"
63
62
  },
64
63
  "dependencies": {
65
- "@sitecore-jss/sitecore-jss": "22.6.0",
64
+ "@sitecore-jss/sitecore-jss": "22.7.0-canary.10",
66
65
  "fast-deep-equal": "^3.1.3",
67
- "prop-types": "^15.8.1",
68
66
  "style-attr": "^1.3.0"
69
67
  },
70
68
  "description": "",
71
69
  "types": "types/index.d.ts",
72
- "gitHead": "e75a84e27a017ba303b4e9b3a8e65d4dac4c8a59",
70
+ "gitHead": "98bc01faa6487f50b8f39498af7eac98ecc86445",
73
71
  "files": [
74
72
  "dist",
75
73
  "types"
@@ -1,3 +1,4 @@
1
1
  import { BYOCComponentProps } from './BYOCComponent';
2
+ import { JSX } from 'react';
2
3
  export declare const BYOC_WRAPPER_RENDERING_NAME = "BYOCWrapper";
3
4
  export declare const BYOCWrapper: (props: BYOCComponentProps) => JSX.Element;
@@ -1,3 +1,4 @@
1
+ import { JSX } from 'react';
1
2
  /**
2
3
  * Renders client scripts and data for editing/preview mode in Pages.
3
4
  * This script is only rendered when EditMode is Metadata, otherwise it renders nothing.
@@ -10,6 +10,7 @@ export type ErrorBoundaryProps = {
10
10
  sitecoreContext: SitecoreContextValue;
11
11
  type: string;
12
12
  isDynamic?: boolean;
13
+ disableSuspense?: boolean;
13
14
  errorComponent?: React.ComponentClass<ErrorComponentProps> | React.FC<ErrorComponentProps>;
14
15
  rendering?: ComponentRendering;
15
16
  componentLoadingMessage?: string;
@@ -1,3 +1,4 @@
1
+ import { JSX } from 'react';
1
2
  import * as FEAAS from '@sitecore-feaas/clientside/react';
2
3
  import { ComponentFields, LayoutServicePageState } from '@sitecore-jss/sitecore-jss/layout';
3
4
  export declare const FEAAS_COMPONENT_RENDERING_NAME = "FEaaSComponent";
@@ -1,3 +1,4 @@
1
1
  import { FEaaSComponentProps } from './FEaaSComponent';
2
+ import { JSX } from 'react';
2
3
  export declare const FEAAS_WRAPPER_RENDERING_NAME = "FEaaSWrapper";
3
4
  export declare const FEaaSWrapper: (props: FEaaSComponentProps) => JSX.Element;
@@ -1,6 +1,5 @@
1
1
  /// <reference types="@types/react" />
2
- import React from 'react';
3
- import PropTypes from 'prop-types';
2
+ import React, { JSX } from 'react';
4
3
  interface FieldMetadataProps {
5
4
  metadata: {
6
5
  [key: string]: unknown;
@@ -15,9 +14,5 @@ interface FieldMetadataProps {
15
14
  export declare const FieldMetadata: {
16
15
  (props: FieldMetadataProps): JSX.Element;
17
16
  displayName: string;
18
- propTypes: {
19
- metadata: PropTypes.Validator<object>;
20
- children: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>;
21
- };
22
17
  };
23
18
  export {};
@@ -1,6 +1,5 @@
1
1
  /// <reference types="@types/react" />
2
2
  import React, { RefAttributes } from 'react';
3
- import PropTypes from 'prop-types';
4
3
  import { EditableFieldProps } from './sharedTypes';
5
4
  import { FieldMetadata } from '@sitecore-jss/sitecore-jss/layout';
6
5
  export interface LinkFieldValue {
@@ -30,15 +29,3 @@ export type LinkProps = EditableFieldProps & React.AnchorHTMLAttributes<HTMLAnch
30
29
  showLinkTextWithChildrenPresent?: boolean;
31
30
  };
32
31
  export declare const Link: React.FC<LinkProps>;
33
- export declare const LinkPropTypes: {
34
- field: PropTypes.Validator<NonNullable<NonNullable<PropTypes.InferProps<{
35
- href: PropTypes.Requireable<any>;
36
- }> | PropTypes.InferProps<{
37
- value: PropTypes.Requireable<object>;
38
- editableFirstPart: PropTypes.Requireable<string>;
39
- editableLastPart: PropTypes.Requireable<string>;
40
- }>>>>;
41
- editable: PropTypes.Requireable<boolean>;
42
- showLinkTextWithChildrenPresent: PropTypes.Requireable<boolean>;
43
- emptyFieldEditingComponent: PropTypes.Requireable<NonNullable<React.ComponentClass<unknown, any> | React.FC<unknown>>>;
44
- };