|
|
|
@ -2,10 +2,35 @@ |
|
|
|
|
import React from 'react'; |
|
|
|
|
import { Sparklines, SparklinesCurve } from 'react-sparklines'; |
|
|
|
|
import { FormattedMessage } from 'react-intl'; |
|
|
|
|
import PropTypes from 'prop-types'; |
|
|
|
|
import ImmutablePropTypes from 'react-immutable-proptypes'; |
|
|
|
|
import Permalink from './permalink'; |
|
|
|
|
import ShortNumber from 'mastodon/components/short_number'; |
|
|
|
|
|
|
|
|
|
class SilentErrorBoundary extends React.Component { |
|
|
|
|
|
|
|
|
|
static propTypes = { |
|
|
|
|
children: PropTypes.node, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
state = { |
|
|
|
|
error: false, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
componentDidCatch () { |
|
|
|
|
this.setState({ error: true }); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
render () { |
|
|
|
|
if (this.state.error) { |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return this.props.children; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Used to render counter of how much people are talking about hashtag |
|
|
|
|
* |
|
|
|
@ -51,17 +76,19 @@ const Hashtag = ({ hashtag }) => ( |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<div className='trends__item__sparkline'> |
|
|
|
|
<Sparklines |
|
|
|
|
width={50} |
|
|
|
|
height={28} |
|
|
|
|
data={hashtag |
|
|
|
|
.get('history') |
|
|
|
|
.reverse() |
|
|
|
|
.map((day) => day.get('uses')) |
|
|
|
|
.toArray()} |
|
|
|
|
> |
|
|
|
|
<SparklinesCurve style={{ fill: 'none' }} /> |
|
|
|
|
</Sparklines> |
|
|
|
|
<SilentErrorBoundary> |
|
|
|
|
<Sparklines |
|
|
|
|
width={50} |
|
|
|
|
height={28} |
|
|
|
|
data={hashtag |
|
|
|
|
.get('history') |
|
|
|
|
.reverse() |
|
|
|
|
.map((day) => day.get('uses')) |
|
|
|
|
.toArray()} |
|
|
|
|
> |
|
|
|
|
<SparklinesCurve style={{ fill: 'none' }} /> |
|
|
|
|
</Sparklines> |
|
|
|
|
</SilentErrorBoundary> |
|
|
|
|
</div> |
|
|
|
|
</div> |
|
|
|
|
); |
|
|
|
|