This commit is contained in:
Trey t
2025-11-04 11:42:00 -06:00
parent de1c7931e9
commit ba27ddda71
11 changed files with 323 additions and 117 deletions

View File

@@ -27,6 +27,8 @@ import org.jetbrains.compose.ui.tooling.preview.Preview
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.rememberNavController
import androidx.navigation.compose.composable
import androidx.navigation.toRoute
import com.mycrib.navigation.*
import mycrib.composeapp.generated.resources.Res
import mycrib.composeapp.generated.resources.compose_multiplatform
@@ -48,28 +50,28 @@ fun App() {
) {
NavHost(
navController = navController,
startDestination = if (isLoggedIn) "residences" else "login"
startDestination = if (isLoggedIn) ResidencesRoute else LoginRoute
) {
composable("login") {
composable<LoginRoute> {
LoginScreen(
onLoginSuccess = {
isLoggedIn = true
navController.navigate("residences") {
popUpTo("login") { inclusive = true }
navController.navigate(ResidencesRoute) {
popUpTo<LoginRoute> { inclusive = true }
}
},
onNavigateToRegister = {
navController.navigate("register")
navController.navigate(RegisterRoute)
}
)
}
composable("register") {
composable<RegisterRoute> {
RegisterScreen(
onRegisterSuccess = {
isLoggedIn = true
navController.navigate("residences") {
popUpTo("register") { inclusive = true }
navController.navigate(ResidencesRoute) {
popUpTo<RegisterRoute> { inclusive = true }
}
},
onNavigateBack = {
@@ -78,37 +80,37 @@ fun App() {
)
}
composable("home") {
composable<HomeRoute> {
HomeScreen(
onNavigateToResidences = {
navController.navigate("residences")
navController.navigate(ResidencesRoute)
},
onNavigateToTasks = {
navController.navigate("tasks")
navController.navigate(TasksRoute)
},
onLogout = {
// Clear token on logout
com.mycrib.storage.TokenStorage.clearToken()
isLoggedIn = false
navController.navigate("login") {
popUpTo("home") { inclusive = true }
navController.navigate(LoginRoute) {
popUpTo<HomeRoute> { inclusive = true }
}
}
)
}
composable("residences") {
composable<ResidencesRoute> {
ResidencesScreen(
onResidenceClick = { residenceId ->
navController.navigate("residence_detail/$residenceId")
navController.navigate(ResidenceDetailRoute(residenceId))
},
onAddResidence = {
navController.navigate("add_residence")
navController.navigate(AddResidenceRoute)
}
)
}
composable("add_residence") {
composable<AddResidenceRoute> {
AddResidenceScreen(
onNavigateBack = {
navController.popBackStack()
@@ -119,7 +121,7 @@ fun App() {
)
}
composable("tasks") {
composable<TasksRoute> {
TasksScreen(
onNavigateBack = {
navController.popBackStack()
@@ -127,22 +129,14 @@ fun App() {
)
}
composable("residence_detail/{residenceId}") { backStackEntry ->
// val residenceId = backStackEntry.arguments?.getString("residenceId")?.toIntOrNull()
val residenceId = backStackEntry.arguments
?.get("residenceId")
?.toString()
?.toIntOrNull()
if (residenceId != null) {
ResidenceDetailScreen(
residenceId = residenceId,
onNavigateBack = {
navController.popBackStack()
}
)
}
composable<ResidenceDetailRoute> { backStackEntry ->
val route = backStackEntry.toRoute<ResidenceDetailRoute>()
ResidenceDetailScreen(
residenceId = route.residenceId,
onNavigateBack = {
navController.popBackStack()
}
)
}
}
}