@times-components/section
Version:
1 lines • 7.71 kB
JavaScript
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _assertThisInitialized2=_interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _propTypes=_interopRequireDefault(require("prop-types"));var _responsive=_interopRequireWildcard(require("@times-components/responsive"));var _tracking=require("@times-components/tracking");var _sectionItemSeparator=_interopRequireDefault(require("./section-item-separator"));var _sectionTrackingContext=_interopRequireDefault(require("./section-tracking-context"));var _puzzleBar=_interopRequireDefault(require("./puzzle-bar"));var _slice=_interopRequireDefault(require("./slice"));var _styles=_interopRequireDefault(require("./styles"));var _utils=require("./utils");var _jsxFileName="/home/circleci/project/packages/section/src/section.js";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=(0,_getPrototypeOf2.default)(Derived),result;if(hasNativeReflectConstruct){var NewTarget=(0,_getPrototypeOf2.default)(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return(0,_possibleConstructorReturn2.default)(this,result);};}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true;}catch(e){return false;}}var styles=(0,_styles.default)();var Section=function(_Component){(0,_inherits2.default)(Section,_Component);var _super=_createSuper(Section);function Section(props){var _this;(0,_classCallCheck2.default)(this,Section);_this=_super.call(this,props);_this.renderItem=_this.renderItem.bind((0,_assertThisInitialized2.default)(_this));_this.renderItemSeperator=_this.renderItemSeperator.bind((0,_assertThisInitialized2.default)(_this));_this.onViewableItemsChanged=_this.onViewableItemsChanged.bind((0,_assertThisInitialized2.default)(_this));return _this;}(0,_createClass2.default)(Section,[{key:"onViewableItemsChanged",value:function onViewableItemsChanged(info){var _this$props=this.props,onViewed=_this$props.onViewed,slices=_this$props.section.slices;if(!info.changed.length)return[];return info.changed.filter(function(viewableItem){return viewableItem.isViewable;}).map(function(viewableItem){return onViewed(viewableItem.item,slices);});}},{key:"getHeaderComponent",value:function getHeaderComponent(isPuzzle){var onPuzzleBarPress=this.props.onPuzzleBarPress;if(isPuzzle){return _react.default.createElement(_puzzleBar.default,{onPress:onPuzzleBarPress,__source:{fileName:_jsxFileName,lineNumber:38,columnNumber:14}});}return null;}},{key:"renderItem",value:function renderItem(_ref){var index=_ref.index,slice=_ref.item;var _this$props2=this.props,onArticlePress=_this$props2.onArticlePress,onPuzzlePress=_this$props2.onPuzzlePress,_this$props2$section=_this$props2.section,name=_this$props2$section.name,slices=_this$props2$section.slices;var isPuzzle=name==="PuzzleSection";return _react.default.createElement(_slice.default,{index:index,length:slices.length,onPress:isPuzzle?onPuzzlePress:onArticlePress,slice:slice,__source:{fileName:_jsxFileName,lineNumber:53,columnNumber:7}});}},{key:"renderItemSeperator",value:function renderItemSeperator(_ref2,editionBreakpoint){var leadingItem=_ref2.leadingItem;var name=this.props.section.name;var isPuzzle=name==="PuzzleSection";var isIgnored=leadingItem.ignoreSeparator;if(isPuzzle||isIgnored){return null;}return _react.default.createElement(_reactNative.View,{style:styles.listItemSeparatorContainer,__source:{fileName:_jsxFileName,lineNumber:74,columnNumber:7}},_react.default.createElement(_sectionItemSeparator.default,{breakpoint:editionBreakpoint,__source:{fileName:_jsxFileName,lineNumber:75,columnNumber:9}}));}},{key:"render",value:function render(){var _this2=this;var _this$props3=this.props,_this$props3$section=_this$props3.section,name=_this$props3$section.name,slices=_this$props3$section.slices,onViewed=_this$props3.onViewed,receiveChildList=_this$props3.receiveChildList;var isPuzzle=name==="PuzzleSection";return _react.default.createElement(_responsive.default,{__source:{fileName:_jsxFileName,lineNumber:90,columnNumber:7}},_react.default.createElement(_responsive.ResponsiveContext.Consumer,{__source:{fileName:_jsxFileName,lineNumber:91,columnNumber:9}},function(_ref3){var isTablet=_ref3.isTablet,editionBreakpoint=_ref3.editionBreakpoint;var data=isPuzzle?(0,_utils.createPuzzleData)(slices,editionBreakpoint):(0,_utils.prepareSlicesForRender)(slices);if(slices)receiveChildList(data);return _react.default.createElement(_reactNative.FlatList,{contentContainerStyle:isTablet&&isPuzzle&&styles.additionalContainerPadding,removeClippedSubviews:true,data:data,initialNumToRender:isTablet?5:2,ItemSeparatorComponent:function ItemSeparatorComponent(leadingItem){return _this2.renderItemSeperator(leadingItem,editionBreakpoint);},keyExtractor:function keyExtractor(item){return item.elementId;},ListHeaderComponent:_this2.getHeaderComponent(isPuzzle),nestedScrollEnabled:true,onViewableItemsChanged:onViewed?_this2.onViewableItemsChanged:null,renderItem:_this2.renderItem,windowSize:3,__source:{fileName:_jsxFileName,lineNumber:100,columnNumber:15}});}));}}]);return Section;}(_react.Component);Section.propTypes={onArticlePress:_propTypes.default.func,onPuzzleBarPress:_propTypes.default.func,onPuzzlePress:_propTypes.default.func,onViewed:_propTypes.default.func,receiveChildList:_propTypes.default.func,section:_propTypes.default.shape({}).isRequired};Section.defaultProps={onArticlePress:function onArticlePress(){},onPuzzleBarPress:function onPuzzleBarPress(){},onPuzzlePress:function onPuzzlePress(){},onViewed:function onViewed(){},receiveChildList:function receiveChildList(){}};var _default=(0,_sectionTrackingContext.default)((0,_tracking.withTrackScrollDepth)(Section));exports.default=_default;