Skip to content

Commit

Permalink
disable the save button when no todo title provided
Browse files Browse the repository at this point in the history
  • Loading branch information
soulesidibe committed Mar 31, 2022
1 parent e7cab7c commit 6635908
Showing 1 changed file with 22 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,14 @@ import androidx.compose.material.icons.filled.Delete
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardType
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.navigation.NavHostController
import com.soulesidibe.todoapp.R
import com.soulesidibe.todoapp.model.TodoViewModel
Expand Down Expand Up @@ -148,7 +151,8 @@ private fun CreateTodo(
onClick,
modifier = Modifier.align(Alignment.End),
todoState,
addOrUpdateState
addOrUpdateState,
textFieldValue.isNotEmpty()
)
}
}
Expand Down Expand Up @@ -199,7 +203,8 @@ private fun CreateTodoSubmitButton(
onClick: () -> Unit,
modifier: Modifier = Modifier,
todoState: ViewState<TodoViewModel>,
addOrUpdateState: ViewState<Boolean>?
addOrUpdateState: ViewState<Boolean>?,
enableButton: Boolean
) {
var loadingState by remember { mutableStateOf(false) }

Expand All @@ -208,12 +213,21 @@ private fun CreateTodoSubmitButton(
else -> false
}

Button(modifier = modifier, onClick = onClick, enabled = !loadingState) {
val label = if (todoState is ViewState.Success) {
stringResource(R.string.btn_edit_todo)
} else {
stringResource(R.string.btn_add_todo)
if (loadingState) {
Text(
text = "Enregistrement en cours...",
modifier = modifier,
style = TextStyle(color = Color.Gray, fontSize = 12.sp)
)
} else {
Button(modifier = modifier, onClick = onClick, enabled = enableButton) {
val label = if (todoState is ViewState.Success) {
stringResource(R.string.btn_edit_todo)
} else {
stringResource(R.string.btn_add_todo)
}
Text(text = label, textAlign = TextAlign.Center)
}
Text(text = label, textAlign = TextAlign.Center)
}

}

0 comments on commit 6635908

Please sign in to comment.