wip
This commit is contained in:
@@ -14,6 +14,7 @@ import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import com.mycrib.android.ui.screens.AddResidenceScreen
|
||||
import com.mycrib.android.ui.screens.HomeScreen
|
||||
import com.mycrib.android.ui.screens.LoginScreen
|
||||
import com.mycrib.android.ui.screens.RegisterScreen
|
||||
@@ -33,22 +34,27 @@ import mycrib.composeapp.generated.resources.compose_multiplatform
|
||||
@Composable
|
||||
@Preview
|
||||
fun App() {
|
||||
var isLoggedIn by remember { mutableStateOf(false) }
|
||||
var isLoggedIn by remember { mutableStateOf(com.mycrib.storage.TokenStorage.hasToken()) }
|
||||
val navController = rememberNavController()
|
||||
|
||||
// Check for stored token on app start
|
||||
LaunchedEffect(Unit) {
|
||||
isLoggedIn = com.mycrib.storage.TokenStorage.hasToken()
|
||||
}
|
||||
|
||||
Surface(
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
color = MaterialTheme.colorScheme.background
|
||||
) {
|
||||
NavHost(
|
||||
navController = navController,
|
||||
startDestination = if (isLoggedIn) "home" else "login"
|
||||
startDestination = if (isLoggedIn) "residences" else "login"
|
||||
) {
|
||||
composable("login") {
|
||||
LoginScreen(
|
||||
onLoginSuccess = {
|
||||
isLoggedIn = true
|
||||
navController.navigate("home") {
|
||||
navController.navigate("residences") {
|
||||
popUpTo("login") { inclusive = true }
|
||||
}
|
||||
},
|
||||
@@ -62,7 +68,7 @@ fun App() {
|
||||
RegisterScreen(
|
||||
onRegisterSuccess = {
|
||||
isLoggedIn = true
|
||||
navController.navigate("home") {
|
||||
navController.navigate("residences") {
|
||||
popUpTo("register") { inclusive = true }
|
||||
}
|
||||
},
|
||||
@@ -81,6 +87,8 @@ fun App() {
|
||||
navController.navigate("tasks")
|
||||
},
|
||||
onLogout = {
|
||||
// Clear token on logout
|
||||
com.mycrib.storage.TokenStorage.clearToken()
|
||||
isLoggedIn = false
|
||||
navController.navigate("login") {
|
||||
popUpTo("home") { inclusive = true }
|
||||
@@ -91,11 +99,22 @@ fun App() {
|
||||
|
||||
composable("residences") {
|
||||
ResidencesScreen(
|
||||
onResidenceClick = { residenceId ->
|
||||
navController.navigate("residence_detail/$residenceId")
|
||||
},
|
||||
onAddResidence = {
|
||||
navController.navigate("add_residence")
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
composable("add_residence") {
|
||||
AddResidenceScreen(
|
||||
onNavigateBack = {
|
||||
navController.popBackStack()
|
||||
},
|
||||
onResidenceClick = { residenceId ->
|
||||
navController.navigate("residence_detail/$residenceId")
|
||||
onResidenceCreated = {
|
||||
navController.popBackStack()
|
||||
}
|
||||
)
|
||||
}
|
||||
@@ -108,17 +127,23 @@ fun App() {
|
||||
)
|
||||
}
|
||||
|
||||
// composable("residence_detail/{residenceId}") { backStackEntry ->
|
||||
composable("residence_detail/{residenceId}") { backStackEntry ->
|
||||
// val residenceId = backStackEntry.arguments?.getString("residenceId")?.toIntOrNull()
|
||||
// if (residenceId != null) {
|
||||
// ResidenceDetailScreen(
|
||||
// residenceId = residenceId,
|
||||
// onNavigateBack = {
|
||||
// navController.popBackStack()
|
||||
// }
|
||||
// )
|
||||
// }
|
||||
// }
|
||||
val residenceId = backStackEntry.arguments
|
||||
?.get("residenceId")
|
||||
?.toString()
|
||||
?.toIntOrNull()
|
||||
|
||||
|
||||
if (residenceId != null) {
|
||||
ResidenceDetailScreen(
|
||||
residenceId = residenceId,
|
||||
onNavigateBack = {
|
||||
navController.popBackStack()
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user