|
|
|
@ -1,7 +1,7 @@
|
|
|
|
|
// @ts-check
|
|
|
|
|
import React from 'react';
|
|
|
|
|
import { Sparklines, SparklinesCurve } from 'react-sparklines';
|
|
|
|
|
import { FormattedMessage, injectIntl, defineMessages } from 'react-intl';
|
|
|
|
|
import { FormattedMessage } from 'react-intl';
|
|
|
|
|
import PropTypes from 'prop-types';
|
|
|
|
|
import ImmutablePropTypes from 'react-immutable-proptypes';
|
|
|
|
|
import Permalink from './permalink';
|
|
|
|
@ -9,10 +9,6 @@ import ShortNumber from 'mastodon/components/short_number';
|
|
|
|
|
import Skeleton from 'mastodon/components/skeleton';
|
|
|
|
|
import classNames from 'classnames';
|
|
|
|
|
|
|
|
|
|
const messages = defineMessages({
|
|
|
|
|
totalVolume: { id: 'hashtag.total_volume', defaultMessage: 'Total volume in the last {days, plural, one {day} other {{days} days}}' },
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
class SilentErrorBoundary extends React.Component {
|
|
|
|
|
|
|
|
|
|
static propTypes = {
|
|
|
|
@ -69,7 +65,7 @@ ImmutableHashtag.propTypes = {
|
|
|
|
|
hashtag: ImmutablePropTypes.map.isRequired,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const Hashtag = injectIntl(({ name, href, to, people, uses, history, className, intl }) => (
|
|
|
|
|
const Hashtag = ({ name, href, to, people, history, className }) => (
|
|
|
|
|
<div className={classNames('trends__item', className)}>
|
|
|
|
|
<div className='trends__item__name'>
|
|
|
|
|
<Permalink href={href} to={to}>
|
|
|
|
@ -79,11 +75,6 @@ const Hashtag = injectIntl(({ name, href, to, people, uses, history, className,
|
|
|
|
|
{typeof people !== 'undefined' ? <ShortNumber value={people} renderer={accountsCountRenderer} /> : <Skeleton width={100} />}
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<abbr className='trends__item__current' title={intl.formatMessage(messages.totalVolume, { days: 2 })}>
|
|
|
|
|
{typeof uses !== 'undefined' ? <ShortNumber value={uses} /> : <Skeleton width={42} height={36} />}
|
|
|
|
|
<span className='trends__item__current__asterisk'>*</span>
|
|
|
|
|
</abbr>
|
|
|
|
|
|
|
|
|
|
<div className='trends__item__sparkline'>
|
|
|
|
|
<SilentErrorBoundary>
|
|
|
|
|
<Sparklines width={50} height={28} data={history ? history : Array.from(Array(7)).map(() => 0)}>
|
|
|
|
@ -92,7 +83,7 @@ const Hashtag = injectIntl(({ name, href, to, people, uses, history, className,
|
|
|
|
|
</SilentErrorBoundary>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
));
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
Hashtag.propTypes = {
|
|
|
|
|
name: PropTypes.string,
|
|
|
|
|