/** @format */ /** * External dependencies */ import { Component, createRef } from '@wordpress/element'; import classnames from 'classnames'; import PropTypes from 'prop-types'; /** * Internal dependencies */ import { CSSTransition, TransitionGroup } from 'react-transition-group'; import './style.scss'; /** * This component creates slideable content controlled by an animate prop to direct the contents to slide left or right. * All other props are passed to `CSSTransition`. More info at http://reactcommunity.org/react-transition-group/css-transition */ class AnimationSlider extends Component { constructor() { super(); this.state = { animate: null, }; this.container = createRef(); this.onExited = this.onExited.bind( this ); } onExited() { const { onExited, focusOnChange } = this.props; if ( onExited ) { onExited(); } if ( focusOnChange ) { const focusable = this.container.current.querySelector( 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])' ); if ( focusable ) { focusable.focus(); } } } render() { const { children, animationKey, animate } = this.props; const containerClasses = classnames( 'woocommerce-slide-animation', animate && `animate-${ animate }` ); return (