diff --git a/app/src/main/java/chat/revolt/composables/screens/chat/discover/DiscoverServersList.kt b/app/src/main/java/chat/revolt/composables/screens/chat/discover/DiscoverServersList.kt index bc1b66a3..30fc6b98 100644 --- a/app/src/main/java/chat/revolt/composables/screens/chat/discover/DiscoverServersList.kt +++ b/app/src/main/java/chat/revolt/composables/screens/chat/discover/DiscoverServersList.kt @@ -33,10 +33,11 @@ import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import chat.revolt.R import chat.revolt.api.routes.googlesheets.ServerData -import chat.revolt.composables.screens.chat.discover.ServerInviteHandler @Composable -fun DiscoverServersList() { +fun DiscoverServersList( + onJoinToServerSuccess: (String) -> Unit, +) { val viewModel = hiltViewModel() val uiState by viewModel.uiState.collectAsState() @@ -47,14 +48,12 @@ fun DiscoverServersList() { selectedServer?.let { server -> ServerInviteHandler( inviteCode = inviteCode, - serverId = server.id, viewModel = viewModel, onDismiss = { viewModel.setSelectedInviteCode(null) }, - onJoinSuccess = { - // Show a success message or navigate to the joined server - viewModel.setSelectedInviteCode(null) + onJoinSuccess = { serverId -> + onJoinToServerSuccess(serverId) } ) } diff --git a/app/src/main/java/chat/revolt/composables/screens/chat/discover/ServerInviteHandler.kt b/app/src/main/java/chat/revolt/composables/screens/chat/discover/ServerInviteHandler.kt index 962e66dd..c63b555c 100644 --- a/app/src/main/java/chat/revolt/composables/screens/chat/discover/ServerInviteHandler.kt +++ b/app/src/main/java/chat/revolt/composables/screens/chat/discover/ServerInviteHandler.kt @@ -1,28 +1,23 @@ package chat.revolt.composables.screens.chat.discover import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue -import androidx.compose.ui.platform.LocalContext -import androidx.lifecycle.viewmodel.compose.viewModel +import androidx.hilt.navigation.compose.hiltViewModel import chat.revolt.api.RevoltError -import chat.revolt.api.schemas.Invite -import chat.revolt.api.schemas.RsResult import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch @Composable fun ServerInviteHandler( inviteCode: String, - serverId: String, - viewModel: DiscoverServersListViewModel = viewModel(), + viewModel: DiscoverServersListViewModel = hiltViewModel(), onDismiss: () -> Unit = {}, - onJoinSuccess: () -> Unit = {} + onJoinSuccess: (String) -> Unit = {} ) { val scope = rememberCoroutineScope() var isJoining by remember { mutableStateOf(false) } @@ -46,7 +41,10 @@ fun ServerInviteHandler( if (result.ok) { showDialog = false viewModel.clearLoadedData() - onJoinSuccess() + uiState.loadedInviteData?.serverId?.let { serverId -> + onJoinSuccess(serverId) + } + } else { error = result.error } diff --git a/app/src/main/java/chat/revolt/composables/screens/chat/drawer/ChannelSideDrawer.kt b/app/src/main/java/chat/revolt/composables/screens/chat/drawer/ChannelSideDrawer.kt index d2ce8bac..0d73173c 100644 --- a/app/src/main/java/chat/revolt/composables/screens/chat/drawer/ChannelSideDrawer.kt +++ b/app/src/main/java/chat/revolt/composables/screens/chat/drawer/ChannelSideDrawer.kt @@ -461,7 +461,6 @@ fun ChannelSideDrawer( serverBannerHeight + WindowInsets.statusBars.asPaddingValues() .calculateTopPadding() ) - //.offset(y = WindowInsets.statusBars.asPaddingValues().calculateTopPadding()) ) { if (server?.banner != null) { RemoteImage( @@ -562,7 +561,9 @@ fun ChannelSideDrawer( } } if (currentDestination is ChatRouterDestination.Discover) { - DiscoverServersList() + DiscoverServersList( + onJoinToServerSuccess = navigateToServer + ) } else { if (currentServer == null) { DirectMessagesChannelListRenderer(