voyager -> androidx.compose.navigation

This commit is contained in:
2025-03-30 04:32:29 +03:00
parent 8e3d822a56
commit 885ed5a018
17 changed files with 442 additions and 384 deletions
@@ -7,11 +7,16 @@ import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import cafe.adriel.voyager.navigator.Navigator
import cafe.adriel.voyager.transitions.FadeTransition
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
import dev.meloda.overseerr.screens.login.presentation.LoginScreen
import dev.meloda.overseerr.screens.main.MainScreen
import dev.meloda.overseerr.screens.requests.presentation.RequestsScreen
import dev.meloda.overseerr.screens.url.presentation.UrlScreen
import dev.meloda.overseerr.settings.SettingsController
import dev.meloda.overseerr.theme.AppTheme
import dev.meloda.overseerr.theme.NavigationSettings
import io.github.aakira.napier.DebugAntilog
import io.github.aakira.napier.Napier
import org.koin.compose.KoinContext
@@ -32,10 +37,31 @@ internal fun App() = KoinContext {
settingsController.loadAppSettings()
}
val navController = rememberNavController()
NavigationSettings(navController)
AppTheme(themeMode = settings.themeMode) {
Surface(modifier = Modifier.fillMaxSize()) {
Navigator(MainScreen()) { navigator ->
FadeTransition(navigator)
NavHost(
navController = navController,
startDestination = MainScreen
) {
composable<MainScreen> {
MainScreen(navController)
}
composable<LoginScreen> {
LoginScreen(onBack = navController::popBackStack)
}
composable<RequestsScreen> {
RequestsScreen(onBack = navController::popBackStack)
}
composable<UrlScreen> {
UrlScreen(onBack = navController::popBackStack)
}
}
}
}