diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt index cb9e70816..0adefca16 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt @@ -2120,7 +2120,7 @@ private fun RelayBadges(baseNote: Note) { var lazyRelayList by remember { mutableStateOf(emptyList()) } LaunchedEffect(key1 = noteRelaysState, key2 = expanded) { - withContext(Dispatchers.IO) { + launch(Dispatchers.IO) { val relayList = noteRelays.relays.map { it.removePrefix("wss://").removePrefix("ws://") } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt index 652c2a85c..64c3a48b0 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt @@ -319,9 +319,16 @@ fun LikeReaction( fun LikeIcon(baseNote: Note, iconSize: Dp = 20.dp, grayTint: Color, loggedIn: User) { val reactionsState by baseNote.live().reactions.observeAsState() - val wasReactedByLoggedIn by remember(reactionsState) { - derivedStateOf { - reactionsState?.note?.isReactedBy(loggedIn) == true + var wasReactedByLoggedIn by remember(reactionsState) { + mutableStateOf(false) + } + + LaunchedEffect(key1 = reactionsState) { + launch(Dispatchers.Default) { + val newWasReactedByLoggedIn = reactionsState?.note?.isReactedBy(loggedIn) == true + if (wasReactedByLoggedIn != newWasReactedByLoggedIn) { + wasReactedByLoggedIn = newWasReactedByLoggedIn + } } } @@ -350,9 +357,16 @@ fun LikeIcon(baseNote: Note, iconSize: Dp = 20.dp, grayTint: Color, loggedIn: Us fun LikeText(baseNote: Note, grayTint: Color) { val reactionsState by baseNote.live().reactions.observeAsState() - val reactionsCount by remember(reactionsState) { - derivedStateOf { - " " + showCount(reactionsState?.note?.reactions?.size) + var reactionsCount by remember(reactionsState) { + mutableStateOf("") + } + + LaunchedEffect(key1 = reactionsState) { + launch(Dispatchers.Default) { + val newReactionsCount = " " + showCount(reactionsState?.note?.reactions?.size) + if (reactionsCount != newReactionsCount) { + reactionsCount = newReactionsCount + } } }