UNPKG

react-misc-toolbox

Version:

[ ] imageviewer | gradual scroll [ ] imageviewer | cancellable scroll

148 lines (117 loc) 5.65 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _recompose = require('recompose'); var _react = require('react'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function breakpointListener(handleBreakpoint, breakpoint) { var showLog = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; if (window.innerWidth >= breakpoint) { handleBreakpoint(true); showLog && console.log('above or equal to ' + breakpoint + 'px'); } else { handleBreakpoint(false); showLog && console.log('below ' + breakpoint + 'px'); } } var ResizeListener2 = function (_Component) { (0, _inherits3.default)(ResizeListener2, _Component); function ResizeListener2() { var _ref; var _temp, _this, _ret; (0, _classCallCheck3.default)(this, ResizeListener2); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = ResizeListener2.__proto__ || (0, _getPrototypeOf2.default)(ResizeListener2)).call.apply(_ref, [this].concat(args))), _this), _this.listener = function () { var _this$props = _this.props, handleBreakpoint = _this$props.handleBreakpoint, breakpoint = _this$props.breakpoint, _this$props$showLog = _this$props.showLog, showLog = _this$props$showLog === undefined ? false : _this$props$showLog; showLog && console.log(_this.props); if (window.innerWidth >= breakpoint) { handleBreakpoint(true); //props.showLog && console.log(`above or equal to ${props.breakpoint}px`) } else { handleBreakpoint(false); //props.showLog && console.log(`below ${props.breakpoint}px`) } }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret); } (0, _createClass3.default)(ResizeListener2, [{ key: 'componentDidMount', value: function componentDidMount() { var _props = this.props, handleBreakpoint = _props.handleBreakpoint, breakpoint = _props.breakpoint, _props$showLog = _props.showLog, showLog = _props$showLog === undefined ? false : _props$showLog; showLog && console.log('breakpoint: ', breakpoint); showLog && console.log('showLog: ', showLog); showLog && console.log('this.props: ', this.props); typeof window !== 'undefined' && window.innerWidth >= breakpoint && handleBreakpoint(true); typeof window !== 'undefined' && window.addEventListener('resize', this.listener); } }, { key: 'componentWillUnmount', value: function componentWillUnmount() { window.removeEventListener('resize', this.listener); } }, { key: 'render', value: function render() { var _props2 = this.props, breakpoint = _props2.breakpoint, breakpointWasReached = _props2.breakpointWasReached, children = _props2.children; return children({ breakpoint: breakpoint, breakpointWasReached: breakpointWasReached }); } }]); return ResizeListener2; }(_react.Component); var ResizeListener = function ResizeListener(_ref2) { var breakpoint = _ref2.breakpoint, _ref2$showLog = _ref2.showLog, showLog = _ref2$showLog === undefined ? false : _ref2$showLog; return (0, _recompose.compose)((0, _recompose.withState)('breakpointWasReached', 'handleBreakpoint', false), (0, _recompose.withProps)({ breakpoint: breakpoint, showLog: showLog }), (0, _recompose.withProps)(function (props) { return { listener: function listener() { props.showLog && console.log(props, window.innerWidth); if (window.innerWidth >= breakpoint) { props.handleBreakpoint(true); //props.showLog && console.log(`above or equal to ${props.breakpoint}px`) } else { props.handleBreakpoint(false); //props.showLog && console.log(`below ${props.breakpoint}px`) } } }; }), (0, _recompose.lifecycle)({ componentDidMount: function componentDidMount() { var handleBreakpoint = this.props.handleBreakpoint; showLog && console.log('breakpoint: ', breakpoint); showLog && console.log('showLog: ', showLog); showLog && console.log('this.props: ', this.props); typeof window !== 'undefined' && window.innerWidth >= breakpoint && handleBreakpoint(true); typeof window !== 'undefined' && window.addEventListener('resize', this.props.listener); }, componentWillUnmount: function componentWillUnmount() { window.removeEventListener('resize', this.props.listener); } })); }; //export default ResizeListener var enhance = (0, _recompose.compose)((0, _recompose.withState)('breakpointWasReached', 'handleBreakpoint', false)); exports.default = enhance(ResizeListener2);