diff --git a/app/src/main/java/ru/ulstu/is/airticketrentservice/navigation/BottomBar.kt b/app/src/main/java/ru/ulstu/is/airticketrentservice/navigation/BottomBar.kt index 9bac344..2d9ea6b 100644 --- a/app/src/main/java/ru/ulstu/is/airticketrentservice/navigation/BottomBar.kt +++ b/app/src/main/java/ru/ulstu/is/airticketrentservice/navigation/BottomBar.kt @@ -1,25 +1,18 @@ package ru.ulstu.`is`.airticketrentservice.navigation -import android.content.res.Configuration -import android.os.Build -import androidx.annotation.RequiresApi -import androidx.compose.animation.AnimatedVisibility import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.RowScope -import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Icon -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.NavigationBar -import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -28,21 +21,22 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.colorResource -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.lifecycle.viewmodel.compose.viewModel import androidx.navigation.NavController import androidx.navigation.NavDestination import androidx.navigation.NavDestination.Companion.hierarchy import androidx.navigation.NavGraph.Companion.findStartDestination import androidx.navigation.NavHostController import androidx.navigation.compose.currentBackStackEntryAsState -import androidx.navigation.compose.rememberNavController import ru.ulstu.`is`.airticketrentservice.R -import ru.ulstu.`is`.airticketrentservice.ui.theme.AirTicketRentServiceTheme +import ru.ulstu.`is`.airticketrentservice.viewModel.AppViewModelProvider +import ru.ulstu.`is`.airticketrentservice.viewModel.CurrentUserViewModel @Composable -fun BottomBar(navController: NavHostController){ +fun BottomBar(navController: NavHostController, currentUserViewModel: CurrentUserViewModel = viewModel(factory = AppViewModelProvider.Factory)){ val screens = listOf( BottomBarScreen.MainPage, BottomBarScreen.Profile, @@ -65,11 +59,14 @@ fun BottomBar(navController: NavHostController){ .clip(shape = RoundedCornerShape(20.dp)) ) { screens.forEach { screen -> - AddItem( - screen = screen, - currentDestination = currentDestination, - navController = navController - ) + currentUserViewModel.user?.role?.let { + AddItem( + screen = screen, + currentDestination = currentDestination, + navController = navController, + userRole = it + ) + } } } } @@ -80,34 +77,37 @@ fun BottomBar(navController: NavHostController){ fun RowScope.AddItem( screen: BottomBarScreen, currentDestination: NavDestination?, - navController: NavController + navController: NavController, + userRole: String ){ + val isAdmin = userRole == "Admin" val selected = currentDestination?.hierarchy?.any { it.route == screen.route } == true - val background = if (selected) Color(0xFFFFFFFF) else Color.Transparent - - - Box( - modifier = Modifier - .height(40.dp) - .clip(CircleShape) - .background(background) - .clickable(onClick = { - navController.navigate(screen.route) { - popUpTo(navController.graph.findStartDestination().id) - launchSingleTop = true - } - }) - ) { - Row( - modifier = Modifier.padding(start = 47.dp, end = 46.dp), - verticalAlignment = Alignment.CenterVertically, + if (isAdmin || screen != BottomBarScreen.Admin) { + Box( + modifier = Modifier + .height(40.dp) + .clip(CircleShape) + .background(background) + .clickable(onClick = { + navController.navigate(screen.route) { + popUpTo(navController.graph.findStartDestination().id) + launchSingleTop = true + } + }) ) { - Icon( - imageVector = screen.icon, - contentDescription = "icon", - tint = Color.DarkGray - ) + Row( + modifier = Modifier.padding(start = 47.dp, end = 46.dp, top = 10.dp), + verticalAlignment = Alignment.CenterVertically, + ) { + Icon( + imageVector = screen.icon, + contentDescription = "icon", + tint = Color.DarkGray + ) + } } + } else { + Text(text = "Недостаточно прав", fontSize = 8.sp, modifier = Modifier.fillMaxWidth().padding(top = 10.dp)) } } \ No newline at end of file diff --git a/app/src/main/java/ru/ulstu/is/airticketrentservice/navigation/MainNavbar.kt b/app/src/main/java/ru/ulstu/is/airticketrentservice/navigation/MainNavbar.kt deleted file mode 100644 index 76ff5fa..0000000 --- a/app/src/main/java/ru/ulstu/is/airticketrentservice/navigation/MainNavbar.kt +++ /dev/null @@ -1,362 +0,0 @@ -package ru.ulstu.`is`.airticketrentservice.navigation - -import android.annotation.SuppressLint -import android.os.Build -import androidx.annotation.RequiresApi -import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.ArrowBack -import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton -import androidx.compose.material3.NavigationBar -import androidx.compose.material3.NavigationBarItem -import androidx.compose.material3.NavigationBarItemDefaults -import androidx.compose.material3.Scaffold -import androidx.compose.material3.Text -import androidx.compose.material3.TopAppBar -import androidx.compose.material3.TopAppBarDefaults -import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.getValue -import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.runtime.saveable.rememberSaveable -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.colorResource -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.unit.dp -import androidx.lifecycle.ViewModelStore -import androidx.lifecycle.ViewModelStoreOwner -import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner -import androidx.lifecycle.viewmodel.compose.viewModel -import androidx.navigation.NavDestination -import androidx.navigation.NavDestination.Companion.hierarchy -import androidx.navigation.NavGraph.Companion.findStartDestination -import androidx.navigation.NavGraphBuilder -import androidx.navigation.NavHostController -import androidx.navigation.NavType -import androidx.navigation.compose.NavHost -import androidx.navigation.compose.composable -import androidx.navigation.compose.currentBackStackEntryAsState -import androidx.navigation.compose.rememberNavController -import androidx.navigation.navArgument -import androidx.navigation.navigation -import ru.ulstu.`is`.airticketrentservice.screen.RentList -import ru.ulstu.`is`.airticketrentservice.screen.UserEdit -import ru.ulstu.`is`.airticketrentservice.screen.FlightEdit -import ru.ulstu.`is`.airticketrentservice.R -import ru.ulstu.`is`.airticketrentservice.screen.Admin -import ru.ulstu.`is`.airticketrentservice.screen.FlightInfo -import ru.ulstu.`is`.airticketrentservice.screen.FlightList -import ru.ulstu.`is`.airticketrentservice.screen.FoundFlights -import ru.ulstu.`is`.airticketrentservice.screen.LoadScreen -import ru.ulstu.`is`.airticketrentservice.screen.MainPage -import ru.ulstu.`is`.airticketrentservice.screen.MyRents -import ru.ulstu.`is`.airticketrentservice.screen.Profile -import ru.ulstu.`is`.airticketrentservice.screen.RentEdit -import ru.ulstu.`is`.airticketrentservice.screen.TicketEdit -import ru.ulstu.`is`.airticketrentservice.screen.UserList -import ru.ulstu.`is`.airticketrentservice.screen.auth.Login -import ru.ulstu.`is`.airticketrentservice.screen.auth.Registration -import ru.ulstu.`is`.airticketrentservice.viewModel.AppViewModelProvider -import ru.ulstu.`is`.airticketrentservice.viewModel.CurrentUserViewModel -import ru.ulstu.`is`.airticketrentservice.viewModel.FlightEditViewModel -import ru.ulstu.`is`.airticketrentservice.viewModel.FlightListViewModel -import ru.ulstu.`is`.airticketrentservice.viewModel.LoginViewModel -import ru.ulstu.`is`.airticketrentservice.viewModel.RegistrationViewModel -import ru.ulstu.`is`.airticketrentservice.viewModel.RentEditViewModel -import ru.ulstu.`is`.airticketrentservice.viewModel.RentListViewModel -import ru.ulstu.`is`.airticketrentservice.viewModel.TicketEditViewModel -import ru.ulstu.`is`.airticketrentservice.viewModel.UserEditViewModel -import ru.ulstu.`is`.airticketrentservice.viewModel.UserListViewModel - - -//@OptIn(ExperimentalMaterial3Api::class) -//@Composable -//fun Topbar( -// navController: NavHostController, -// currentScreen: Screen? -//) { -// TopAppBar( -// colors = TopAppBarDefaults.topAppBarColors( -// containerColor = Color.Transparent, -// ), -// title = {}, -// navigationIcon = { -// if ( -// navController.previousBackStackEntry != null -// && (currentScreen == null || !currentScreen.showInBottomBar) -// ) { -// IconButton(onClick = { navController.navigateUp() }) { -// Icon( -// imageVector = Icons.Filled.ArrowBack, -// contentDescription = null, -// tint = colorResource(R.color.black) -// ) -// } -// } -// }, -// modifier = Modifier -// .padding(10.dp) -// .clip(RoundedCornerShape(20.dp)) -// ) -//} -// -//@Composable -//fun Navbar( -// navController: NavHostController, -// currentDestination: NavDestination? -//) { -// NavigationBar( -// Modifier -// .padding(10.dp) -// .clip(RoundedCornerShape(20.dp))) { -// Screen.bottomBarItems.forEach { screen -> -// NavigationBarItem( -// colors = NavigationBarItemDefaults.colors(colorResource(R.color.lightBlue)), -// icon = { Icon(screen.icon, contentDescription = null) }, -// label = { Text(stringResource(screen.resourceId)) }, -// selected = currentDestination?.hierarchy?.any { it.route == screen.route } == true, -// onClick = { -// navController.navigate(screen.route) { -// popUpTo(navController.graph.findStartDestination().id) { -// saveState = true -// } -// launchSingleTop = true -// restoreState = true -// } -// } -// ) -// } -// } -//} -// -//const val USERID_ARGUMENT="userId" -//@Composable -//fun RootNavGraph( -// navController: NavHostController, -// registrationViewModel: RegistrationViewModel= viewModel(factory = AppViewModelProvider.Factory), -// loginViewModel: LoginViewModel = viewModel(factory = AppViewModelProvider.Factory), -// currentUserViewModel: CurrentUserViewModel = viewModel(factory = AppViewModelProvider.Factory), -//) { -// NavHost( -// navController = navController, -// route = Graph.ROOT, -// startDestination = Graph.AUTHENTICATION -// ) { -// authNavGraph(navController = navController, registrationViewModel, loginViewModel, currentUserViewModel) -// composable(route=Graph.MAIN, -// arguments = listOf(navArgument(USERID_ARGUMENT){ -// type= NavType.StringType -// })){ -// LoadScreen( -// navController = navController, -// currentUserViewModel = currentUserViewModel -// ) -// } -// } -//} -// -//fun NavGraphBuilder.authNavGraph(navController: NavHostController, registrationViewModel: RegistrationViewModel, loginViewModel: LoginViewModel, currentUserViewModel: CurrentUserViewModel){ -// navigation( -// route=Graph.AUTHENTICATION, -// startDestination = AuthScreen.Login.route -// ){ -// composable(route=AuthScreen.Login.route){ -// Login(navController = navController, Modifier, loginViewModel, currentUserViewModel) -// } -// composable(route=AuthScreen.Registration.route){ -// Registration(navController = navController, Modifier, registrationViewModel, currentUserViewModel) -// } -// } -//} -// -//sealed class AuthScreen(val route: String){ -// object Login : AuthScreen(route = "login") -// object Registration : AuthScreen(route="registration") -//} -// -//@Composable -//fun HomeNavGraph( -// navController: NavHostController, -// currentUserViewModel: CurrentUserViewModel -//) { -// NavHost( -// navController = navController, -// startDestination = Screen.MainPage.route -// ) { -// composable(Screen.MainPage.route) { MainPage(navController) } -// composable(Screen.RentList.route) { RentList(navController) } -// composable(Screen.FlightList.route) { FlightList(navController) } -// composable(Screen.Profile.route) { Profile(navController, currentUserViewModel) } -// composable(Screen.UserList.route) { UserList(navController) } -//// composable(Screen.Login.route) { Login(navController) } -// composable(Screen.MyRents.route) { MyRents(navController) } -//// composable(Screen.Registration.route) { Registration(navController) } -// composable(Screen.Admin.route) { Admin(navController) } -// composable( -// Screen.FlightInfo.route, -// arguments = listOf(navArgument("id") { type = NavType.IntType }) -// ) { -// FlightInfo(navController) -// } -// composable( -// Screen.FoundFlights.route, -// arguments = listOf( -// navArgument("from") { type = NavType.StringType }, -// navArgument("to") { type = NavType.StringType }, -// navArgument("departureDate") { type = NavType.StringType } -// ) -// ) { -// FoundFlights(navController) -// } -// composable( -// Screen.UserEdit.route, -// arguments = listOf(navArgument("id") { type = NavType.IntType }) -// ) { -// UserEdit(navController) -// } -// composable( -// Screen.FlightEdit.route, -// arguments = listOf(navArgument("id") { type = NavType.IntType }) -// ) { -// FlightEdit(navController) -// } -// composable( -// Screen.TicketEdit.route, -// arguments = listOf(navArgument("id") { type = NavType.IntType }) -// ) { -// TicketEdit(navController) -// } -//// composable( -//// Screen.MyRents.route, -//// arguments = listOf(navArgument("id") { type = NavType.IntType }) -//// ) { -//// MyRents(navController) -//// } -// composable( -// Screen.RentEdit.route, -// arguments = listOf(navArgument("id") { type = NavType.IntType }) -// ) { -// RentEdit(navController) -// } -// } -//} -// -//object Graph{ -// const val ROOT="root_graph" -// const val AUTHENTICATION="auth_graph" -// const val MAIN="main_graph/{$USERID_ARGUMENT}" -// fun passUserId(userId: String): String{ -// return "main_graph/$userId" -// } -//} -// -////@RequiresApi(Build.VERSION_CODES.O) -////@Composable -////fun Navhost( -//// navController: NavHostController, -//// innerPadding: PaddingValues, modifier: -//// Modifier = Modifier, -//// currentUserViewModel: CurrentUserViewModel = viewModel(factory = AppViewModelProvider.Factory), -//// loginViewModel: LoginViewModel = viewModel(factory = AppViewModelProvider.Factory), -//// registrationViewModel: RegistrationViewModel = viewModel(factory = AppViewModelProvider.Factory), -////) { -//// NavHost( -//// navController, -//// startDestination = Graph.AUTHENTICATION, -//// modifier.padding(innerPadding), -//// route = Graph.ROOT -//// ) { -//// authNavGraph(navController=navController,registrationViewModel,loginViewModel,currentUserViewModel) -//// composable(route=Graph.MAIN, -//// arguments = listOf(navArgument(USERID_ARGUMENT){ -//// type= NavType.StringType -//// }) -////// composable(Screen.RentList.route) { RentList(navController) } -////// composable(Screen.FlightList.route) { FlightList(navController) } -////// composable(Screen.Profile.route) { Profile(navController) } -////// composable(Screen.UserList.route) { UserList(navController) } -////// composable(Screen.Login.route) { Login(navController) } -////// composable(Screen.MyRents.route) { MyRents(navController) } -////// composable(Screen.Registration.route) { Registration(navController) } -////// composable(Screen.MainPage.route) { MainPage(navController) } -////// composable(Screen.Admin.route) { Admin(navController) } -////// composable( -////// Screen.TicketEdit.route, -////// arguments = listOf(navArgument("id") { type = NavType.IntType }) -////// ) { -////// TicketEdit(navController) -////// } -////// composable( -////// Screen.FlightInfo.route, -////// arguments = listOf(navArgument("id") { type = NavType.IntType }) -////// ) { -////// FlightInfo(navController) -////// } -////// composable( -////// Screen.FoundFlights.route, -////// arguments = listOf( -////// navArgument("from") { type = NavType.StringType }, -////// navArgument("to") { type = NavType.StringType }, -////// navArgument("departureDate") { type = NavType.StringType } -////// ) -////// ) { -////// FoundFlights(navController) -////// } -////// composable( -////// Screen.UserEdit.route, -////// arguments = listOf(navArgument("id") { type = NavType.IntType }) -////// ) { -////// UserEdit(navController) -////// } -////// composable( -////// Screen.FlightEdit.route, -////// arguments = listOf(navArgument("id") { type = NavType.IntType }) -////// ) { -////// FlightEdit(navController) -////// } -//////// composable( -//////// Screen.MyRents.route, -//////// arguments = listOf(navArgument("id") { type = NavType.IntType }) -//////// ) { -//////// MyRents(navController) -//////// } -////// composable( -////// Screen.RentEdit.route, -////// arguments = listOf(navArgument("id") { type = NavType.IntType }) -////// ) { -////// RentEdit(navController) -////// } -//// } -////} -// -//@SuppressLint("UnusedMaterial3ScaffoldPaddingParameter") -//@RequiresApi(Build.VERSION_CODES.O) -//@Composable -//fun MainNavbar() { -// val navController = rememberNavController() -// val navBackStackEntry by navController.currentBackStackEntryAsState() -// val currentDestination = navBackStackEntry?.destination -// val currentScreen = currentDestination?.route?.let { Screen.getItem(it) } -// val registrationViewModel: RegistrationViewModel= viewModel(factory = AppViewModelProvider.Factory) -// val loginViewModel: LoginViewModel = viewModel(factory = AppViewModelProvider.Factory) -// val currentUserViewModel: CurrentUserViewModel = viewModel(factory = AppViewModelProvider.Factory) -// -// Scaffold( -// topBar = { -// Topbar(navController, currentScreen) -// }, -// bottomBar = { -// if (currentScreen == null || currentScreen.showInBottomBar) { -// Navbar(navController, currentDestination) -// } -// } -// ) { -// RootNavGraph(navController, registrationViewModel, loginViewModel, currentUserViewModel) -// } -//} diff --git a/app/src/main/java/ru/ulstu/is/airticketrentservice/navigation/Screen.kt b/app/src/main/java/ru/ulstu/is/airticketrentservice/navigation/Screen.kt deleted file mode 100644 index 34c6bef..0000000 --- a/app/src/main/java/ru/ulstu/is/airticketrentservice/navigation/Screen.kt +++ /dev/null @@ -1,76 +0,0 @@ -package ru.ulstu.`is`.airticketrentservice.navigation - -import androidx.annotation.StringRes -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.AccountCircle -import androidx.compose.material.icons.filled.AdminPanelSettings -import androidx.compose.material.icons.filled.Favorite -import androidx.compose.material.icons.filled.Search -import androidx.compose.ui.graphics.vector.ImageVector -import ru.ulstu.`is`.airticketrentservice.R - -//enum class Screen( -// val route: String, -// @StringRes val resourceId: Int, -// val icon: ImageVector = Icons.Filled.Favorite, -// val showInBottomBar: Boolean = true -//) { -// Admin( -// "admin", R.string.rent_view_title, Icons.Filled.AdminPanelSettings -// ), -// FlightEdit( -// "flight-edit/{id}", R.string.ticket_view_title, showInBottomBar = false -// ), -// FlightInfo( -// "flight-info/{id}", R.string.ticket_view_title, showInBottomBar = false -// ), -// FlightList( -// "flight-list", R.string.ticket_main_title, showInBottomBar = false -// ), -// FoundFlights( -// "found-flights/{from}-{to}-{departureDate}", R.string.ticket_main_title, showInBottomBar = false -// ), -// MainPage( -// "main", R.string.rent_view_title, Icons.Filled.Search -// ), -// MyRents( -// "my-rents", R.string.ticket_view_title, showInBottomBar = false -// ), -// Profile( -// "profile", R.string.rent_view_title, Icons.Filled.AccountCircle -// ), -// RentEdit( -// "rent-edit/{id}", R.string.ticket_view_title, showInBottomBar = false -// ), -// RentList( -// "rent-list", R.string.ticket_main_title, showInBottomBar = false -// ), -// TicketEdit( -// "ticket-edit/{id}", R.string.ticket_view_title, showInBottomBar = false -// ), -// UserEdit( -// "user-edit/{id}", R.string.ticket_view_title, showInBottomBar = false -// ), -// UserList( -// "user-list", R.string.ticket_main_title, showInBottomBar = false -// ), -// Login( -// "login", R.string.rent_view_title, showInBottomBar = false -// ), -// Registration( -// "registration", R.string.rent_view_title, showInBottomBar = false -// ); -// -// companion object { -// val bottomBarItems = listOf( -// MainPage, -// Profile, -// Admin -// ) -// -// fun getItem(route: String): Screen? { -// val findRoute = route.split("/").first() -// return values().find { value -> value.route.startsWith(findRoute) } -// } -// } -//} \ No newline at end of file diff --git a/app/src/main/java/ru/ulstu/is/airticketrentservice/navigation/TopBar.kt b/app/src/main/java/ru/ulstu/is/airticketrentservice/navigation/TopBar.kt deleted file mode 100644 index b03cf03..0000000 --- a/app/src/main/java/ru/ulstu/is/airticketrentservice/navigation/TopBar.kt +++ /dev/null @@ -1,49 +0,0 @@ -package ru.ulstu.`is`.airticketrentservice.navigation - -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.ArrowBack -import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton -import androidx.compose.material3.TopAppBar -import androidx.compose.material3.TopAppBarDefaults -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.colorResource -import androidx.compose.ui.unit.dp -import androidx.navigation.NavHostController -import ru.ulstu.`is`.airticketrentservice.R - -//@OptIn(ExperimentalMaterial3Api::class) -//@Composable -//fun TopBar(navController: NavHostController, -// currentScreen: BottomBarScreen?) { -// TopAppBar( -// colors = TopAppBarDefaults.topAppBarColors( -// containerColor = Color.Transparent, -// ), -// title = {}, -// actions = {}, -// navigationIcon = { -// if ( -// navController.previousBackStackEntry != null -// && (currentScreen == null) -// ) { -// IconButton(onClick = { navController.navigateUp() }) { -// Icon( -// imageVector = Icons.Filled.ArrowBack, -// contentDescription = null, -// tint = colorResource(R.color.black) -// ) -// } -// } -// }, -// modifier = Modifier -// .padding(10.dp) -// .clip(RoundedCornerShape(20.dp)) -// ) -//} diff --git a/app/src/main/java/ru/ulstu/is/airticketrentservice/screen/MainPage.kt b/app/src/main/java/ru/ulstu/is/airticketrentservice/screen/MainPage.kt index 25bc60e..2f49b6f 100644 --- a/app/src/main/java/ru/ulstu/is/airticketrentservice/screen/MainPage.kt +++ b/app/src/main/java/ru/ulstu/is/airticketrentservice/screen/MainPage.kt @@ -229,7 +229,7 @@ fun LoadScreen(navController: NavHostController = rememberNavController(), rentListViewModel: RentListViewModel = viewModel(factory = AppViewModelProvider.Factory) ){ Scaffold( - bottomBar = {BottomBar(navController = navController) }, + bottomBar = {BottomBar(navController = navController, currentUserViewModel) }, ) { Modifier .padding(it)