react-misc-toolbox
Version:
- [ ] diagramexample | optimize creating from blank slate
148 lines (117 loc) • 5.65 kB
JavaScript
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);
;