now takes viewmodel and open function. Also uses viewmodel functions

This commit is contained in:
lbarraga 2023-04-13 23:58:29 +02:00
parent c0bc4c24ae
commit cee42e7758
4 changed files with 44 additions and 17 deletions

View file

@ -1,4 +1,4 @@
package be.ugent.sel.studeez.common.composable
package be.ugent.sel.studeez.screens.drawer
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
@ -12,16 +12,17 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.ImageVector
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.hilt.navigation.compose.hiltViewModel
import be.ugent.sel.studeez.R
import be.ugent.sel.studeez.resources
import be.ugent.sel.studeez.ui.theme.StudeezTheme
@Composable
fun Drawer(
onLogoutClick: () -> Unit
openAndPopUp: (String, String) -> Unit,
viewModel: DrawerViewModel = hiltViewModel()
) {
Column(modifier = Modifier.fillMaxSize()) {
DrawerEntry(
icon = Icons.Default.Home,
@ -33,26 +34,26 @@ fun Drawer(
icon = ImageVector.vectorResource(id = R.drawable.ic_timer),
text = resources().getString(R.string.timers)
) {
// TODO Go to timers
viewModel.onTimersClick(openAndPopUp)
}
DrawerEntry(
icon = Icons.Default.Settings,
text = resources().getString(R.string.settings)
) {
// TODO Go to settings
viewModel.onSettingsClick(openAndPopUp)
}
DrawerEntry(
icon = ImageVector.vectorResource(id = R.drawable.ic_logout),
text = resources().getString(R.string.log_out)
) {
onLogoutClick()
viewModel.onLogoutClick(openAndPopUp)
}
DrawerEntry(
icon = Icons.Outlined.Info,
text = resources().getString(R.string.about)
) {
// TODO Go to about
viewModel.onAboutClick(openAndPopUp)
}
}
}
@ -78,12 +79,12 @@ fun DrawerEntry(
}
}
@Preview
@Composable
fun DrawerPreview() {
StudeezTheme {
Drawer(
{}
)
}
}
//@Preview
//@Composable
//fun DrawerPreview() {
// StudeezTheme {
// Drawer(
// {}
// )
// }
//}

View file

@ -0,0 +1,22 @@
package be.ugent.sel.studeez.screens.drawer
import be.ugent.sel.studeez.domain.AccountDAO
import be.ugent.sel.studeez.domain.LogService
import be.ugent.sel.studeez.navigation.StudeezDestinations
import be.ugent.sel.studeez.screens.StudeezViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject
@HiltViewModel
class PrimaryScreenViewModel @Inject constructor(
private val accountDAO: AccountDAO,
logService: LogService
) : StudeezViewModel(logService) {
fun onLogoutClick(openAndPopup: (String, String) -> Unit) {
launchCatching {
accountDAO.signOut()
openAndPopup(StudeezDestinations.LOGIN_SCREEN, StudeezDestinations.HOME_SCREEN)
}
}
}

View file

@ -0,0 +1,4 @@
package be.ugent.sel.studeez.screens.navbar
class NavigationBarViewModel {
}