Home

Awesome

react-transition-child

Build Status

transitionChild is a little ES7 decorator that lets you easily wrap react components to animate their appearance and disappearance in the DOM.

install

$ npm install --save bloody-react-transition-child

@transitionChild({ enterDuration = 300, leaveDuration = 300 }) class

wraps a react component. this component will then receive as additional props:

example

@transitionChild()
class Slide extends Component {

  static propTypes = {
    enterAnimation: PropTypes.number,
    leaveAnimation: PropTypes.number,
    isRunningEnterAnimation: PropTypes.bool,
    isRunningLeaveAnimation: PropTypes.bool,
    comesFrom: PropTypes.oneOf([
      "left",
      "right",
    ]),
  }

  render() {
    const {
      enterAnimation,
      leaveAnimation,
      isRunningEnterAnimation,
      isRunningLeaveAnimation,
      children,
      comesFrom,
    } = this.props
    return (
      <div
        style={{
          ...styles.slide,
          ...isRunningEnterAnimation && {
            transform:
              `translateX(` +
                `${ comesFrom === "left" ? "-" : "" }` +
                `${ (1 - enterAnimation) * 100 }%)`,
          },
          ...isRunningLeaveAnimation && {
            opacity: (1 - leaveAnimation) * 1,
          },
        }}>
        {children}
      </div>
    )
  }
}