diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/timer_edit/editScreens/AbstractTimerEditScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/timer_edit/editScreens/AbstractTimerEditScreen.kt index eedaa78..437589b 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/timer_edit/editScreens/AbstractTimerEditScreen.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/timer_edit/editScreens/AbstractTimerEditScreen.kt @@ -1,49 +1,57 @@ package be.ugent.sel.studeez.screens.timer_edit.editScreens +import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material.OutlinedTextField -import androidx.compose.material.Text -import androidx.compose.runtime.Composable +import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import be.ugent.sel.studeez.R import be.ugent.sel.studeez.common.composable.BasicButton import be.ugent.sel.studeez.common.composable.LabelledInputField import be.ugent.sel.studeez.common.ext.basicButton -import be.ugent.sel.studeez.common.ext.fieldModifier import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfo abstract class AbstractTimerEditScreen(private val timerInfo: TimerInfo) { @Composable operator fun invoke(onSaveClick: (TimerInfo) -> Unit) { - // TODO klassen hierarchie voor uistate - // TODO klassen extras implementeren + + var name by remember { mutableStateOf(timerInfo.name) } + var description by remember { mutableStateOf(timerInfo.description) } + + // This shall rerun whenever name and description change + timerInfo.name = name + timerInfo.description = description Column( - modifier = Modifier.fillMaxWidth().fillMaxHeight(), - horizontalAlignment = Alignment.CenterHorizontally + verticalArrangement = Arrangement.SpaceBetween, + modifier = Modifier.fillMaxHeight().verticalScroll(rememberScrollState()), ) { + Column( + modifier = Modifier.fillMaxWidth(), + horizontalAlignment = Alignment.CenterHorizontally + ) { - // Fields that every timer shares (ommited id) - LabelledInputField( - value = timerInfo.name, - onNewValue = {}, - label = R.string.name - ) - LabelledInputField( - value = timerInfo.description, - onNewValue = {}, - label = R.string.description, - singleLine = false - ) + // Fields that every timer shares (ommited id) + LabelledInputField( + value = name, + onNewValue = { name = it }, + label = R.string.name + ) + LabelledInputField( + value = description, + onNewValue = { description = it }, + label = R.string.description, + singleLine = false + ) - ExtraFields() + ExtraFields() + } BasicButton(R.string.save, Modifier.basicButton()) { onSaveClick(timerInfo) }