import PropTypes from 'prop-types'; import React, { Component } from 'react'; import OverlayScroller from 'Components/Scroller/OverlayScroller'; import Scroller from 'Components/Scroller/Scroller'; import { scrollDirections } from 'Helpers/Props'; import { isMobile as isMobileUtil } from 'Utilities/mobile'; import { isLocked } from 'Utilities/scrollLock'; import styles from './PageContentBody.css'; class PageContentBody extends Component { // // Lifecycle constructor(props, context) { super(props, context); this._isMobile = isMobileUtil(); } // // Listeners onScroll = (props) => { const { onScroll } = this.props; if (this.props.onScroll && !isLocked()) { onScroll(props); } }; // // Render render() { const { className, innerClassName, children, dispatch, ...otherProps } = this.props; const ScrollerComponent = this._isMobile ? Scroller : OverlayScroller; return (
{children}
); } } PageContentBody.propTypes = { className: PropTypes.string, innerClassName: PropTypes.string, children: PropTypes.node.isRequired, onScroll: PropTypes.func, dispatch: PropTypes.func }; PageContentBody.defaultProps = { className: styles.contentBody, innerClassName: styles.innerContentBody }; export default PageContentBody;