diff --git a/app/src/main/java/com/couplesconnect/app/core/navigation/AppNavigation.kt b/app/src/main/java/com/couplesconnect/app/core/navigation/AppNavigation.kt index 9dfb0229..6453f71e 100644 --- a/app/src/main/java/com/couplesconnect/app/core/navigation/AppNavigation.kt +++ b/app/src/main/java/com/couplesconnect/app/core/navigation/AppNavigation.kt @@ -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) diff --git a/app/src/main/java/com/couplesconnect/app/ui/pairing/CreateInviteScreen.kt b/app/src/main/java/com/couplesconnect/app/ui/pairing/CreateInviteScreen.kt index 078261a7..1ce40897 100644 --- a/app/src/main/java/com/couplesconnect/app/ui/pairing/CreateInviteScreen.kt +++ b/app/src/main/java/com/couplesconnect/app/ui/pairing/CreateInviteScreen.kt @@ -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 ) } }