Window size change + snackbar when sending formular

main
Cemal Odabasioglu 2023-12-07 14:58:24 +01:00
parent 9c9906df16
commit 9e407d78cc
1 changed files with 28 additions and 9 deletions

View File

@ -517,7 +517,8 @@ fun resetFields(
@Composable
fun formulairePage(onAnnulerClick: () -> Unit) {
// State to track whether to show the snackbar
val snackbarVisibleState = remember { mutableStateOf(false) }
val ChampsObligatoireSnackbarVisibleState = remember { mutableStateOf(false) }
val ExisteDejaSnackbarVisibleState = remember { mutableStateOf(false) }
val nom = remember { mutableStateOf("") }
val description = remember { mutableStateOf("") }
@ -651,7 +652,16 @@ fun formulairePage(onAnnulerClick: () -> Unit) {
// Validation du formulaire
if (nom.value.isBlank() || contextePrincipal.value.isBlank()) {
// Show the snackbar when validation fails
snackbarVisibleState.value = true
ChampsObligatoireSnackbarVisibleState.value = true
return@Button
}
val listeMots = chargerDonneesDepuisFichier().toMutableList()
// Vérifier si le mot existe déjà dans le glossaire
if (listeMots.any { it.nom.equals(nom.value, ignoreCase = true) }) {
println("Le mot '${nom.value}' existe déjà dans le glossaire. Ajout annulé.")
ExisteDejaSnackbarVisibleState.value = true
return@Button
}
@ -668,9 +678,6 @@ fun formulairePage(onAnnulerClick: () -> Unit) {
ajouterMotAuGlossaire(nouveauMot)
openDialog.value = true
// Réinitialiser les champs après l'ajout
resetFields(nom, description, contextePrincipal, contexte2, lieA, synonyme, antonyme)
},
colors = ButtonDefaults.buttonColors(
backgroundColor = customRedColor,
@ -683,11 +690,11 @@ fun formulairePage(onAnnulerClick: () -> Unit) {
}
// Show the snackbar when the state is true
if (snackbarVisibleState.value) {
if (ChampsObligatoireSnackbarVisibleState.value) {
Snackbar(
modifier = Modifier.padding(16.dp),
action = {
Button(onClick = { snackbarVisibleState.value = false }) {
Button(onClick = { ChampsObligatoireSnackbarVisibleState.value = false }) {
Text("OK")
}
}
@ -695,6 +702,18 @@ fun formulairePage(onAnnulerClick: () -> Unit) {
Text("Les champs 'Mot' et 'Contexte principal' sont obligatoires.")
}
}
if (ExisteDejaSnackbarVisibleState.value) {
Snackbar(
modifier = Modifier.padding(16.dp),
action = {
Button(onClick = { ExisteDejaSnackbarVisibleState.value = false }) {
Text("OK")
}
}
) {
Text("Le mot '${nom.value}' existe déjà dans le glossaire. Ajout annulé.")
}
}
}
}
}
@ -747,8 +766,8 @@ fun main() = application {
placement = WindowPlacement.Floating,
position = WindowPosition(Alignment.Center),
isMinimized = false,
width = 800.dp,
height = 600.dp
width = 1280.dp,
height = 720.dp
)
Window(