added timer add route

This commit is contained in:
lbarraga 2023-05-04 22:54:51 +02:00
parent 24fe1b4f78
commit 11e7990ee9

View file

@ -1,4 +1,40 @@
package be.ugent.sel.studeez.screens.timer_add
class TimerAddRoute {
import androidx.compose.runtime.Composable
import androidx.compose.ui.res.stringResource
import be.ugent.sel.studeez.R
import be.ugent.sel.studeez.common.composable.SecondaryScreenTemplate
import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo
import be.ugent.sel.studeez.screens.timer_edit.GetTimerEditScreen
import be.ugent.sel.studeez.screens.timer_edit.TimerEditViewModel
data class TimerEditActions(
val getTimerInfo: () -> TimerInfo,
val saveTimer: (TimerInfo) -> Unit
)
fun getTimerAddActions(
viewModel: TimerEditViewModel,
goBack: () -> Unit
): TimerEditActions {
return TimerEditActions(
getTimerInfo = viewModel::getTimerInfo,
saveTimer = { timerInfo -> viewModel.saveTimer(timerInfo, goBack) }
)
}
@Composable
fun TimerAddRoute(
open: (String) -> Unit,
popUp: () -> Unit,
viewModel: TimerEditViewModel,
) {
val timerEditActions = getTimerAddActions(viewModel, goBack = popUp)
SecondaryScreenTemplate(title = stringResource(id = R.string.edit_timer), popUp = popUp) {
val timerEditScreen = timerEditActions.getTimerInfo().accept(GetTimerEditScreen())
timerEditScreen { timerEditActions.saveTimer(it) }
}
}