Modifies the flow to only output changes in the relay piece that has modified.
This commit is contained in:
@@ -60,6 +60,7 @@ import com.vitorpamplona.amethyst.ui.theme.Size17Modifier
|
|||||||
import com.vitorpamplona.amethyst.ui.theme.StdVertSpacer
|
import com.vitorpamplona.amethyst.ui.theme.StdVertSpacer
|
||||||
import com.vitorpamplona.amethyst.ui.theme.noteComposeRelayBox
|
import com.vitorpamplona.amethyst.ui.theme.noteComposeRelayBox
|
||||||
import com.vitorpamplona.amethyst.ui.theme.placeholderText
|
import com.vitorpamplona.amethyst.ui.theme.placeholderText
|
||||||
|
import kotlinx.coroutines.flow.mapNotNull
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun RelayBadges(
|
fun RelayBadges(
|
||||||
@@ -122,12 +123,14 @@ fun WatchAndRenderRelay(
|
|||||||
accountViewModel: AccountViewModel,
|
accountViewModel: AccountViewModel,
|
||||||
nav: INav,
|
nav: INav,
|
||||||
) {
|
) {
|
||||||
val noteRelays by baseNote
|
val relay by baseNote
|
||||||
.flow()
|
.flow()
|
||||||
.relays.stateFlow
|
.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) {
|
if (it != null) {
|
||||||
RenderRelay(it, accountViewModel, nav)
|
RenderRelay(it, accountViewModel, nav)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user