Files
ovs-kmp/composeApp/src/commonMain/kotlin/dev/meloda/overseerr/App.kt
T
2024-08-14 23:28:00 +03:00

43 lines
1.3 KiB
Kotlin

package dev.meloda.overseerr
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.Surface
import androidx.compose.runtime.Composable
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 dev.meloda.overseerr.screens.main.MainScreen
import dev.meloda.overseerr.settings.SettingsController
import dev.meloda.overseerr.theme.AppTheme
import io.github.aakira.napier.DebugAntilog
import io.github.aakira.napier.Napier
import org.koin.compose.KoinContext
import org.koin.compose.koinInject
var appDir: String = ""
@Composable
internal fun App() = KoinContext {
LaunchedEffect(true) {
Napier.base(DebugAntilog())
}
val settingsController: SettingsController = koinInject()
val settings by settingsController.settings.collectAsStateWithLifecycle()
LaunchedEffect(true) {
settingsController.loadAppSettings()
}
AppTheme(themeMode = settings.themeMode) {
Surface(modifier = Modifier.fillMaxSize()) {
Navigator(MainScreen()) { navigator ->
FadeTransition(navigator)
}
}
}
}