From 9a586de6c749f7868327a063d4219f7fcc20a425 Mon Sep 17 00:00:00 2001 From: nrobi144 Date: Thu, 30 Apr 2026 09:39:52 +0300 Subject: [PATCH] fix(feed): key toNoteDisplayData on metadataState for reactive name updates Root cause: toNoteDisplayData(localCache) wasn't keyed on metadataState, so Compose could skip recomputing it when metadata arrived for items that were composed before metadata was available (first ~2 items). Fix: remember(event, metadataState) { event.toNoteDisplayData(localCache) } ensures display data is recomputed when the note's metadata flow invalidates. Applied to both regular and repost note paths. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../com/vitorpamplona/amethyst/desktop/ui/FeedScreen.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/FeedScreen.kt b/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/FeedScreen.kt index 551680089..037e19fcd 100644 --- a/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/FeedScreen.kt +++ b/desktopApp/src/jvmMain/kotlin/com/vitorpamplona/amethyst/desktop/ui/FeedScreen.kt @@ -180,8 +180,9 @@ fun FeedNoteCard( } // Original note content + val displayData = remember(originalEvent, metadataState) { originalEvent.toNoteDisplayData(localCache) } NoteCard( - note = originalEvent.toNoteDisplayData(localCache), + note = displayData, localCache = localCache, onClick = { onNavigateToThread(originalEvent.id) }, onAuthorClick = onNavigateToProfile, @@ -228,8 +229,9 @@ fun FeedNoteCard( } Column { + val displayData = remember(event, metadataState) { event.toNoteDisplayData(localCache) } NoteCard( - note = event.toNoteDisplayData(localCache), + note = displayData, localCache = localCache, onClick = { onNavigateToThread(event.id) }, onAuthorClick = onNavigateToProfile,