@@ -11,6 +11,9 @@ import androidx.compose.material.icons.outlined.Favorite
1111import androidx.compose.material3.*
1212import androidx.compose.runtime.*
1313import androidx.compose.ui.Modifier
14+ import androidx.navigation.NavController
15+ import androidx.navigation.NavHostController
16+ import androidx.navigation.compose.rememberNavController
1417import bluevelvet.composents.example.activity.auth.AuthActivity
1518import bluevelvet.composents.example.core.createJob
1619import bluevelvet.composents.foundation.*
@@ -23,6 +26,7 @@ import bluevelvet.composents.foundation.menu.ComposentsMenuItem
2326import bluevelvet.composents.foundation.menu.ComposentsMenuItemType
2427import bluevelvet.composents.ui.navigation.ComposentsDrawerMenu
2528import bluevelvet.composents.ui.navigation.ComposentsTopAppBar
29+ import kotlinx.coroutines.CoroutineScope
2630import kotlinx.coroutines.delay
2731
2832class HomeActivity : ComponentActivity () {
@@ -32,17 +36,26 @@ class HomeActivity : ComponentActivity() {
3236
3337 setContent {
3438 ComposentsExampleTheme {
35- DrawerMenuLayout ()
39+ val navController = rememberNavController()
40+ val coroutineScope = rememberCoroutineScope()
41+
42+ DrawerMenuLayout (
43+ navController = navController,
44+ coroutineScope = coroutineScope
45+ )
3646 // AppbarMenuLayout()
3747 }
3848 }
3949 }
4050
4151 @Composable
42- private fun DrawerMenuLayout () {
43- val drawerHomeMenuItem = ComposentsMenuItem (title = " Home" , icon = Icons .Filled .Home , id = " home" )
44- val drawerInboxMenuItem = ComposentsMenuItem (title = " Inbox" , icon = Icons .Filled .Inbox , id = " inbox" , badgeCount = 4 )
45- val drawerSearchMenuItem = ComposentsMenuItem (title = " Search" , icon = Icons .Filled .Search , id = " search" )
52+ private fun DrawerMenuLayout (
53+ navController : NavHostController ,
54+ coroutineScope : CoroutineScope ,
55+ ) {
56+ val drawerHomeMenuItem = ComposentsMenuItem (title = " Home" , icon = Icons .Filled .Home , id = Destinations .HOME )
57+ val drawerInboxMenuItem = ComposentsMenuItem (title = " Inbox" , icon = Icons .Filled .Inbox , id = Destinations .INBOX , badgeCount = 4 )
58+ val drawerSearchMenuItem = ComposentsMenuItem (title = " Search" , icon = Icons .Filled .Search , id = Destinations .SEARCH )
4659 val drawerExitMenuItem = ComposentsMenuItem (title = " Logout" , icon = Icons .Filled .ExitToApp , id = " logout" )
4760 val drawerMenuItems = listOf (drawerHomeMenuItem, drawerInboxMenuItem, drawerSearchMenuItem, drawerExitMenuItem)
4861
@@ -53,10 +66,22 @@ class HomeActivity : ComponentActivity() {
5366 drawerHeadline = " Choose an item" ,
5467 menuItems = drawerMenuItems,
5568 selectedItemId = selectedDrawerMenuItem.id,
69+ coroutineScope = coroutineScope,
5670 onMenuItemSelected = {
57- selectedDrawerMenuItem = it
71+ if (it.id == drawerExitMenuItem.id) {
72+ // TODO: Log out the user
73+ } else {
74+ selectedDrawerMenuItem = it
75+ navController.navigate(it.id)
76+ }
5877 },
5978 ) {
79+ HomeNavGraph (
80+ navController = navController,
81+ selectedDrawerItem = selectedDrawerMenuItem
82+ )
83+
84+ /* You also can use this approach instead of using NavHostGraph
6085 when(selectedDrawerMenuItem.id) {
6186 drawerHomeMenuItem.id -> HomeScreen()
6287 drawerInboxMenuItem.id -> InboxScreen()
@@ -65,6 +90,7 @@ class HomeActivity : ComponentActivity() {
6590 HomeScreen()
6691 }
6792 }
93+ */
6894 }
6995 }
7096
0 commit comments