Fix crash rendering tweets published before tweet.media existed
article.tweet?.media.slice(...) only guarded against a missing tweet object, not a missing media array — pre-existing published tweets in the DB predate that field and threw "Cannot read properties of undefined (reading 'slice')" on every category page containing one. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014c1L8ghNBFjfiH64UMViP8
This commit is contained in:
@@ -6,7 +6,9 @@
|
|||||||
let { article }: { article: MergedArticle } = $props();
|
let { article }: { article: MergedArticle } = $props();
|
||||||
|
|
||||||
const sourceLabel = $derived(article.sources[0]?.sourceName ?? 'Nitter');
|
const sourceLabel = $derived(article.sources[0]?.sourceName ?? 'Nitter');
|
||||||
const media = $derived(article.tweet?.media.slice(0, 4) ?? []);
|
// article.tweet.media is undefined for tweets published before this field existed —
|
||||||
|
// older rows in the DB weren't backfilled, so this can't assume it's always an array.
|
||||||
|
const media = $derived(article.tweet?.media?.slice(0, 4) ?? []);
|
||||||
|
|
||||||
// Native <video controls> needs its clicks not to fall through to the card's own
|
// Native <video controls> needs its clicks not to fall through to the card's own
|
||||||
// <a> navigation (play/pause/scrub would otherwise just open the article instead).
|
// <a> navigation (play/pause/scrub would otherwise just open the article instead).
|
||||||
|
|||||||
Reference in New Issue
Block a user