wip
This commit is contained in:
@@ -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()
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user