UNPKG

react-misc-toolbox

Version:

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

116 lines (104 loc) 3.01 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _Transition = require('react-transition-group/Transition'); var _Transition2 = _interopRequireDefault(_Transition); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var RTGTransition = function RTGTransition(_ref) { var _ref$duration = _ref.duration, duration = _ref$duration === undefined ? 300 : _ref$duration, _ref$transitionType = _ref.transitionType, transitionType = _ref$transitionType === undefined ? 'fade' : _ref$transitionType, inProp = _ref.in, children = _ref.children, transitionProps = _ref.transitionProps, _ref$maxHeight = _ref.maxHeight, maxHeight = _ref$maxHeight === undefined ? '200vh' : _ref$maxHeight; var baseStyle = { transition: 'all ' + duration + 'ms ease-out' }; var transitionStyles = { entering: { shared: { cursor: 'pointer' }, fade: { opacity: '0.01' }, dropdown: { transform: 'scale(1, 0.9) translateY(-100%)', zIndex: '-1' }, height: { maxHeight: '0' } }, entered: { height: { maxHeight: maxHeight }, fade: { opacity: '1' }, dropdown: { transform: 'scale(1) translateY(0%)' } }, exiting: { fade: { opacity: '0.01' }, dropdown: { transform: 'scale(1, 0.9) translateY(-100%)' }, height: { maxHeight: '0' } }, exited: { fade: { opacity: '0' }, dropdown: { transform: 'scale(1, 0.9) translateY(-100%)' }, height: { maxHeight: '0' } } }; return _react2.default.createElement( _Transition2.default, (0, _extends3.default)({ in: inProp, timeout: { enter: 0, exit: duration }, mountOnEnter: true, unmountOnExit: true }, transitionProps), function (state) { var getStatefulStyles = function getStatefulStyles() { if (transitionStyles[state]) { if (Array.isArray(transitionType)) { var transitions = {}; transitionType.forEach(function (t) { transitions = (0, _extends3.default)({}, transitions, transitionStyles[state][t]); }); return (0, _extends3.default)({}, transitionStyles[state].shared, transitions); } else { return (0, _extends3.default)({}, transitionStyles[state].shared, transitionStyles[state][transitionType]); } } }; return children({ style: (0, _extends3.default)({}, baseStyle, getStatefulStyles()) }); } ); }; RTGTransition.defaultProps = {}; exports.default = RTGTransition;