#110 added extra button in parameters of formscreen

This commit is contained in:
Lukas Barragan Torres 2023-05-10 11:32:08 +02:00
parent d6b2c17f29
commit 9bc64be1ee

View file

@ -3,6 +3,7 @@ package be.ugent.sel.studeez.screens.timer_form
import androidx.annotation.StringRes import androidx.annotation.StringRes
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import be.ugent.sel.studeez.common.composable.DeleteButton
import be.ugent.sel.studeez.common.composable.SecondaryScreenTemplate import be.ugent.sel.studeez.common.composable.SecondaryScreenTemplate
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo
import be.ugent.sel.studeez.R.string as AppText import be.ugent.sel.studeez.R.string as AppText
@ -12,8 +13,16 @@ fun TimerAddRoute(
popUp: () -> Unit, popUp: () -> Unit,
viewModel: TimerFormViewModel viewModel: TimerFormViewModel
) { ) {
TimerFormScreen(popUp = popUp, getTimerInfo = viewModel::getTimerInfo, AppText.add_timer) {
viewModel.saveTimer(it, goBack = popUp)
TimerFormScreen(
popUp = popUp,
getTimerInfo = viewModel::getTimerInfo,
extraButton= { },
AppText.add_timer
) {
viewModel.saveTimer(it, goBack = {popUp(); popUp()})
} }
} }
@ -22,7 +31,20 @@ fun TimerEditRoute(
popUp: () -> Unit, popUp: () -> Unit,
viewModel: TimerFormViewModel viewModel: TimerFormViewModel
) { ) {
TimerFormScreen(popUp = popUp, getTimerInfo = viewModel::getTimerInfo, AppText.edit_timer) {
@Composable
fun deleteButton() {
DeleteButton(text = AppText.delete_subject) {
viewModel.deleteTimer(viewModel.getTimerInfo(), popUp)
}
}
TimerFormScreen(
popUp = popUp,
getTimerInfo = viewModel::getTimerInfo,
extraButton= { deleteButton() },
AppText.edit_timer
) {
viewModel.editTimer(it, goBack = popUp) viewModel.editTimer(it, goBack = popUp)
} }
} }
@ -31,12 +53,13 @@ fun TimerEditRoute(
fun TimerFormScreen( fun TimerFormScreen(
popUp: () -> Unit, popUp: () -> Unit,
getTimerInfo: () -> TimerInfo, getTimerInfo: () -> TimerInfo,
extraButton: @Composable () -> Unit,
@StringRes label: Int, @StringRes label: Int,
onConfirmClick: (TimerInfo) -> Unit onConfirmClick: (TimerInfo) -> Unit
) { ) {
val timerFormScreen = getTimerInfo().accept(GetTimerFormScreen()) val timerFormScreen = getTimerInfo().accept(GetTimerFormScreen())
SecondaryScreenTemplate(title = stringResource(id = label), popUp = popUp) { SecondaryScreenTemplate(title = stringResource(id = label), popUp = popUp) {
timerFormScreen(onConfirmClick) timerFormScreen(onConfirmClick, extraButton)
} }
} }