1
1
package com.yogeshpaliyal.keypass.ui.nav.components
2
2
3
+ import androidx.compose.foundation.selection.selectable
3
4
import 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
4
8
import 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
7
11
import androidx.compose.material3.FloatingActionButton
8
12
import androidx.compose.material3.Icon
9
13
import androidx.compose.material3.IconButton
14
+ import androidx.compose.material3.IconButtonDefaults
15
+ import androidx.compose.material3.IconToggleButton
10
16
import androidx.compose.material3.MaterialTheme
11
17
import androidx.compose.runtime.Composable
12
18
import androidx.compose.runtime.getValue
@@ -17,36 +23,59 @@ import com.yogeshpaliyal.keypass.ui.commonComponents.DefaultBottomAppBar
17
23
import com.yogeshpaliyal.keypass.ui.redux.actions.BottomSheetAction
18
24
import com.yogeshpaliyal.keypass.ui.redux.actions.NavigationAction
19
25
import com.yogeshpaliyal.keypass.ui.redux.states.AccountDetailState
26
+ import com.yogeshpaliyal.keypass.ui.redux.states.HomeState
20
27
import com.yogeshpaliyal.keypass.ui.redux.states.KeyPassState
28
+ import com.yogeshpaliyal.keypass.ui.redux.states.ScreenState
21
29
import com.yogeshpaliyal.keypass.ui.redux.states.SettingsState
22
30
import org.reduxkotlin.compose.rememberDispatcher
23
31
import org.reduxkotlin.compose.selectState
24
32
33
+
34
+
35
+
25
36
@Composable
26
37
fun 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
28
40
val dispatchAction = rememberDispatcher()
29
41
30
42
if (! showMainBottomAppBar) {
31
43
return
32
44
}
33
45
34
46
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
+
35
61
IconButton (onClick = {
36
62
dispatchAction(BottomSheetAction .HomeNavigationMenu (true ))
37
63
}) {
38
64
Icon (
39
- painter = rememberVectorPainter(image = Icons .Rounded .Menu ),
65
+ painter = rememberVectorPainter(image = Icons .Outlined .Menu ),
40
66
contentDescription = " Menu" ,
41
67
tint = MaterialTheme .colorScheme.onSurface
42
68
)
43
69
}
44
70
45
- IconButton (onClick = {
71
+ IconToggleButton (colors = IconButtonDefaults .iconToggleButtonColors(
72
+ checkedContainerColor = MaterialTheme .colorScheme.primaryContainer,
73
+ checkedContentColor = MaterialTheme .colorScheme.onPrimaryContainer
74
+ ), checked = currentScreen is SettingsState , onCheckedChange = {
46
75
dispatchAction(NavigationAction (SettingsState ))
47
76
}) {
48
77
Icon (
49
- painter = rememberVectorPainter(image = Icons .Rounded .Settings ),
78
+ painter = rememberVectorPainter(image = Icons .Outlined .Settings ),
50
79
contentDescription = " Settings" ,
51
80
tint = MaterialTheme .colorScheme.onSurface
52
81
)
0 commit comments