import PropTypes from 'prop-types'; import { PureComponent } from 'react'; import { FormattedMessage } from 'react-intl'; import classNames from 'classnames'; import { Blurhash } from 'mastodon/components/blurhash'; import { accountsCountRenderer } from 'mastodon/components/hashtag'; import { RelativeTimestamp } from 'mastodon/components/relative_timestamp'; import { ShortNumber } from 'mastodon/components/short_number'; import { Skeleton } from 'mastodon/components/skeleton'; export default class Story extends PureComponent { static propTypes = { url: PropTypes.string, title: PropTypes.string, lang: PropTypes.string, publisher: PropTypes.string, publishedAt: PropTypes.string, author: PropTypes.string, sharedTimes: PropTypes.number, thumbnail: PropTypes.string, thumbnailDescription: PropTypes.string, blurhash: PropTypes.string, expanded: PropTypes.bool, }; state = { thumbnailLoaded: false, }; handleImageLoad = () => this.setState({ thumbnailLoaded: true }); render () { const { expanded, url, title, lang, publisher, author, publishedAt, sharedTimes, thumbnail, thumbnailDescription, blurhash } = this.props; const { thumbnailLoaded } = this.state; return (
{publisher ? {publisher} : }{publishedAt && <> · }
{title ? title : }
{author && <>{author} }} /> · }{typeof sharedTimes === 'number' ? : }
{thumbnail ? ( <>
{thumbnailDescription} ) : }
); } }