Skip to content

Commit

Permalink
Simplify BottomSheetNavigation
Browse files Browse the repository at this point in the history
  • Loading branch information
Faltenreich committed Dec 19, 2023
1 parent c8b7638 commit 3bbce6a
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,6 @@ fun MainView(
BottomSheetNavigation(
bottomSheetState = bottomSheetState,
onDismissRequest = { openBottomSheet = false },
onIntent = navigationViewModel::dispatchIntent,
isActive = navigationViewModel::isNavigatedTo,
)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import androidx.compose.ui.Modifier
import com.faltenreich.diaguard.AppTheme
import com.faltenreich.diaguard.MR
import com.faltenreich.diaguard.navigation.NavigationIntent
import com.faltenreich.diaguard.navigation.NavigationViewModel
import com.faltenreich.diaguard.navigation.screen.DashboardScreen
import com.faltenreich.diaguard.navigation.screen.ExportFormScreen
import com.faltenreich.diaguard.navigation.screen.FoodListScreen
Expand All @@ -17,18 +18,17 @@ import com.faltenreich.diaguard.navigation.screen.PreferenceListScreen
import com.faltenreich.diaguard.navigation.screen.Screen
import com.faltenreich.diaguard.navigation.screen.StatisticScreen
import com.faltenreich.diaguard.navigation.screen.TimelineScreen
import com.faltenreich.diaguard.shared.di.inject
import com.faltenreich.diaguard.shared.view.BottomSheet
import com.faltenreich.diaguard.shared.view.BottomSheetState
import kotlinx.coroutines.launch
import kotlin.reflect.KClass

@Composable
fun BottomSheetNavigation(
bottomSheetState: BottomSheetState,
onDismissRequest: () -> Unit,
onIntent: (NavigationIntent) -> Unit,
isActive: (KClass<out Screen>) -> Boolean,
modifier: Modifier = Modifier,
viewModel: NavigationViewModel = inject(),
) {
BottomSheet(
onDismissRequest = onDismissRequest,
Expand All @@ -38,52 +38,52 @@ fun BottomSheetNavigation(
val scope = rememberCoroutineScope()
val navigateTo = { screen: Screen, clearBackStack: Boolean ->
scope.launch {
onIntent(NavigationIntent.NavigateTo(screen, clearBackStack))
viewModel.dispatchIntent(NavigationIntent.NavigateTo(screen, clearBackStack))
bottomSheetState.hide()
}.invokeOnCompletion { onDismissRequest() }
}
Column {
BottomSheetNavigationItem(
label = MR.strings.dashboard,
icon = MR.images.ic_dashboard,
isActive = isActive(DashboardScreen::class),
isActive = viewModel.isNavigatedTo(DashboardScreen::class),
onClick = { navigateTo(DashboardScreen, true) },
)
BottomSheetNavigationItem(
label = MR.strings.timeline,
icon = MR.images.ic_timeline,
isActive = isActive(TimelineScreen::class),
isActive = viewModel.isNavigatedTo(TimelineScreen::class),
onClick = { navigateTo(TimelineScreen(), true) },
)
BottomSheetNavigationItem(
label = MR.strings.log,
icon = MR.images.ic_log,
isActive = isActive(LogScreen::class),
isActive = viewModel.isNavigatedTo(LogScreen::class),
onClick = { navigateTo(LogScreen(), true) },
)
Divider(modifier = Modifier.padding(vertical = AppTheme.dimensions.padding.P_2))
BottomSheetNavigationItem(
label = MR.strings.food,
icon = null,
isActive = isActive(FoodListScreen::class),
isActive = viewModel.isNavigatedTo(FoodListScreen::class),
onClick = { navigateTo(FoodListScreen(), false) },
)
BottomSheetNavigationItem(
label = MR.strings.statistic,
icon = null,
isActive = isActive(StatisticScreen::class),
isActive = viewModel.isNavigatedTo(StatisticScreen::class),
onClick = { navigateTo(StatisticScreen, false) },
)
BottomSheetNavigationItem(
label = MR.strings.export,
icon = null,
isActive = isActive(ExportFormScreen::class),
isActive = viewModel.isNavigatedTo(ExportFormScreen::class),
onClick = { navigateTo(ExportFormScreen, false) },
)
BottomSheetNavigationItem(
label = MR.strings.preferences,
icon = null,
isActive = isActive(PreferenceListScreen::class),
isActive = viewModel.isNavigatedTo(PreferenceListScreen::class),
onClick = { navigateTo(PreferenceListScreen(), false) },
)
}
Expand Down

0 comments on commit 3bbce6a

Please sign in to comment.