42 lines
1.2 KiB
Kotlin
42 lines
1.2 KiB
Kotlin
package `in`.sminnovations.attendanceapp
|
|
|
|
import android.os.Build
|
|
import androidx.annotation.RequiresApi
|
|
import androidx.compose.runtime.Composable
|
|
import androidx.hilt.navigation.compose.hiltViewModel
|
|
import androidx.navigation.NavHostController
|
|
import androidx.navigation.compose.NavHost
|
|
import androidx.navigation.compose.composable
|
|
import androidx.navigation.compose.rememberNavController
|
|
import `in`.sminnovations.attendanceapp.screens.login.ui.LoginScreen
|
|
|
|
|
|
@Composable
|
|
fun AppNavigation() {
|
|
val navController = rememberNavController()
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
|
|
NavigationHost(navController = navController)
|
|
}
|
|
}
|
|
|
|
@RequiresApi(Build.VERSION_CODES.O_MR1)
|
|
@Composable
|
|
fun NavigationHost(navController: NavHostController) {
|
|
NavHost(navController = navController, startDestination = "login") {
|
|
composable("login") {
|
|
LoginScreen(
|
|
loginViewModel = hiltViewModel(),
|
|
onLoginSuccess = {
|
|
navController.navigate("main") {
|
|
popUpTo("login") { inclusive = true }
|
|
}
|
|
}
|
|
)
|
|
}
|
|
|
|
composable("main") {
|
|
MainScreen(navController)
|
|
}
|
|
}
|
|
}
|