diff --git a/src/main/kotlin/main/Main.kt b/src/main/kotlin/main/Main.kt index 75578b9..fd29300 100644 --- a/src/main/kotlin/main/Main.kt +++ b/src/main/kotlin/main/Main.kt @@ -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(