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 (
)
})}
)
}
}