import * as React from 'react'; import { StaggeredMotion, Motion, spring, TransitionMotion, TransitionPlainStyle, TransitionStyle, Style, PlainStyle } from 'react-motion'; class Root extends React.Component { render() { return ( {(value: any) =>
{ value.x }
}
); } } class TransitionTest extends React.Component { render() { return ( {this.renderItems.bind(this)} ); } getDefaultStyles(): TransitionPlainStyle[] { return [1, 2, 3].map(num => { const style: PlainStyle = { height: 0 }; return { key: `${num}`, data: num, style: style }; }) } getStyles(): TransitionStyle[] { return [1, 2, 3].map(num => { const style: Style = { height: spring(10) }; return { key: `${num}`, data: num, style: style } }); } renderItems(interpolatedItems: TransitionStyle[]): JSX.Element { return (
{interpolatedItems.map(config => { return (
style={{ height: config.style['height'] }} > {config.data}
); }) }
) } } class StaggeredTest extends React.Component { render() { return ( ) } getStyles(prevInterpolatedStyles: PlainStyle[]): Style[] { return prevInterpolatedStyles.map((prevStyle, index) => { const style: Style = {}; style['h'] = (index === 0) ? spring(100) : spring(prevInterpolatedStyles[index - 1]['h']); return style; }) } renderItems(interpolatedItems: PlainStyle[]): JSX.Element { return (
{interpolatedItems.map((style, index) => { return (
) })}
) } }