mirror of
https://github.com/Myzel394/NumberHub.git
synced 2025-06-19 00:35:26 +02:00
Fixed navigation.
P.S. Ugly fix, will change later.
This commit is contained in:
parent
c72316acf1
commit
a8cbb8f89e
@ -19,8 +19,10 @@
|
||||
package com.sadellie.unitto
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.navigation.NavHostController
|
||||
import androidx.navigation.compose.NavHost
|
||||
import androidx.navigation.compose.composable
|
||||
import com.sadellie.unitto.feature.converter.MainViewModel
|
||||
import com.sadellie.unitto.feature.converter.navigation.converterRoute
|
||||
import com.sadellie.unitto.feature.converter.navigation.converterScreen
|
||||
@ -28,11 +30,13 @@ import com.sadellie.unitto.feature.settings.SettingsViewModel
|
||||
import com.sadellie.unitto.feature.settings.navigation.navigateToSettings
|
||||
import com.sadellie.unitto.feature.settings.navigation.navigateToUnitGroups
|
||||
import com.sadellie.unitto.feature.settings.navigation.settingGraph
|
||||
import com.sadellie.unitto.feature.unitslist.LeftSideScreen
|
||||
import com.sadellie.unitto.feature.unitslist.RightSideScreen
|
||||
import com.sadellie.unitto.feature.unitslist.SecondViewModel
|
||||
import com.sadellie.unitto.feature.unitslist.navigation.leftSideScreen
|
||||
import com.sadellie.unitto.feature.unitslist.navigation.leftSideRoute
|
||||
import com.sadellie.unitto.feature.unitslist.navigation.navigateToLeftSide
|
||||
import com.sadellie.unitto.feature.unitslist.navigation.navigateToRightSide
|
||||
import com.sadellie.unitto.feature.unitslist.navigation.rightSideScreen
|
||||
import com.sadellie.unitto.feature.unitslist.navigation.rightSideRoute
|
||||
import io.github.sadellie.themmo.ThemmoController
|
||||
|
||||
@Composable
|
||||
@ -54,23 +58,41 @@ fun UnittoNavigation(
|
||||
viewModel = mainViewModel
|
||||
)
|
||||
|
||||
leftSideScreen(
|
||||
secondViewModel = secondViewModel,
|
||||
unitFrom = mainViewModel.uiStateFlow.value.unitFrom ?: return@NavHost,
|
||||
navigateUp = { navController.navigateUp() },
|
||||
navigateToUnitGroups = { navController.navigateToUnitGroups() },
|
||||
onSelectAction = { mainViewModel.updateUnitFrom(it) }
|
||||
)
|
||||
composable(leftSideRoute) {
|
||||
// Don't do this in your app
|
||||
val mainUiState = mainViewModel.uiStateFlow.collectAsState()
|
||||
val unitFrom = mainUiState.value.unitFrom ?: return@composable
|
||||
// Initial group
|
||||
secondViewModel.setSelectedChip(unitFrom.group, true)
|
||||
|
||||
rightSideScreen(
|
||||
secondViewModel = secondViewModel,
|
||||
unitFrom = mainViewModel.uiStateFlow.value.unitFrom ?: return@NavHost,
|
||||
unitTo = mainViewModel.uiStateFlow.value.unitTo ?: return@NavHost,
|
||||
inputValue = mainViewModel.getInputValue(),
|
||||
navigateUp = { navController.navigateUp() },
|
||||
navigateToUnitGroups = { navController.navigateToUnitGroups() },
|
||||
onSelectAction = { mainViewModel.updateUnitTo(it) }
|
||||
)
|
||||
LeftSideScreen(
|
||||
viewModel = secondViewModel,
|
||||
currentUnit = unitFrom,
|
||||
navigateUp = { navController.navigateUp() },
|
||||
navigateToSettingsAction = { navController.navigateToUnitGroups() },
|
||||
selectAction = { mainViewModel.updateUnitFrom(it) }
|
||||
)
|
||||
}
|
||||
|
||||
composable(rightSideRoute) {
|
||||
// Don't do this in your app
|
||||
val mainUiState = mainViewModel.uiStateFlow.collectAsState()
|
||||
val unitFrom = mainUiState.value.unitFrom ?: return@composable
|
||||
val unitTo = mainUiState.value.unitTo ?: return@composable
|
||||
|
||||
// Initial group
|
||||
secondViewModel.setSelectedChip(unitFrom.group, false)
|
||||
|
||||
RightSideScreen(
|
||||
viewModel = secondViewModel,
|
||||
currentUnit = unitTo,
|
||||
navigateUp = { navController.navigateUp() },
|
||||
navigateToSettingsAction = { navController.navigateToUnitGroups() },
|
||||
selectAction = { mainViewModel.updateUnitTo(it) },
|
||||
inputValue = mainViewModel.getInputValue(),
|
||||
unitFrom = unitFrom
|
||||
)
|
||||
}
|
||||
|
||||
settingGraph(
|
||||
settingsViewModel = settingsViewModel,
|
||||
|
@ -52,7 +52,7 @@ fun UnitSelectionButton(
|
||||
) {
|
||||
Button(
|
||||
modifier = modifier,
|
||||
onClick = { onClick() },
|
||||
onClick = onClick,
|
||||
enabled = label != null,
|
||||
colors = ButtonDefaults.buttonColors(
|
||||
containerColor = MaterialTheme.colorScheme.primaryContainer
|
||||
|
@ -19,12 +19,6 @@
|
||||
package com.sadellie.unitto.feature.unitslist.navigation
|
||||
|
||||
import androidx.navigation.NavController
|
||||
import androidx.navigation.NavGraphBuilder
|
||||
import androidx.navigation.compose.composable
|
||||
import com.sadellie.unitto.data.units.AbstractUnit
|
||||
import com.sadellie.unitto.feature.unitslist.LeftSideScreen
|
||||
import com.sadellie.unitto.feature.unitslist.RightSideScreen
|
||||
import com.sadellie.unitto.feature.unitslist.SecondViewModel
|
||||
|
||||
const val leftSideRoute = "left_side_route"
|
||||
const val rightSideRoute = "right_side_route"
|
||||
@ -36,48 +30,3 @@ fun NavController.navigateToLeftSide() {
|
||||
fun NavController.navigateToRightSide() {
|
||||
navigate(rightSideRoute)
|
||||
}
|
||||
|
||||
fun NavGraphBuilder.leftSideScreen(
|
||||
secondViewModel: SecondViewModel,
|
||||
unitFrom: AbstractUnit,
|
||||
navigateUp: () -> Unit,
|
||||
navigateToUnitGroups: () -> Unit,
|
||||
onSelectAction: (AbstractUnit) -> Unit,
|
||||
) {
|
||||
composable(leftSideRoute) {
|
||||
secondViewModel.setSelectedChip(unitFrom.group, true)
|
||||
|
||||
LeftSideScreen(
|
||||
viewModel = secondViewModel,
|
||||
currentUnit = unitFrom,
|
||||
navigateUp = navigateUp,
|
||||
navigateToSettingsAction = navigateToUnitGroups,
|
||||
selectAction = onSelectAction
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun NavGraphBuilder.rightSideScreen(
|
||||
secondViewModel: SecondViewModel,
|
||||
unitFrom: AbstractUnit,
|
||||
unitTo: AbstractUnit,
|
||||
inputValue: String,
|
||||
navigateUp: () -> Unit,
|
||||
navigateToUnitGroups: () -> Unit,
|
||||
onSelectAction: (AbstractUnit) -> Unit
|
||||
) {
|
||||
composable(rightSideRoute) {
|
||||
// Initial group
|
||||
secondViewModel.setSelectedChip(unitFrom.group, false)
|
||||
|
||||
RightSideScreen(
|
||||
viewModel = secondViewModel,
|
||||
currentUnit = unitTo,
|
||||
navigateUp = navigateUp,
|
||||
navigateToSettingsAction = navigateToUnitGroups,
|
||||
selectAction = onSelectAction,
|
||||
inputValue = inputValue,
|
||||
unitFrom = unitFrom,
|
||||
)
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user