fix(navigation, pairing): update route handling and invite screen layout

This commit is contained in:
null 2026-06-16 02:30:18 -05:00
parent 342c3276a0
commit c1548f28fb
2 changed files with 30 additions and 7 deletions

View File

@ -174,7 +174,10 @@ fun AppNavigation(
// Pairing
composable(route = AppRoute.CREATE_INVITE) {
CreateInviteScreen(onNavigate = navController::navigate)
CreateInviteScreen(
onNavigate = navController::navigate,
onBack = { navController.popBackStack() }
)
}
composable(route = AppRoute.EMAIL_INVITE) {
EmailInviteScreen(onNavigate = navController::navigate)

View File

@ -1,6 +1,7 @@
package com.couplesconnect.app.ui.pairing
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
@ -14,19 +15,23 @@ import androidx.compose.foundation.layout.width
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material.icons.filled.ContentCopy
import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.Card
import androidx.compose.material3.CardDefaults
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.material3.TopAppBar
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
@ -43,9 +48,11 @@ import androidx.hilt.navigation.compose.hiltViewModel
import com.couplesconnect.app.core.navigation.AppRoute
import kotlinx.coroutines.launch
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun CreateInviteScreen(
onNavigate: (String) -> Unit = {},
onBack: () -> Unit = {},
viewModel: CreateInviteViewModel = hiltViewModel()
) {
val state by viewModel.uiState.collectAsState()
@ -60,7 +67,19 @@ fun CreateInviteScreen(
state.error?.let { snackbar.showSnackbar(it); viewModel.dismissError() }
}
Scaffold(snackbarHost = { SnackbarHost(snackbar) }) { padding ->
Scaffold(
snackbarHost = { SnackbarHost(snackbar) },
topBar = {
TopAppBar(
title = {},
navigationIcon = {
IconButton(onClick = onBack) {
Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back")
}
}
)
}
) { padding ->
Column(
modifier = Modifier
.fillMaxSize()
@ -99,16 +118,17 @@ fun CreateInviteScreen(
),
elevation = CardDefaults.cardElevation(defaultElevation = 0.dp)
) {
Column(
modifier = Modifier.padding(24.dp),
horizontalAlignment = Alignment.CenterHorizontally
Box(
modifier = Modifier
.fillMaxWidth()
.padding(32.dp),
contentAlignment = Alignment.Center
) {
Text(
text = state.inviteCode!!.chunked(3).joinToString(" "),
style = MaterialTheme.typography.displaySmall,
color = MaterialTheme.colorScheme.onPrimaryContainer,
textAlign = TextAlign.Center,
letterSpacing = androidx.compose.ui.unit.TextUnit.Unspecified
textAlign = TextAlign.Center
)
}
}