package agzam.vyatsu.ui.home import agzam.vyatsu.ui.info.BuildingsScreen import agzam.vyatsu.ui.info.CallsScreen import agzam.vyatsu.ui.schedule.ScheduleScreen import agzam.vyatsu.ui.schedule.ScheduleViewModel import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.DateRange import androidx.compose.material.icons.filled.Home import androidx.compose.material.icons.filled.Info import androidx.compose.material3.Icon import androidx.compose.material3.NavigationBar import androidx.compose.material3.NavigationBarItem import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier private enum class HomeTab(val label: String) { SCHEDULE("Расписание"), CALLS("Звонки"), BUILDINGS("Корпуса") } @Composable fun HomeScreen( scheduleViewModel: ScheduleViewModel, onSwitchGroup: () -> Unit ) { var tab by rememberSaveable { mutableStateOf(HomeTab.SCHEDULE) } Scaffold( bottomBar = { NavigationBar { HomeTab.entries.forEach { t -> NavigationBarItem( selected = tab == t, onClick = { tab = t }, icon = { Icon( imageVector = when (t) { HomeTab.SCHEDULE -> Icons.Default.DateRange HomeTab.CALLS -> Icons.Default.Info HomeTab.BUILDINGS -> Icons.Default.Home }, contentDescription = t.label ) }, label = { Text(t.label) } ) } } } ) { innerPadding -> androidx.compose.foundation.layout.Box( Modifier .fillMaxSize() .padding(innerPadding) ) { when (tab) { HomeTab.SCHEDULE -> ScheduleScreen(viewModel = scheduleViewModel, onSwitchGroup = onSwitchGroup) HomeTab.CALLS -> CallsScreen() HomeTab.BUILDINGS -> BuildingsScreen() } } } }