import React from 'react';
import PropTypes from 'prop-types';
import { FormattedNumber } from 'react-intl';
import TransitionMotion from 'react-motion/lib/TransitionMotion';
import spring from 'react-motion/lib/spring';
import { reduceMotion } from 'mastodon/initial_state';
export default class AnimatedNumber extends React.PureComponent {
static propTypes = {
value: PropTypes.number.isRequired,
};
willEnter () {
return { y: -1 };
}
willLeave () {
return { y: spring(1, { damping: 35, stiffness: 400 }) };
}
render () {
const { value } = this.props;
if (reduceMotion) {
return ;
}
const styles = [{
key: value,
style: { y: spring(0, { damping: 35, stiffness: 400 }) },
}];
return (
{items => (
{items.map(({ key, style }) => (
0 ? 'absolute' : 'static', transform: `translateY(${style.y * 100}%)` }}>
))}
)}
);
}
}