@sitecore-jss/sitecore-jss-react-native 22.3.0 → 22.3.1-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.
- package/dist/components/Date.js +1 -1
- package/dist/components/Date.test.js +1 -1
- package/dist/components/Image.js +1 -1
- package/dist/components/Image.test.js +1 -1
- package/dist/components/Link.d.ts +1 -1
- package/dist/components/Link.js +1 -1
- package/dist/components/MissingComponent.js +1 -1
- package/dist/components/MissingComponent.test.js +1 -1
- package/dist/components/Placeholder.d.ts +1 -1
- package/dist/components/Placeholder.js +1 -1
- package/dist/components/Placeholder.test.js +1 -1
- package/dist/components/PlaceholderCommon.d.ts +2 -2
- package/dist/components/PlaceholderCommon.js +1 -1
- package/dist/components/RichText.js +1 -1
- package/dist/components/RichText.test.js +1 -1
- package/dist/components/SitecoreContext.js +1 -1
- package/dist/components/Text.js +1 -1
- package/dist/components/Text.test.js +1 -1
- package/dist/components/UnrenderableComponent.js +1 -1
- package/dist/components/sharedTypes.d.ts +1 -1
- package/dist/enhancers/withComponentFactory.js +1 -1
- package/dist/enhancers/withComponentFactory.test.js +1 -1
- package/package.json +7 -7
package/dist/components/Date.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.DateField=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNative=require("react-native");var _reactNativeHtmlview=_interopRequireDefault(require("react-native-htmlview"));var _jsxFileName="
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.DateField=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNative=require("react-native");var _reactNativeHtmlview=_interopRequireDefault(require("react-native-htmlview"));var _jsxFileName="/home/vsts/work/1/s/packages/sitecore-jss-react-native/src/components/Date.tsx";var _excluded=["field","editable","render"];var DateField=exports.DateField=function DateField(_ref){var field=_ref.field,editable=_ref.editable,render=_ref.render,otherProps=(0,_objectWithoutProperties2["default"])(_ref,_excluded);if(!field||!field.editable&&!field.value){return null;}if(field.editable&&editable){return _react["default"].createElement(_reactNativeHtmlview["default"],(0,_extends2["default"])({value:field.editable},otherProps,{__source:{fileName:_jsxFileName,lineNumber:33,columnNumber:12}}));}var children;if(render){children=render(field.value?new Date(field.value):null);}else{children=field.value;}return render?_react["default"].createElement(_react["default"].Fragment,null,children):_react["default"].createElement(_reactNative.Text,{__source:{fileName:_jsxFileName,lineNumber:44,columnNumber:37}},children);};DateField.propTypes={field:_propTypes["default"].shape({value:_propTypes["default"].any,editable:_propTypes["default"].string}).isRequired,editable:_propTypes["default"].bool,render:_propTypes["default"].func};DateField.defaultProps={editable:true};DateField.displayName='Date';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireDefault(require("react"));var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _reactNative=require("react-native");var _Date=require("./Date");var _jsxFileName="
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireDefault(require("react"));var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _reactNative=require("react-native");var _Date=require("./Date");var _jsxFileName="/home/vsts/work/1/s/packages/sitecore-jss-react-native/src/components/Date.test.tsx";describe('<DateField />',function(){test('should render nothing with missing field',function(){var p={field:{}};var c=_reactTestRenderer["default"].create(_react["default"].createElement(_Date.DateField,(0,_extends2["default"])({},p,{__source:{fileName:_jsxFileName,lineNumber:12,columnNumber:31}})));var instance=c.getInstance();expect(instance&&instance.children).toEqual(null);expect(c).toMatchSnapshot();});test('should render value',function(){var p={field:{value:'xxx'}};var c=_reactTestRenderer["default"].create(_react["default"].createElement(_Date.DateField,(0,_extends2["default"])({},p,{__source:{fileName:_jsxFileName,lineNumber:27,columnNumber:31}})));expect(c).toMatchSnapshot();});test('should render value using render function',function(){var render=function render(date){return _react["default"].createElement(_reactNative.View,{__source:{fileName:_jsxFileName,lineNumber:34,columnNumber:7}},_react["default"].createElement(_reactNative.Text,{__source:{fileName:_jsxFileName,lineNumber:35,columnNumber:9}},"Test test test..."),_react["default"].createElement(_reactNative.Text,{__source:{fileName:_jsxFileName,lineNumber:36,columnNumber:9}},date?date.toDateString():''));};var p={field:{value:'10-23-2003'},render:render};var c=_reactTestRenderer["default"].create(_react["default"].createElement(_Date.DateField,(0,_extends2["default"])({},p,{__source:{fileName:_jsxFileName,lineNumber:47,columnNumber:31}})));expect(c).toMatchSnapshot();});});
|
package/dist/components/Image.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.isSvgImage=exports.Image=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNative=require("react-native");var _reactNativeSvgUri=_interopRequireDefault(require("react-native-svg-uri"));var _media=require("@sitecore-jss/sitecore-jss/media");var _jsxFileName="
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.isSvgImage=exports.Image=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNative=require("react-native");var _reactNativeSvgUri=_interopRequireDefault(require("react-native-svg-uri"));var _media=require("@sitecore-jss/sitecore-jss/media");var _jsxFileName="/home/vsts/work/1/s/packages/sitecore-jss-react-native/src/components/Image.tsx";var _excluded=["src","width","height","style"],_excluded2=["media","imageUrlParams","field"];function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable;})),t.push.apply(t,o);}return t;}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){(0,_defineProperty2["default"])(e,r,t[r]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));});}return e;}var getImageAttrs=function getImageAttrs(_ref,imageUrlParams){var src=_ref.src,width=_ref.width,height=_ref.height,style=_ref.style,otherAttrs=(0,_objectWithoutProperties2["default"])(_ref,_excluded);if(!src){return null;}var newAttrs=_objectSpread({},otherAttrs);var imgStyles={};if(width){imgStyles.width=typeof width!=='number'?Number(width):width;}if(height){imgStyles.height=typeof height!=='number'?Number(height):height;}if(typeof src==='number'){newAttrs.source=src;}else{var uri=_media.mediaApi.updateImageUrl(src,imageUrlParams);newAttrs.source={uri:uri};}if(isSvgImage(newAttrs.source)){newAttrs.style=_objectSpread(_objectSpread({},style||{}),imgStyles);}else{newAttrs.style=style?[imgStyles,style]:imgStyles;}return newAttrs;};var isSvgImage=exports.isSvgImage=function isSvgImage(source){var isSvg=/\.svg($|\?|\&)/g;var src=_reactNative.Image.resolveAssetSource(source);return src&&isSvg.test(src.uri);};var Image=exports.Image=function Image(_ref2){var media=_ref2.media,imageUrlParams=_ref2.imageUrlParams,field=_ref2.field,otherProps=(0,_objectWithoutProperties2["default"])(_ref2,_excluded2);var dynamicMedia=media;if(field&&!media){dynamicMedia=field;}if(!dynamicMedia||!dynamicMedia.value&&!dynamicMedia.src){return null;}var img=dynamicMedia.src?dynamicMedia:dynamicMedia.value;if(!img){return null;}var attrs=getImageAttrs(_objectSpread(_objectSpread({},img),otherProps),imageUrlParams);if(attrs&&isSvgImage(attrs.source))return _react["default"].createElement(_reactNativeSvgUri["default"],(0,_extends2["default"])({},attrs,{__source:{fileName:_jsxFileName,lineNumber:126,columnNumber:72}}));if(attrs)return _react["default"].createElement(_reactNative.Image,(0,_extends2["default"])({},attrs,{source:attrs.source,__source:{fileName:_jsxFileName,lineNumber:128,columnNumber:21}}));return null;};Image.propTypes={media:_propTypes["default"].oneOfType([_propTypes["default"].shape({src:_propTypes["default"].oneOfType([_propTypes["default"].string,_propTypes["default"].number])}),_propTypes["default"].shape({value:_propTypes["default"].object})]),imageUrlParams:_propTypes["default"].any};Image.displayName='Image';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireDefault(require("react"));var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _reactNative=require("react-native");var _Image=require("./Image");var _jsxFileName="
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireDefault(require("react"));var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _reactNative=require("react-native");var _Image=require("./Image");var _jsxFileName="/home/vsts/work/1/s/packages/sitecore-jss-react-native/src/components/Image.test.tsx";function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable;})),t.push.apply(t,o);}return t;}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){(0,_defineProperty2["default"])(e,r,t[r]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));});}return e;}var staticImages={'test-image-1':{src:1}};var networkImages={'test-image-1':{src:'https://jssapp/-/media/myfile.ashx&w=180&h=360',width:180,height:360,alt:'Logo'}};var testData=[{label:'static images',data:staticImages},{label:'network images',data:networkImages}];describe('<Image />',function(){testData.forEach(function(dataSet){describe("with ".concat(dataSet.label),function(){describe('with direct image object, no value/editable',function(){test('should render properly',function(){var props={media:dataSet.data['test-image-1'],resizeMode:'cover'};var rendered=_reactTestRenderer["default"].create(_react["default"].createElement(_Image.Image,(0,_extends2["default"])({},props,{__source:{fileName:_jsxFileName,lineNumber:41,columnNumber:44}})));expect(rendered).toMatchSnapshot();});});describe('with value/editable image object',function(){test('should render properly',function(){var props={media:{value:dataSet.data['test-image-1'],editable:'bob loblaw'},resizeMode:'cover'};var rendered=_reactTestRenderer["default"].create(_react["default"].createElement(_Image.Image,(0,_extends2["default"])({},props,{__source:{fileName:_jsxFileName,lineNumber:56,columnNumber:44}})));expect(rendered).toMatchSnapshot();});});describe('with style prop',function(){describe('with width or height specified in field data',function(){test('should render merged styles',function(){var styles=_reactNative.StyleSheet.create({logoImage:{margin:20}});var props={media:{value:_objectSpread(_objectSpread({},dataSet.data['test-image-1']),{},{width:'180',height:'360'}),editable:'bob loblaw'},style:styles.logoImage,resizeMode:'cover'};var rendered=_reactTestRenderer["default"].create(_react["default"].createElement(_Image.Image,(0,_extends2["default"])({},props,{__source:{fileName:_jsxFileName,lineNumber:82,columnNumber:46}})));expect(rendered).toMatchSnapshot();});});});});});test('isSvgImage',function(){var ut=function ut(source,expected){return expect((0,_Image.isSvgImage)(source)).toEqual(expected);};ut({uri:'./x.svg'},true);ut({uri:'./x.png'},false);ut({uri:'https://jssapp/-/media/myfile.svg&w=180'},true);ut({uri:'https://jssapp/-/media/myfile.svg?w=180'},true);ut({uri:'https://jssapp/-/media/myfile.png?w=180'},false);});});
|
package/dist/components/Link.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Link=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeHtmlview=_interopRequireDefault(require("react-native-htmlview"));var _reactNative=require("react-native");var _jsxFileName="
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Link=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNativeHtmlview=_interopRequireDefault(require("react-native-htmlview"));var _reactNative=require("react-native");var _jsxFileName="/home/vsts/work/1/s/packages/sitecore-jss-react-native/src/components/Link.tsx";var _excluded=["field","editable","children","showLinkTextWithChildrenPresent","style","textStyle"];var Link=exports.Link=function Link(_ref){var field=_ref.field,editable=_ref.editable,children=_ref.children,showLinkTextWithChildrenPresent=_ref.showLinkTextWithChildrenPresent,style=_ref.style,textStyle=_ref.textStyle,otherProps=(0,_objectWithoutProperties2["default"])(_ref,_excluded);var dynamicField=field;if(!field||!dynamicField.editableFirstPart&&!dynamicField.value&&!dynamicField.href){return null;}var resultTags=[];var _ref2=dynamicField,editableFirstPart=_ref2.editableFirstPart,editableLastPart=_ref2.editableLastPart;if(editable&&editableFirstPart){var markup=editableFirstPart+editableLastPart;resultTags.push(_react["default"].createElement(_reactNativeHtmlview["default"],{value:markup,__source:{fileName:_jsxFileName,lineNumber:71,columnNumber:21}}));if(!children){return resultTags[0];}}var link=dynamicField.href?field:dynamicField.value;if(!link){return null;}var linkText=showLinkTextWithChildrenPresent||!children?link.text||link.href:null;resultTags.push(_react["default"].createElement(_reactNative.TouchableWithoutFeedback,(0,_extends2["default"])({onPress:function onPress(){return link.href&&_reactNative.Linking.openURL(link.href);},key:"link"},otherProps,{__source:{fileName:_jsxFileName,lineNumber:92,columnNumber:5}}),_react["default"].createElement(_reactNative.View,{style:style,__source:{fileName:_jsxFileName,lineNumber:97,columnNumber:7}},linkText&&_react["default"].createElement(_reactNative.Text,{style:textStyle,__source:{fileName:_jsxFileName,lineNumber:98,columnNumber:22}},linkText),children)));return _react["default"].createElement(_reactNative.View,{__source:{fileName:_jsxFileName,lineNumber:104,columnNumber:10}},resultTags);};Link.propTypes={field:_propTypes["default"].oneOfType([_propTypes["default"].shape({href:_propTypes["default"].string}),_propTypes["default"].shape({value:_propTypes["default"].object,editableFirstPart:_propTypes["default"].string,editableLastPart:_propTypes["default"].string})]).isRequired,editable:_propTypes["default"].bool};Link.defaultProps={editable:true};Link.displayName='Link';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.MissingComponent=void 0;var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNative=require("react-native");var _jsxFileName="
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.MissingComponent=void 0;var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNative=require("react-native");var _jsxFileName="/home/vsts/work/1/s/packages/sitecore-jss-react-native/src/components/MissingComponent.tsx";var styles=_reactNative.StyleSheet.create({container:{backgroundColor:'darkorange',padding:10,flex:1},title:{fontSize:22,fontWeight:'bold',marginVertical:20,color:'white'},text:{color:'white',marginVertical:20}});var MissingComponent=exports.MissingComponent=function MissingComponent(props){var componentName=props.rendering&&props.rendering.componentName?props.rendering.componentName:'Unnamed Component';return _react["default"].createElement(_reactNative.View,{style:styles.container,__source:{fileName:_jsxFileName,lineNumber:36,columnNumber:5}},_react["default"].createElement(_reactNative.Text,{style:styles.title,__source:{fileName:_jsxFileName,lineNumber:37,columnNumber:7}},componentName),_react["default"].createElement(_reactNative.Text,{style:styles.text,__source:{fileName:_jsxFileName,lineNumber:38,columnNumber:7}},"JSS component is missing React Native implementation."));};MissingComponent.propTypes={rendering:_propTypes["default"].shape({componentName:_propTypes["default"].string})};MissingComponent.displayName='MissingComponent';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireDefault(require("react"));var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _MissingComponent=require("./MissingComponent");var _jsxFileName="
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireDefault(require("react"));var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _MissingComponent=require("./MissingComponent");var _jsxFileName="/home/vsts/work/1/s/packages/sitecore-jss-react-native/src/components/MissingComponent.test.tsx";describe('<MissingComponent />',function(){test('should render without component name',function(){var p={rendering:{}};var c=_reactTestRenderer["default"].create(_react["default"].createElement(_MissingComponent.MissingComponent,(0,_extends2["default"])({},p,{__source:{fileName:_jsxFileName,lineNumber:11,columnNumber:31}})));expect(c).toMatchSnapshot();});test('should render with component name',function(){var p={rendering:{componentName:'TestComponent'}};var c=_reactTestRenderer["default"].create(_react["default"].createElement(_MissingComponent.MissingComponent,(0,_extends2["default"])({},p,{__source:{fileName:_jsxFileName,lineNumber:23,columnNumber:31}})));expect(c).toMatchSnapshot();});});
|
|
@@ -18,4 +18,4 @@ export interface PlaceholderComponentProps extends PlaceholderProps {
|
|
|
18
18
|
*/
|
|
19
19
|
renderEach?: (component: React.ReactNode, index: number) => React.ComponentClass<unknown> | React.SFC<unknown> | React.ReactNode;
|
|
20
20
|
}
|
|
21
|
-
export declare const Placeholder: (props:
|
|
21
|
+
export declare const Placeholder: (props: PlaceholderProps) => React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Placeholder=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Placeholder=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _withComponentFactory=require("../enhancers/withComponentFactory");var _PlaceholderCommon2=require("./PlaceholderCommon");var _jsxFileName="/home/vsts/work/1/s/packages/sitecore-jss-react-native/src/components/Placeholder.tsx";function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable;})),t.push.apply(t,o);}return t;}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){(0,_defineProperty2["default"])(e,r,t[r]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));});}return e;}function _callSuper(t,o,e){return o=(0,_getPrototypeOf2["default"])(o),(0,_possibleConstructorReturn2["default"])(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],(0,_getPrototypeOf2["default"])(t).constructor):o.apply(t,e));}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}function isRawRendering(rendering){return!rendering.componentName&&rendering.name!==undefined;}var PlaceholderComponent=function(_PlaceholderCommon){function PlaceholderComponent(props){(0,_classCallCheck2["default"])(this,PlaceholderComponent);return _callSuper(this,PlaceholderComponent,[props]);}(0,_inherits2["default"])(PlaceholderComponent,_PlaceholderCommon);return(0,_createClass2["default"])(PlaceholderComponent,[{key:"render",value:function render(){var props=this.props;var childProps=_objectSpread({},this.props);delete childProps.componentFactory;delete childProps.render;delete childProps.renderEach;if(this.state.error){return _react["default"].createElement(_reactNative.View,{__source:{fileName:_jsxFileName,lineNumber:66,columnNumber:14}},"A rendering error occurred: ",this.state.error.message,".");}var renderingData=childProps.rendering;var placeholderData=_PlaceholderCommon2.PlaceholderCommon.getPlaceholderDataFromRenderingData(renderingData,props.name);var components=this.getComponentsForRenderingData(placeholderData);if(props.renderEmpty&&placeholderData.every(function(rendering){return isRawRendering(rendering);})){return components&&props.renderEmpty(components,placeholderData,childProps);}else if(props.render){return components&&props.render(components,placeholderData,childProps);}else if(props.renderEach){return components&&components.map(function(component,index){if(component&&component.props&&component.props.type==='text/sitecore'){return component;}return props.renderEach&&props.renderEach(component,index);});}else{return components;}}}]);}(_PlaceholderCommon2.PlaceholderCommon);(0,_defineProperty2["default"])(PlaceholderComponent,"propTypes",_PlaceholderCommon2.PlaceholderCommon.propTypes);var Placeholder=exports.Placeholder=(0,_withComponentFactory.withComponentFactory)(PlaceholderComponent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _reactNative=require("react-native");var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _Placeholder=require("./Placeholder");var _SitecoreContext=require("./SitecoreContext");var _devData=require("../../test-data/dev-data");var _LSDataEEOff=require("../../test-data/LS-data-EE-off");var _jsxFileName="
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _reactNative=require("react-native");var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _Placeholder=require("./Placeholder");var _SitecoreContext=require("./SitecoreContext");var _devData=require("../../test-data/dev-data");var _LSDataEEOff=require("../../test-data/LS-data-EE-off");var _jsxFileName="/home/vsts/work/1/s/packages/sitecore-jss-react-native/src/components/Placeholder.test.tsx";var _excluded=["rendering"];var componentFactory=function componentFactory(componentName){var components=new Map();var Home=function Home(_ref){var rendering=_ref.rendering,otherProps=(0,_objectWithoutProperties2["default"])(_ref,_excluded);return _react["default"].createElement(_reactNative.View,{testID:"home-mock",__source:{fileName:_jsxFileName,lineNumber:17,columnNumber:5}},_react["default"].createElement(_Placeholder.Placeholder,{name:"page-header",rendering:rendering,__source:{fileName:_jsxFileName,lineNumber:18,columnNumber:7}}),_react["default"].createElement(_Placeholder.Placeholder,(0,_extends2["default"])({name:"page-content",rendering:rendering},otherProps,{__source:{fileName:_jsxFileName,lineNumber:19,columnNumber:7}})));};Home.propTypes={placeholders:_propTypes["default"].object,rendering:_propTypes["default"].any};components.set('Home',Home);var DownloadCallout=function DownloadCallout(props){return _react["default"].createElement(_reactNative.View,{testID:"download-callout-mock",__source:{fileName:_jsxFileName,lineNumber:38,columnNumber:5}},props.fields.message?props.fields.message.value:null);};DownloadCallout.propTypes={fields:_propTypes["default"].any};components.set('DownloadCallout',DownloadCallout);components.set('Jumbotron',function(){return _react["default"].createElement(_reactNative.View,{testID:"jumbotron-mock",__source:{fileName:_jsxFileName,lineNumber:47,columnNumber:37}});});return components.get(componentName);};describe('<Placeholder />',function(){var testData=[{label:'Dev data',data:_devData.devData},{label:'LayoutService data - EE off',data:_LSDataEEOff.lsDataEeOff}];testData.forEach(function(dataSet){describe("with ".concat(dataSet.label),function(){test('should render a placeholder with given key',function(){var phData=dataSet.data.sitecore.route.placeholders.main;var component=phData.find(function(c){return c.componentName;});var phKey='page-content';var renderedComponent=_reactTestRenderer["default"].create(_react["default"].createElement(_Placeholder.Placeholder,{name:phKey,rendering:component,componentFactory:componentFactory,__source:{fileName:_jsxFileName,lineNumber:70,columnNumber:13}})).toJSON();expect(renderedComponent).toMatchSnapshot();});test('should render nested placeholders and props correctly',function(){var component=dataSet.data.sitecore.route;var phKey='main';var renderedComponent=_reactTestRenderer["default"].create(_react["default"].createElement(_SitecoreContext.SitecoreContext,{componentFactory:componentFactory,__source:{fileName:_jsxFileName,lineNumber:88,columnNumber:13}},_react["default"].createElement(_Placeholder.Placeholder,{name:phKey,rendering:component,__source:{fileName:_jsxFileName,lineNumber:89,columnNumber:15}}))).toJSON();expect(renderedComponent).toMatchSnapshot();});});});it('should render missing component for unresolved/unknown components',function(){var errorSpy=jest.spyOn(console,'error');errorSpy.mockImplementation(function(){});var Home=function Home(){return _react["default"].createElement(_reactNative.View,{testID:"home-mock",__source:{fileName:_jsxFileName,lineNumber:104,columnNumber:24}});};var factory=function factory(componentName){return componentName==='Home'?Home:null;};var route={placeholders:{main:[{componentName:'Home'},{componentName:'whatisthis'}]}};var phKey='main';var renderedComponent=_reactTestRenderer["default"].create(_react["default"].createElement(_Placeholder.Placeholder,{name:phKey,rendering:route,componentFactory:factory,__source:{fileName:_jsxFileName,lineNumber:124,columnNumber:9}})).toJSON();expect(renderedComponent).toMatchSnapshot();errorSpy.mockRestore();});it('should render null for unknown placeholder',function(){var warnSpy=jest.spyOn(console,'warn');warnSpy.mockImplementation(function(){});var route={name:'',placeholders:{main:[{componentName:'Home'}]}};var phKey='unknown';var renderedComponent=_reactTestRenderer["default"].create(_react["default"].createElement(_Placeholder.Placeholder,{name:phKey,rendering:route,componentFactory:componentFactory,__source:{fileName:_jsxFileName,lineNumber:154,columnNumber:15}})).toJSON();expect(renderedComponent).toMatchSnapshot();expect(warnSpy).toHaveBeenCalledTimes(1);warnSpy.mockRestore();});});
|
|
@@ -59,12 +59,12 @@ export declare class PlaceholderCommon extends React.Component<PlaceholderProps>
|
|
|
59
59
|
error?: Error;
|
|
60
60
|
}>;
|
|
61
61
|
constructor(props: PlaceholderProps);
|
|
62
|
-
static getPlaceholderDataFromRenderingData(rendering: ComponentRendering | RouteData, name: string): (ComponentRendering | HtmlElementRendering)[];
|
|
62
|
+
static getPlaceholderDataFromRenderingData(rendering: ComponentRendering | RouteData, name: string): (ComponentRendering<import("@sitecore-jss/sitecore-jss/layout").ComponentFields> | HtmlElementRendering)[];
|
|
63
63
|
componentDidCatch(error: Error): void;
|
|
64
64
|
getComponentsForRenderingData(placeholderData: (ComponentRendering | HtmlElementRendering)[] | null): React.ReactElement<{
|
|
65
65
|
[attr: string]: unknown;
|
|
66
66
|
}, string | React.JSXElementConstructor<any>>[];
|
|
67
67
|
getComponentForRendering(renderingDefinition: {
|
|
68
68
|
componentName: string;
|
|
69
|
-
}): React.ComponentType
|
|
69
|
+
}): React.ComponentType;
|
|
70
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.PlaceholderCommon=void 0;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.PlaceholderCommon=void 0;var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _MissingComponent=require("./MissingComponent");var _UnrenderableComponent=require("./UnrenderableComponent");var _excluded=["name","fields","params","unrenderableComponentComponent","missingComponentComponent"];function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable;})),t.push.apply(t,o);}return t;}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){(0,_defineProperty2["default"])(e,r,t[r]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));});}return e;}function _callSuper(t,o,e){return o=(0,_getPrototypeOf2["default"])(o),(0,_possibleConstructorReturn2["default"])(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],(0,_getPrototypeOf2["default"])(t).constructor):o.apply(t,e));}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}var PlaceholderCommon=exports.PlaceholderCommon=function(_React$Component){function PlaceholderCommon(props){var _this;(0,_classCallCheck2["default"])(this,PlaceholderCommon);_this=_callSuper(this,PlaceholderCommon,[props]);(0,_defineProperty2["default"])(_this,"nodeRefs",void 0);(0,_defineProperty2["default"])(_this,"state",void 0);_this.nodeRefs=[];_this.state={};return _this;}(0,_inherits2["default"])(PlaceholderCommon,_React$Component);return(0,_createClass2["default"])(PlaceholderCommon,[{key:"componentDidCatch",value:function componentDidCatch(error){this.setState({error:error});}},{key:"getComponentsForRenderingData",value:function getComponentsForRenderingData(placeholderData){var _this2=this;var _this$props=this.props,name=_this$props.name,placeholderFields=_this$props.fields,placeholderParams=_this$props.params,unrenderableComponentComponent=_this$props.unrenderableComponentComponent,missingComponentComponent=_this$props.missingComponentComponent,placeholderProps=(0,_objectWithoutProperties2["default"])(_this$props,_excluded);return placeholderData&&placeholderData.map(function(rendering,index){var componentRendering=rendering;var htmlElementRendering=rendering;var key=componentRendering.uid?componentRendering.uid:"component-".concat(index);var commonProps={key:key};var component;if(!componentRendering.componentName&&htmlElementRendering.name){console.error("Placeholder ".concat(name," contains a rendering that cannot be rendered in React Native '").concat(htmlElementRendering.name,"'. This is likely the result of including Experience Editor output in rendering data\n or using non-JSON renderings in an item's presentation details / layout. React Native\n is not able to render DOM elements, your Sitecore renderings must map to React components\n defined in your componentFactory.js."));component=unrenderableComponentComponent||_UnrenderableComponent.UnrenderableComponent;}if(!component){component=_this2.getComponentForRendering(componentRendering);if(!component){console.error("Placeholder ".concat(name," contains unknown component ").concat(componentRendering.componentName,". Ensure that a React component exists for it, and that it is registered in your componentFactory.js."));component=missingComponentComponent||_MissingComponent.MissingComponent;}}var finalProps=_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({},commonProps),placeholderProps),(placeholderFields||componentRendering.fields)&&{fields:_objectSpread(_objectSpread({},placeholderFields),componentRendering.fields)}),(placeholderParams||componentRendering.params)&&{params:_objectSpread(_objectSpread({},placeholderParams),componentRendering.params)}),{},{rendering:rendering});return _react["default"].createElement(component,finalProps);}).filter(function(element){return element;});}},{key:"getComponentForRendering",value:function getComponentForRendering(renderingDefinition){var componentFactory=this.props.componentFactory;if(!componentFactory||typeof componentFactory!=='function'){console.warn("No componentFactory was available to service request for component ".concat(renderingDefinition));return null;}return componentFactory(renderingDefinition.componentName);}}],[{key:"getPlaceholderDataFromRenderingData",value:function getPlaceholderDataFromRenderingData(rendering,name){var result;if(rendering&&rendering.placeholders&&Object.keys(rendering.placeholders).length>0){result=rendering.placeholders[name];}else{result=null;}if(!result){console.warn("Placeholder '".concat(name,"' was not found in the current rendering data"),JSON.stringify(rendering,null,2));return[];}return result;}}]);}(_react["default"].Component);(0,_defineProperty2["default"])(PlaceholderCommon,"propTypes",{name:_propTypes["default"].string.isRequired,componentFactory:_propTypes["default"].func,rendering:_propTypes["default"].any.isRequired,fields:_propTypes["default"].any,params:_propTypes["default"].any,missingComponentComponent:_propTypes["default"].any,errorComponent:_propTypes["default"].any,unrenderableComponentComponent:_propTypes["default"].any});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.RichText=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _reactNativeHtmlview=_interopRequireDefault(require("react-native-htmlview"));var _propTypes=_interopRequireDefault(require("prop-types"));var _jsxFileName="
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.RichText=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _reactNativeHtmlview=_interopRequireDefault(require("react-native-htmlview"));var _propTypes=_interopRequireDefault(require("prop-types"));var _jsxFileName="/home/vsts/work/1/s/packages/sitecore-jss-react-native/src/components/RichText.tsx";var _excluded=["field"];var RichText=exports.RichText=function RichText(_ref){var field=_ref.field,otherProps=(0,_objectWithoutProperties2["default"])(_ref,_excluded);if(!field||!field.editable&&!field.value){return null;}var htmlValue=field.editable?field.editable:field.value;return _react["default"].createElement(_reactNativeHtmlview["default"],(0,_extends2["default"])({value:htmlValue},otherProps,{__source:{fileName:_jsxFileName,lineNumber:21,columnNumber:10}}));};RichText.propTypes={field:_propTypes["default"].shape({value:_propTypes["default"].string,editable:_propTypes["default"].string})};RichText.displayName='RichText';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireDefault(require("react"));var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _reactNative=require("react-native");var _RichText=require("./RichText");var _jsxFileName="
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireDefault(require("react"));var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _reactNative=require("react-native");var _RichText=require("./RichText");var _jsxFileName="/home/vsts/work/1/s/packages/sitecore-jss-react-native/src/components/RichText.test.tsx";describe('<RichText />',function(){test('should render nothing with missing field',function(){var field=null;var rendered=_reactTestRenderer["default"].create(_react["default"].createElement(_RichText.RichText,{field:field,__source:{fileName:_jsxFileName,lineNumber:9,columnNumber:38}}));expect(rendered).toMatchSnapshot();});test('should render nothing with missing editable and value',function(){var props={field:{}};var rendered=_reactTestRenderer["default"].create(_react["default"].createElement(_RichText.RichText,(0,_extends2["default"])({},props,{__source:{fileName:_jsxFileName,lineNumber:17,columnNumber:38}})));expect(rendered).toMatchSnapshot();});test('should render editable value if present',function(){var props={field:{value:'this value should not be rendered',editable:'<p>this value should be rendered ©</p>'}};var rendered=_reactTestRenderer["default"].create(_react["default"].createElement(_RichText.RichText,(0,_extends2["default"])({},props,{__source:{fileName:_jsxFileName,lineNumber:28,columnNumber:38}})));expect(rendered).toMatchSnapshot();});test('should render value if editable is undefined',function(){var props={field:{value:'this value should be rendered',editable:''}};var rendered=_reactTestRenderer["default"].create(_react["default"].createElement(_RichText.RichText,(0,_extends2["default"])({},props,{__source:{fileName:_jsxFileName,lineNumber:40,columnNumber:38}})));expect(rendered).toMatchSnapshot();});it('should render other attributes with other props provided',function(){var field={editable:'value with <p>markup</p>'};var rawTextStyles=_reactNative.StyleSheet.create({style:{fontSize:22}});var markupStyles=_reactNative.StyleSheet.create({p:{fontSize:16,marginBottom:10}});var rendered=_reactTestRenderer["default"].create(_react["default"].createElement(_RichText.RichText,{field:field,style:{flex:1},stylesheet:markupStyles,textComponentProps:rawTextStyles,__source:{fileName:_jsxFileName,lineNumber:66,columnNumber:7}}));expect(rendered).toMatchSnapshot();});});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.SitecoreContext=exports.ComponentFactoryReactContext=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.SitecoreContext=exports.ComponentFactoryReactContext=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _jsxFileName="/home/vsts/work/1/s/packages/sitecore-jss-react-native/src/components/SitecoreContext.tsx";function _callSuper(t,o,e){return o=(0,_getPrototypeOf2["default"])(o),(0,_possibleConstructorReturn2["default"])(t,_isNativeReflectConstruct()?Reflect.construct(o,e||[],(0,_getPrototypeOf2["default"])(t).constructor):o.apply(t,e));}function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));}catch(t){}return(_isNativeReflectConstruct=function _isNativeReflectConstruct(){return!!t;})();}var ComponentFactoryReactContext=exports.ComponentFactoryReactContext=_react["default"].createContext({});var SitecoreContext=exports.SitecoreContext=function(_React$Component){function SitecoreContext(props,context){var _this;(0,_classCallCheck2["default"])(this,SitecoreContext);_this=_callSuper(this,SitecoreContext,[props,context]);(0,_defineProperty2["default"])(_this,"componentFactory",void 0);_this.componentFactory=props.componentFactory;return _this;}(0,_inherits2["default"])(SitecoreContext,_React$Component);return(0,_createClass2["default"])(SitecoreContext,[{key:"render",value:function render(){return _react["default"].createElement(ComponentFactoryReactContext.Provider,{value:this.componentFactory,__source:{fileName:_jsxFileName,lineNumber:31,columnNumber:7}},this.props.children);}}]);}(_react["default"].Component);(0,_defineProperty2["default"])(SitecoreContext,"propTypes",{children:_propTypes["default"].any.isRequired,componentFactory:_propTypes["default"].func});(0,_defineProperty2["default"])(SitecoreContext,"displayName",'SitecoreContext');
|
package/dist/components/Text.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Text=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNative=require("react-native");var _jsxFileName="
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Text=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNative=require("react-native");var _jsxFileName="/home/vsts/work/1/s/packages/sitecore-jss-react-native/src/components/Text.tsx";var _excluded=["field"];var Text=exports.Text=function Text(_ref){var field=_ref.field,otherProps=(0,_objectWithoutProperties2["default"])(_ref,_excluded);if(!field||!field.editable&&(field.value===undefined||field.value==='')){return null;}var textValue=field.editable?field.editable:field.value;return _react["default"].createElement(_reactNative.Text,(0,_extends2["default"])({},otherProps,{__source:{fileName:_jsxFileName,lineNumber:21,columnNumber:10}}),textValue);};Text.propTypes={field:_propTypes["default"].shape({value:_propTypes["default"].any,editable:_propTypes["default"].string})};Text.displayName='Text';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireDefault(require("react"));var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _Text=require("./Text");var _jsxFileName="
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireDefault(require("react"));var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _Text=require("./Text");var _jsxFileName="/home/vsts/work/1/s/packages/sitecore-jss-react-native/src/components/Text.test.tsx";describe('<Text />',function(){test('should render nothing with missing field',function(){var field=null;var rendered=_reactTestRenderer["default"].create(_react["default"].createElement(_Text.Text,{field:field,__source:{fileName:_jsxFileName,lineNumber:8,columnNumber:38}}));expect(rendered).toMatchSnapshot();});test('should render nothing with missing editable and value',function(){var props={field:{}};var rendered=_reactTestRenderer["default"].create(_react["default"].createElement(_Text.Text,(0,_extends2["default"])({},props,{__source:{fileName:_jsxFileName,lineNumber:16,columnNumber:38}})));expect(rendered).toMatchSnapshot();});it('should render nothing with empty value',function(){var props={field:{value:''}};var rendered=_reactTestRenderer["default"].create(_react["default"].createElement(_Text.Text,(0,_extends2["default"])({},props,{__source:{fileName:_jsxFileName,lineNumber:26,columnNumber:38}})));expect(rendered).toMatchSnapshot();});test('should render editable value if present',function(){var props={field:{value:'this value should not be rendered',editable:'this value should be rendered'}};var rendered=_reactTestRenderer["default"].create(_react["default"].createElement(_Text.Text,(0,_extends2["default"])({},props,{__source:{fileName:_jsxFileName,lineNumber:37,columnNumber:38}})));expect(rendered).toMatchSnapshot();});test('should render number value',function(){var props={field:{value:1.23}};var rendered=_reactTestRenderer["default"].create(_react["default"].createElement(_Text.Text,(0,_extends2["default"])({},props,{__source:{fileName:_jsxFileName,lineNumber:48,columnNumber:38}})));expect(rendered).toMatchSnapshot();});test('should render zero number value',function(){var props={field:{value:0}};var rendered=_reactTestRenderer["default"].create(_react["default"].createElement(_Text.Text,(0,_extends2["default"])({},props,{__source:{fileName:_jsxFileName,lineNumber:59,columnNumber:38}})));expect(rendered).toMatchSnapshot();});test('should render value if editable is undefined',function(){var props={field:{value:'this value should be rendered',editable:''}};var rendered=_reactTestRenderer["default"].create(_react["default"].createElement(_Text.Text,(0,_extends2["default"])({},props,{__source:{fileName:_jsxFileName,lineNumber:71,columnNumber:38}})));expect(rendered).toMatchSnapshot();});it('should render other attributes with other props provided',function(){var field={editable:'this value should be rendered'};var rendered=_reactTestRenderer["default"].create(_react["default"].createElement(_Text.Text,{field:field,style:{flex:1},selectable:true,__source:{fileName:_jsxFileName,lineNumber:81,columnNumber:38}}));expect(rendered).toMatchSnapshot();});});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.UnrenderableComponent=void 0;var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNative=require("react-native");var _jsxFileName="
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.UnrenderableComponent=void 0;var _react=_interopRequireDefault(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _reactNative=require("react-native");var _jsxFileName="/home/vsts/work/1/s/packages/sitecore-jss-react-native/src/components/UnrenderableComponent.tsx";var styles=_reactNative.StyleSheet.create({container:{backgroundColor:'firebrick',padding:10,flex:1},title:{fontSize:22,fontWeight:'bold',marginVertical:20,color:'white'},text:{color:'white',marginVertical:20}});var UnrenderableComponent=exports.UnrenderableComponent=function UnrenderableComponent(props){var componentName=props.rendering&&props.rendering.name?props.rendering.name:'Unnamed Component';return _react["default"].createElement(_reactNative.View,{style:styles.container,__source:{fileName:_jsxFileName,lineNumber:35,columnNumber:5}},_react["default"].createElement(_reactNative.Text,{style:styles.title,__source:{fileName:_jsxFileName,lineNumber:36,columnNumber:7}},componentName),_react["default"].createElement(_reactNative.Text,{style:styles.text,__source:{fileName:_jsxFileName,lineNumber:37,columnNumber:7}},"Component can't be rendered in React Native."));};UnrenderableComponent.propTypes={rendering:_propTypes["default"].shape({componentName:_propTypes["default"].string})};UnrenderableComponent.displayName='UnrenderableComponent';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ComponentType } from 'react';
|
|
2
|
-
export
|
|
2
|
+
export type ComponentFactory = (componentName: string) => ComponentType | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.withComponentFactory=withComponentFactory;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireDefault(require("react"));var _SitecoreContext=require("../components/SitecoreContext");var _jsxFileName="
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.withComponentFactory=withComponentFactory;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react=_interopRequireDefault(require("react"));var _SitecoreContext=require("../components/SitecoreContext");var _jsxFileName="/home/vsts/work/1/s/packages/sitecore-jss-react-native/src/enhancers/withComponentFactory.tsx";function withComponentFactory(Component){return function WithComponentFactory(props){return _react["default"].createElement(_SitecoreContext.ComponentFactoryReactContext.Consumer,{__source:{fileName:_jsxFileName,lineNumber:17,columnNumber:7}},function(context){return _react["default"].createElement(Component,(0,_extends2["default"])({},props,{componentFactory:props.componentFactory||context,__source:{fileName:_jsxFileName,lineNumber:18,columnNumber:23}}));});};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _withComponentFactory=require("./withComponentFactory");var _SitecoreContext=require("../components/SitecoreContext");var _jsxFileName="
|
|
1
|
+
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _reactTestRenderer=_interopRequireDefault(require("react-test-renderer"));var _withComponentFactory=require("./withComponentFactory");var _SitecoreContext=require("../components/SitecoreContext");var _jsxFileName="/home/vsts/work/1/s/packages/sitecore-jss-react-native/src/enhancers/withComponentFactory.test.tsx";describe('withComponentFactory()',function(){test('should pass factory to wrapped component from context',function(){var components=new Map();components.set('xxx',function(){return _react["default"].createElement(_reactNative.Text,{__source:{fileName:_jsxFileName,lineNumber:12,columnNumber:33}},"I'm component from factory");});var componentFactory=function componentFactory(componentName){return components.get(componentName);};var TestComponent=function TestComponent(props){if(!props.componentFactory)return null;var ComponentFromFactory=props.componentFactory('xxx');return _react["default"].createElement(_reactNative.View,{__source:{fileName:_jsxFileName,lineNumber:27,columnNumber:9}},_react["default"].createElement(_reactNative.Text,{__source:{fileName:_jsxFileName,lineNumber:28,columnNumber:11}},"Hello world..."),_react["default"].createElement(_reactNative.Text,{__source:{fileName:_jsxFileName,lineNumber:29,columnNumber:11}},"Custom property:",props.customProperty),_react["default"].createElement(ComponentFromFactory,{__source:{fileName:_jsxFileName,lineNumber:30,columnNumber:11}}));};var TestComponentWithFactory=(0,_withComponentFactory.withComponentFactory)(TestComponent);var c=_reactTestRenderer["default"].create(_react["default"].createElement(_SitecoreContext.ComponentFactoryReactContext.Provider,{value:componentFactory,__source:{fileName:_jsxFileName,lineNumber:38,columnNumber:7}},_react["default"].createElement(TestComponentWithFactory,{customProperty:"yyy",__source:{fileName:_jsxFileName,lineNumber:39,columnNumber:9}})));expect(c).toMatchSnapshot();});test('should pass factory to wrapped component from props',function(){var propsFactoryComponents=new Map();var contextFactoryComponents=new Map();contextFactoryComponents.set('xxx',function(){return _react["default"].createElement(_reactNative.Text,{__source:{fileName:_jsxFileName,lineNumber:55,columnNumber:47}},"I'm component from context factory");});propsFactoryComponents.set('xxx',function(){return _react["default"].createElement(_reactNative.Text,{__source:{fileName:_jsxFileName,lineNumber:57,columnNumber:45}},"I'm component from props factory");});var propsComponentFactory=function propsComponentFactory(componentName){return propsFactoryComponents.get(componentName);};var contextComponentFactory=function contextComponentFactory(componentName){return contextFactoryComponents.get(componentName);};var TestComponent=function TestComponent(props){if(!props.componentFactory)return null;var ComponentFromFactory=props.componentFactory('xxx');return _react["default"].createElement(_reactNative.View,{__source:{fileName:_jsxFileName,lineNumber:70,columnNumber:9}},_react["default"].createElement(_reactNative.Text,{__source:{fileName:_jsxFileName,lineNumber:71,columnNumber:11}},"Hello world..."),_react["default"].createElement(_reactNative.Text,{__source:{fileName:_jsxFileName,lineNumber:72,columnNumber:11}},"Custom property:",props.customProperty),_react["default"].createElement(ComponentFromFactory,{__source:{fileName:_jsxFileName,lineNumber:73,columnNumber:11}}));};var TestComponentWithFactory=(0,_withComponentFactory.withComponentFactory)(TestComponent);var c=_reactTestRenderer["default"].create(_react["default"].createElement(_SitecoreContext.ComponentFactoryReactContext.Provider,{value:contextComponentFactory,__source:{fileName:_jsxFileName,lineNumber:81,columnNumber:7}},_react["default"].createElement(TestComponentWithFactory,{componentFactory:propsComponentFactory,customProperty:"yyy",__source:{fileName:_jsxFileName,lineNumber:82,columnNumber:9}})));expect(c).toMatchSnapshot();});});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sitecore-jss/sitecore-jss-react-native",
|
|
3
|
-
"version": "22.3.
|
|
3
|
+
"version": "22.3.1-canary.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
"test": "jest",
|
|
13
13
|
"prepublishOnly": "npm test && npm run build",
|
|
14
14
|
"coverage": "jest --config ./jest.config.coverage.js",
|
|
15
|
-
"generate-docs": "npx typedoc --plugin typedoc-plugin-markdown --readme none --out ../../ref-docs/sitecore-jss-react-native src/index.ts --githubPages false"
|
|
15
|
+
"generate-docs": "npx typedoc --plugin typedoc-plugin-markdown --outputFileStrategy Members --parametersFormat table --readme none --out ../../ref-docs/sitecore-jss-react-native src/index.ts --githubPages false"
|
|
16
16
|
},
|
|
17
17
|
"engines": {
|
|
18
|
-
"node": ">=
|
|
18
|
+
"node": ">=22"
|
|
19
19
|
},
|
|
20
20
|
"author": {
|
|
21
21
|
"name": "Sitecore Corporation",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"url": "https://github.com/sitecore/jss/issues"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@sitecore-jss/sitecore-jss": "22.3.
|
|
30
|
+
"@sitecore-jss/sitecore-jss": "^22.3.1-canary.2",
|
|
31
31
|
"prop-types": "^15.7.2",
|
|
32
32
|
"react-native-htmlview": "^0.15.0",
|
|
33
33
|
"react-native-svg": "^5.3.0",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"babel-jest": "^27.0.6",
|
|
55
55
|
"babel-preset-env": "^1.7.0",
|
|
56
56
|
"del-cli": "^5.0.0",
|
|
57
|
-
"eslint": "^
|
|
57
|
+
"eslint": "^8.15.0",
|
|
58
58
|
"eslint-plugin-react-native": "^3.10.0",
|
|
59
59
|
"jest": "^24.9.0",
|
|
60
60
|
"metro-react-native-babel-preset": "^0.56.0",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"react-native": "^0.63.4",
|
|
63
63
|
"react-test-renderer": "^16.9.0",
|
|
64
64
|
"ts-jest": "~26.0.0",
|
|
65
|
-
"typescript": "~
|
|
65
|
+
"typescript": "~5.6.3"
|
|
66
66
|
},
|
|
67
67
|
"overrides": {
|
|
68
68
|
"@types/react-native": {
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
}
|
|
74
74
|
},
|
|
75
75
|
"types": "./types/index.d.ts",
|
|
76
|
-
"gitHead": "
|
|
76
|
+
"gitHead": "5b35bbbe22b6ea21a1829950e371d54422ebf8fd",
|
|
77
77
|
"files": [
|
|
78
78
|
"dist"
|
|
79
79
|
]
|