UNPKG

react-modal-slideshow

Version:

A simple React modal media slideshow with CSS powered animations

60 lines (55 loc) 1.99 kB
import React, { Component } from "react"; import ReactCSSTransitionGroup from "react-addons-css-transition-group"; import PropTypes from "prop-types"; import SimpleSlide from "./SimpleSlide.jsx"; export default class SimpleModal extends Component { render() { return ( <div className={this.props.classNamePrefix}> <a className={`${this.props.classNamePrefix}__close`} onClick={this.props.onClose} > Close </a> <ReactCSSTransitionGroup component="div" transitionName={{ enter: `${this.props.classNamePrefix}__slide-enter` + `-${this.props.slideAnimationDirection}`, enterActive: `${this.props.classNamePrefix}__slide-enter` + `-${this.props.slideAnimationDirection}-active`, leave: `${this.props.classNamePrefix}__slide-leave` + `-${this.props.slideAnimationDirection}`, leaveActive: `${this.props.classNamePrefix}__slide-leave` + `-${this.props.slideAnimationDirection}-active` }} transitionEnter={this.props.slideAnimations} transitionLeave={this.props.slideAnimations} transitionEnterTimeout={this.props.slideTransitionEnterTimeout} transitionLeaveTimeout={this.props.slideTransitionLeaveTimeout} > <SimpleSlide {...this.props} key={this.props.slideIndex} /> </ReactCSSTransitionGroup> </div> ); } } SimpleModal.propTypes = { slide: PropTypes.object, slideIndex: PropTypes.number, slideAnimations: PropTypes.bool, slideAnimationDirection: PropTypes.string, showPrev: PropTypes.bool, showNext: PropTypes.bool, onPrev: PropTypes.func, onNext: PropTypes.func, onClose: PropTypes.func, classNamePrefix: PropTypes.string, slideTransitionEnterTimeout: PropTypes.number, slideTransitionLeaveTimeout: PropTypes.number };