UNPKG

3.96 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4
5var _extends2 = require('babel-runtime/helpers/extends');
6
7var _extends3 = _interopRequireDefault(_extends2);
8
9var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
10
11var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
12
13var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
14
15var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
16
17var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
18
19var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
20
21var _inherits2 = require('babel-runtime/helpers/inherits');
22
23var _inherits3 = _interopRequireDefault(_inherits2);
24
25var _fadeStyles;
26
27var _classnames = require('classnames');
28
29var _classnames2 = _interopRequireDefault(_classnames);
30
31var _react = require('react');
32
33var _react2 = _interopRequireDefault(_react);
34
35var _propTypes = require('prop-types');
36
37var _propTypes2 = _interopRequireDefault(_propTypes);
38
39var _Transition = require('react-transition-group/Transition');
40
41var _Transition2 = _interopRequireDefault(_Transition);
42
43function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
44
45var propTypes = {
46 /**
47 * Show the component; triggers the fade in or fade out animation
48 */
49 in: _propTypes2.default.bool,
50
51 /**
52 * Wait until the first "enter" transition to mount the component (add it to the DOM)
53 */
54 mountOnEnter: _propTypes2.default.bool,
55
56 /**
57 * Unmount the component (remove it from the DOM) when it is faded out
58 */
59 unmountOnExit: _propTypes2.default.bool,
60
61 /**
62 * Run the fade in animation when the component mounts, if it is initially
63 * shown
64 */
65 appear: _propTypes2.default.bool,
66
67 /**
68 * Duration of the fade animation in milliseconds, to ensure that finishing
69 * callbacks are fired even if the original browser transition end events are
70 * canceled
71 */
72 timeout: _propTypes2.default.number,
73
74 /**
75 * Callback fired before the component fades in
76 */
77 onEnter: _propTypes2.default.func,
78 /**
79 * Callback fired after the component starts to fade in
80 */
81 onEntering: _propTypes2.default.func,
82 /**
83 * Callback fired after the has component faded in
84 */
85 onEntered: _propTypes2.default.func,
86 /**
87 * Callback fired before the component fades out
88 */
89 onExit: _propTypes2.default.func,
90 /**
91 * Callback fired after the component starts to fade out
92 */
93 onExiting: _propTypes2.default.func,
94 /**
95 * Callback fired after the component has faded out
96 */
97 onExited: _propTypes2.default.func
98};
99
100var defaultProps = {
101 in: false,
102 timeout: 300,
103 mountOnEnter: false,
104 unmountOnExit: false,
105 appear: false
106};
107
108var fadeStyles = (_fadeStyles = {}, _fadeStyles[_Transition.ENTERING] = 'in', _fadeStyles[_Transition.ENTERED] = 'in', _fadeStyles);
109
110var Fade = function (_React$Component) {
111 (0, _inherits3.default)(Fade, _React$Component);
112
113 function Fade() {
114 (0, _classCallCheck3.default)(this, Fade);
115 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
116 }
117
118 Fade.prototype.render = function render() {
119 var _props = this.props,
120 className = _props.className,
121 children = _props.children,
122 props = (0, _objectWithoutProperties3.default)(_props, ['className', 'children']);
123
124
125 return _react2.default.createElement(
126 _Transition2.default,
127 props,
128 function (status, innerProps) {
129 return _react2.default.cloneElement(children, (0, _extends3.default)({}, innerProps, {
130 className: (0, _classnames2.default)('fade', className, children.props.className, fadeStyles[status])
131 }));
132 }
133 );
134 };
135
136 return Fade;
137}(_react2.default.Component);
138
139Fade.propTypes = propTypes;
140Fade.defaultProps = defaultProps;
141
142exports.default = Fade;
143module.exports = exports['default'];
\No newline at end of file