ndla-ui
Version:
UI component library for NDLA.
45 lines (39 loc) • 914 B
JSX
import React from 'react';
import PropTypes from 'prop-types';
import { CSSTransition } from 'react-transition-group';
const Fade = ({ children, delay, timeout, exitDelay, ...rest }) => (
<CSSTransition
classNames="u-fade"
{...rest}
timeout={timeout}
unmountOnExit
onEnter={node => {
const n = node;
n.style.transitionDuration = `${timeout}ms`;
if (delay) {
n.style.transitionDelay = `${delay}ms`;
}
}}
onExit={
exitDelay
? node => {
const n = node;
n.style.transitionDelay = `${exitDelay}ms`;
}
: null
}>
{children}
</CSSTransition>
);
Fade.propTypes = {
children: PropTypes.node.isRequired,
timeout: PropTypes.number,
delay: PropTypes.number,
exitDelay: PropTypes.number,
};
Fade.defaultProps = {
timeout: 300,
delay: null,
exitDelay: null,
};
export default Fade;