Files
vyatsu-schedule/app/src/main/java/agzam/vyatsu/ui/home/HomeScreen.kt
T

81 lines
2.9 KiB
Kotlin
Raw Normal View History

2026-09-02 23:47:00 +03:00
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
2026-09-06 12:38:00 +03:00
import agzam.vyatsu.ui.settings.SettingsScreen
import agzam.vyatsu.ui.settings.UpdateViewModel
2026-09-02 23:47:00 +03:00
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
2026-09-06 12:38:00 +03:00
import androidx.compose.material.icons.filled.Settings
2026-09-02 23:47:00 +03:00
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("Звонки"),
2026-09-06 12:38:00 +03:00
BUILDINGS("Корпуса"),
SETTINGS("Настройки")
2026-09-02 23:47:00 +03:00
}
@Composable
fun HomeScreen(
scheduleViewModel: ScheduleViewModel,
2026-09-06 12:38:00 +03:00
updateViewModel: UpdateViewModel,
2026-09-02 23:47:00 +03:00
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
2026-09-06 12:38:00 +03:00
HomeTab.SETTINGS -> Icons.Default.Settings
2026-09-02 23:47:00 +03:00
},
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()
2026-09-06 12:38:00 +03:00
HomeTab.SETTINGS -> SettingsScreen(viewModel = updateViewModel)
2026-09-02 23:47:00 +03:00
}
}
}
}