scratch-www/src/views/preview/stats.jsx

54 lines
1.6 KiB
React
Raw Normal View History

2018-09-25 17:16:02 -04:00
const PropTypes = require('prop-types');
const React = require('react');
const FlexRow = require('../../components/flex-row/flex-row.jsx');
const classNames = require('classnames');
const approx = require('approximate-number');
const CappedNumber = require('../../components/cappednumber/cappednumber.jsx');
const projectShape = require('./projectshape.jsx').projectShape;
require('./stats.scss');
2018-09-25 17:16:02 -04:00
const Stats = props => (
<FlexRow className="stats noselect">
2018-09-25 17:16:02 -04:00
<div
className={classNames('project-loves', {loved: props.loved})}
key="loves"
onClick={props.onLoveClicked}
>
2018-11-14 20:06:33 -05:00
{approx(Math.max(0, props.loveCount), {decimal: false})}
2018-09-25 17:16:02 -04:00
</div>
<div
className={classNames('project-favorites', {favorited: props.faved})}
key="favorites"
onClick={props.onFavoriteClicked}
>
2018-11-14 20:06:33 -05:00
{approx(Math.max(0, props.favoriteCount), {decimal: false})}
2018-09-25 17:16:02 -04:00
</div>
<div
className="project-remixes"
key="remixes"
>
{approx(props.projectInfo.stats.remixes, {decimal: false})}
</div>
<div
className="project-views"
key="views"
>
<CappedNumber value={props.projectInfo.stats.views} />
</div>
</FlexRow>
);
Stats.propTypes = {
faved: PropTypes.bool,
favoriteCount: PropTypes.number,
loveCount: PropTypes.number,
loved: PropTypes.bool,
onFavoriteClicked: PropTypes.func,
onLoveClicked: PropTypes.func,
projectInfo: projectShape
};
module.exports = Stats;