diff --git a/app/javascript/mastodon/api_types/statuses.ts b/app/javascript/mastodon/api_types/statuses.ts index 00418a13d29..1451ea82a07 100644 --- a/app/javascript/mastodon/api_types/statuses.ts +++ b/app/javascript/mastodon/api_types/statuses.ts @@ -51,7 +51,7 @@ export interface ApiPreviewCardJSON { html: string; width: number; height: number; - image: string; + image: string | null; image_description: string; embed_url: string; blurhash: string; diff --git a/app/javascript/mastodon/features/status/components/card.tsx b/app/javascript/mastodon/features/status/components/card.tsx index 65826f95f49..d3de36a1e1c 100644 --- a/app/javascript/mastodon/features/status/components/card.tsx +++ b/app/javascript/mastodon/features/status/components/card.tsx @@ -117,9 +117,9 @@ const Card: React.FC = ({ card, sensitive }) => { : card.get('provider_name'); const interactive = card.get('type') === 'video'; const language = card.get('language') || ''; + const hasImage = (card.get('image')?.length ?? 0) > 0; const largeImage = - (card.get('image').length > 0 && card.get('width') > card.get('height')) || - interactive; + (hasImage && card.get('width') > card.get('height')) || interactive; const showAuthor = !!card.getIn(['authors', 0, 'accountId']); const description = ( @@ -185,7 +185,7 @@ const Card: React.FC = ({ card, sensitive }) => { const thumbnailDescription = card.get('image_description'); const thumbnail = (