Window size change + snackbar when sending formular
parent
9c9906df16
commit
9e407d78cc
|
@ -517,7 +517,8 @@ fun resetFields(
|
||||||
@Composable
|
@Composable
|
||||||
fun formulairePage(onAnnulerClick: () -> Unit) {
|
fun formulairePage(onAnnulerClick: () -> Unit) {
|
||||||
// State to track whether to show the snackbar
|
// 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 nom = remember { mutableStateOf("") }
|
||||||
val description = remember { mutableStateOf("") }
|
val description = remember { mutableStateOf("") }
|
||||||
|
@ -651,7 +652,16 @@ fun formulairePage(onAnnulerClick: () -> Unit) {
|
||||||
// Validation du formulaire
|
// Validation du formulaire
|
||||||
if (nom.value.isBlank() || contextePrincipal.value.isBlank()) {
|
if (nom.value.isBlank() || contextePrincipal.value.isBlank()) {
|
||||||
// Show the snackbar when validation fails
|
// 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
|
return@Button
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -668,9 +678,6 @@ fun formulairePage(onAnnulerClick: () -> Unit) {
|
||||||
ajouterMotAuGlossaire(nouveauMot)
|
ajouterMotAuGlossaire(nouveauMot)
|
||||||
openDialog.value = true
|
openDialog.value = true
|
||||||
|
|
||||||
// Réinitialiser les champs après l'ajout
|
|
||||||
resetFields(nom, description, contextePrincipal, contexte2, lieA, synonyme, antonyme)
|
|
||||||
|
|
||||||
},
|
},
|
||||||
colors = ButtonDefaults.buttonColors(
|
colors = ButtonDefaults.buttonColors(
|
||||||
backgroundColor = customRedColor,
|
backgroundColor = customRedColor,
|
||||||
|
@ -683,11 +690,11 @@ fun formulairePage(onAnnulerClick: () -> Unit) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show the snackbar when the state is true
|
// Show the snackbar when the state is true
|
||||||
if (snackbarVisibleState.value) {
|
if (ChampsObligatoireSnackbarVisibleState.value) {
|
||||||
Snackbar(
|
Snackbar(
|
||||||
modifier = Modifier.padding(16.dp),
|
modifier = Modifier.padding(16.dp),
|
||||||
action = {
|
action = {
|
||||||
Button(onClick = { snackbarVisibleState.value = false }) {
|
Button(onClick = { ChampsObligatoireSnackbarVisibleState.value = false }) {
|
||||||
Text("OK")
|
Text("OK")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -695,6 +702,18 @@ fun formulairePage(onAnnulerClick: () -> Unit) {
|
||||||
Text("Les champs 'Mot' et 'Contexte principal' sont obligatoires.")
|
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,
|
placement = WindowPlacement.Floating,
|
||||||
position = WindowPosition(Alignment.Center),
|
position = WindowPosition(Alignment.Center),
|
||||||
isMinimized = false,
|
isMinimized = false,
|
||||||
width = 800.dp,
|
width = 1280.dp,
|
||||||
height = 600.dp
|
height = 720.dp
|
||||||
)
|
)
|
||||||
|
|
||||||
Window(
|
Window(
|
||||||
|
|
Loading…
Reference in New Issue