diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordInviteScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordInviteScreen.kt index 8c592fb7e7..42748cc684 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordInviteScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/chats/publicChannels/concord/ConcordInviteScreen.kt @@ -95,7 +95,10 @@ fun ConcordInviteScreen( LaunchedEffect(state) { (state as? RedeemState.Done)?.let { done -> - nav.newStack(Route.ConcordServer(done.communityId)) + // Replace this invite screen with the community, dropping it from the back stack. If it + // stayed, Back from the community would land on the auto-redeeming spinner, which would + // immediately re-join and forward here again — trapping the user in a Back→forward loop. + nav.popUpTo(Route.ConcordServer(done.communityId), Route.ConcordInvite::class) } }