// @ts-check 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'; import Skeleton from 'mastodon/components/skeleton'; import classNames from 'classnames'; 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 * * @type {(displayNumber: JSX.Element, pluralReady: number) => JSX.Element} */ const accountsCountRenderer = (displayNumber, pluralReady) => ( {displayNumber}, }} /> ); export const ImmutableHashtag = ({ hashtag }) => ( day.get('uses')).toArray()} /> ); ImmutableHashtag.propTypes = { hashtag: ImmutablePropTypes.map.isRequired, }; const Hashtag = ({ name, href, to, people, uses, history, className }) => (
{name ? #{name} : } {typeof people !== 'undefined' ? : }
{typeof uses !== 'undefined' ? : }
0)}>
); Hashtag.propTypes = { name: PropTypes.string, href: PropTypes.string, to: PropTypes.string, people: PropTypes.number, uses: PropTypes.number, history: PropTypes.arrayOf(PropTypes.number), className: PropTypes.string, }; export default Hashtag;