11package com.yogeshpaliyal.keypass.ui.nav.components
22
3+ import androidx.compose.foundation.selection.selectable
34import androidx.compose.material.icons.Icons
5+ import androidx.compose.material.icons.outlined.Home
6+ import androidx.compose.material.icons.outlined.Menu
7+ import androidx.compose.material.icons.outlined.Settings
48import androidx.compose.material.icons.rounded.Add
5- import androidx.compose.material.icons.rounded.Menu
6- import androidx.compose.material.icons.rounded.Settings
9+ import androidx.compose.material3.Button
10+ import androidx.compose.material3.ButtonDefaults
711import androidx.compose.material3.FloatingActionButton
812import androidx.compose.material3.Icon
913import androidx.compose.material3.IconButton
14+ import androidx.compose.material3.IconButtonDefaults
15+ import androidx.compose.material3.IconToggleButton
1016import androidx.compose.material3.MaterialTheme
1117import androidx.compose.runtime.Composable
1218import androidx.compose.runtime.getValue
@@ -17,36 +23,59 @@ import com.yogeshpaliyal.keypass.ui.commonComponents.DefaultBottomAppBar
1723import com.yogeshpaliyal.keypass.ui.redux.actions.BottomSheetAction
1824import com.yogeshpaliyal.keypass.ui.redux.actions.NavigationAction
1925import com.yogeshpaliyal.keypass.ui.redux.states.AccountDetailState
26+ import com.yogeshpaliyal.keypass.ui.redux.states.HomeState
2027import com.yogeshpaliyal.keypass.ui.redux.states.KeyPassState
28+ import com.yogeshpaliyal.keypass.ui.redux.states.ScreenState
2129import com.yogeshpaliyal.keypass.ui.redux.states.SettingsState
2230import org.reduxkotlin.compose.rememberDispatcher
2331import org.reduxkotlin.compose.selectState
2432
33+
34+
35+
2536@Composable
2637fun KeyPassBottomBar () {
27- val showMainBottomAppBar by selectState<KeyPassState , Boolean > { this .currentScreen.showMainBottomAppBar }
38+ val currentScreen: ScreenState by selectState<KeyPassState , ScreenState > { this .currentScreen }
39+ val showMainBottomAppBar = currentScreen.showMainBottomAppBar
2840 val dispatchAction = rememberDispatcher()
2941
3042 if (! showMainBottomAppBar) {
3143 return
3244 }
3345
3446 DefaultBottomAppBar (showBackButton = false , extraAction = {
47+
48+ IconToggleButton (colors = IconButtonDefaults .iconToggleButtonColors(
49+ checkedContainerColor = MaterialTheme .colorScheme.primaryContainer,
50+ checkedContentColor = MaterialTheme .colorScheme.onPrimaryContainer
51+ ), checked = currentScreen is HomeState , onCheckedChange = {
52+ dispatchAction(NavigationAction (HomeState (), true ))
53+ }) {
54+ Icon (
55+ painter = rememberVectorPainter(image = Icons .Outlined .Home ),
56+ contentDescription = " Home" ,
57+ tint = MaterialTheme .colorScheme.onSurface
58+ )
59+ }
60+
3561 IconButton (onClick = {
3662 dispatchAction(BottomSheetAction .HomeNavigationMenu (true ))
3763 }) {
3864 Icon (
39- painter = rememberVectorPainter(image = Icons .Rounded .Menu ),
65+ painter = rememberVectorPainter(image = Icons .Outlined .Menu ),
4066 contentDescription = " Menu" ,
4167 tint = MaterialTheme .colorScheme.onSurface
4268 )
4369 }
4470
45- IconButton (onClick = {
71+ IconToggleButton (colors = IconButtonDefaults .iconToggleButtonColors(
72+ checkedContainerColor = MaterialTheme .colorScheme.primaryContainer,
73+ checkedContentColor = MaterialTheme .colorScheme.onPrimaryContainer
74+ ), checked = currentScreen is SettingsState , onCheckedChange = {
4675 dispatchAction(NavigationAction (SettingsState ))
4776 }) {
4877 Icon (
49- painter = rememberVectorPainter(image = Icons .Rounded .Settings ),
78+ painter = rememberVectorPainter(image = Icons .Outlined .Settings ),
5079 contentDescription = " Settings" ,
5180 tint = MaterialTheme .colorScheme.onSurface
5281 )
0 commit comments