package com.vgmlr.wedge
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.darkColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.colorResource
import androidx.lifecycle.viewmodel.compose.viewModel
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
import androidx.compose.runtime.CompositionLocalProvider
@Composable
fun AppNavigation(db: AppDatabase, pref: PreferenceManager) {
val navController = rememberNavController()
val context = LocalContext.current.applicationContext
val vm: MainViewModel = viewModel(factory = MainViewModelFactory(db.noteDao(), pref, context))
val guideOpacity by pref.guideOpacity.collectAsState(WedgeConfig.GUIDE_OPACITY_DEFAULT)
CompositionLocalProvider(
LocalRuleAlpha provides guideOpacity / 100f
) {
MaterialTheme(
colorScheme = darkColorScheme(
primary = colorResource(id = R.color.primary_color),
surface = colorResource(id = R.color.surface_color),
background = colorResource(id = R.color.background_color)
)
) {
NavHost(navController, "editor") {
composable("editor") {
NoteEditor(vm, pref,
onSettings = { navController.navigate("settings") }
)
}
composable("settings") {
SettingsView(vm, pref) { navController.popBackStack() }
}
}
}
}
}