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} ) : }
); } }