Update newGlossary View
parent
e331578e01
commit
29368a1688
|
@ -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<Glossary>()) }
|
||||
|
||||
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(
|
||||
|
|
Loading…
Reference in New Issue