From e8eb4c688c23487335c47f1f335f07e3f43a7056 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Tue, 11 Nov 2025 19:01:20 -0500 Subject: [PATCH] Modifies the flow to only output changes in the relay piece that has modified. --- .../com/vitorpamplona/amethyst/ui/note/RelayListBox.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/RelayListBox.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/RelayListBox.kt index 27bfd4599..881675ffe 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/RelayListBox.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/note/RelayListBox.kt @@ -60,6 +60,7 @@ import com.vitorpamplona.amethyst.ui.theme.Size17Modifier import com.vitorpamplona.amethyst.ui.theme.StdVertSpacer import com.vitorpamplona.amethyst.ui.theme.noteComposeRelayBox import com.vitorpamplona.amethyst.ui.theme.placeholderText +import kotlinx.coroutines.flow.mapNotNull @Composable fun RelayBadges( @@ -122,12 +123,14 @@ fun WatchAndRenderRelay( accountViewModel: AccountViewModel, nav: INav, ) { - val noteRelays by baseNote + val relay by baseNote .flow() .relays.stateFlow - .collectAsStateWithLifecycle() + .mapNotNull { + it.note.relays.getOrNull(relayIndex) + }.collectAsStateWithLifecycle(baseNote.relays.getOrNull(relayIndex)) - CrossfadeIfEnabled(targetState = noteRelays.note.relays.getOrNull(relayIndex), label = "RenderRelay", modifier = Size17Modifier, accountViewModel = accountViewModel) { + CrossfadeIfEnabled(targetState = relay, label = "RenderRelay", modifier = Size17Modifier, accountViewModel = accountViewModel) { if (it != null) { RenderRelay(it, accountViewModel, nav) }