diff --git a/src/main/kotlin/main/Glossary.kt b/src/main/kotlin/main/Glossary.kt index dc7b86f..2da2859 100644 --- a/src/main/kotlin/main/Glossary.kt +++ b/src/main/kotlin/main/Glossary.kt @@ -136,7 +136,7 @@ fun glossariesPage( Button( onClick = { - currentPage.value = "accueil" + currentPage.value = "projects" }, modifier = Modifier .width(250.dp), @@ -160,64 +160,57 @@ fun newGlossary( val glossaryAlreadyExistsSnackbarVisibleState = remember { mutableStateOf(false) } val invalidCharacterSnackbarVisibleState = remember { mutableStateOf(false) } - var nouveauGlossaireName by remember { mutableStateOf("") } var glossaries by remember { mutableStateOf(emptyList()) } + var nouveauGlossaireName by remember { mutableStateOf("") } + Column( modifier = Modifier.fillMaxSize(), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally ) { + Text("Nom du glossaire", style = MaterialTheme.typography.h5) + + Spacer(modifier = Modifier.height(16.dp)) + TextField( value = nouveauGlossaireName, - onValueChange = { nouveauGlossaireName = it }, singleLine = true, - label = { Text("Nom du nouveau glossaire") }, + onValueChange = { nouveauGlossaireName = it }, + label = { Text("Nom du glossaire") }, + colors = TextFieldDefaults.textFieldColors( + focusedIndicatorColor = customRedColor, + unfocusedIndicatorColor = Color.Gray, + focusedLabelColor = customRedColor + ), modifier = Modifier - .padding(16.dp) + .width(300.dp) .fillMaxWidth() .onKeyEvent { event -> if (event.key == Key.Enter && event.type == KeyEventType.KeyDown) { - // Handle the Enter key event by calling the common function - when { - nouveauGlossaireName.isEmpty() -> { - println("Veuillez saisir un nom pour le nouveau glossaire") - isEmptySnackbarVisibleState.value = true - } - nouveauGlossaireName.contains(" ") -> { - println("Le nom du glossaire ne doit pas contenir d'espace") - containsSpaceSnackbarVisibleState.value = true - } - glossaries.any { it.name == nouveauGlossaireName } -> { - println("Le nom du glossaire existe déjà") - glossaryAlreadyExistsSnackbarVisibleState.value = true - } - !isValidFileName(nouveauGlossaireName) -> { - println("Le nom du glossaire contient des caractères non autorisés") - invalidCharacterSnackbarVisibleState.value = true - } - else -> { - val newGlossary = Glossary(nouveauGlossaireName, "$nouveauGlossaireName.json") - glossaries = glossaries + newGlossary - // create new json file - val newFile = - File(glossaryPath + (appState.selectedProject?.name) + "/" + newGlossary.jsonFilePath) - newFile.createNewFile() - // update glossaries list - glossaries = loadGlossaries(appState.selectedProject!!) - currentPage.value = "glossaires" // Revenir à la liste des glossaires - } + if (nouveauGlossaireName.isEmpty()) { + println("Veuillez saisir un nom pour le nouveau glossaire") + isEmptySnackbarVisibleState.value = true + } else if (nouveauGlossaireName.contains(" ")) { + println("Le nom du glossaire ne doit pas contenir d'espace") + containsSpaceSnackbarVisibleState.value = true + } else if (glossaries.any { it.name == nouveauGlossaireName }) { + println("Le nom du glossaire existe déjà") + glossaryAlreadyExistsSnackbarVisibleState.value = true + } else if (!isValidFileName(nouveauGlossaireName)) { + println("Le nom du glossaire contient des caractères non autorisés") + invalidCharacterSnackbarVisibleState.value = true + } else { + val directory = File("src/main/resources/projects/${appState.selectedProject}/$nouveauGlossaireName") + directory.mkdirs() + println("Project $nouveauGlossaireName created") + currentPage.value = "projects" } true } else { false } - }, - colors = TextFieldDefaults.textFieldColors( - backgroundColor = Color.White, - focusedIndicatorColor = customRedColor, - unfocusedIndicatorColor = Color.Gray - ) + } ) Button(