Trim labelname upon creation

This commit is contained in:
Remy Chantenay
2023-10-14 12:57:35 +02:00
parent 8f24f17da8
commit 668485ba15
2 changed files with 9 additions and 9 deletions

View File

@ -220,12 +220,12 @@ class LabelChipView(label: SavedItemLabel) : Chip(label.name) {
val label = label
}
fun findOrCreateLabel(labelsViewModel: LabelsViewModel, labels: List<SavedItemLabel>, name: TextFieldValue): SavedItemLabel {
val found = labels.find { it.name == name.text }
fun findOrCreateLabel(labelsViewModel: LabelsViewModel, labels: List<SavedItemLabel>, name: String): SavedItemLabel {
val found = labels.find { it.name == name }
if (found != null) {
return found
}
return labelsViewModel.createNewSavedItemLabelWithTemp(name.text, LabelSwatchHelper.random())
return labelsViewModel.createNewSavedItemLabelWithTemp(name, LabelSwatchHelper.random())
}
@Composable
@ -309,7 +309,7 @@ fun LabelsSelectionSheetContent(
LabelChipView(it)
} ?: null
} else {
LabelChipView(findOrCreateLabel(labelsViewModel = labelsViewModel, labels = labels, name = it))
LabelChipView(findOrCreateLabel(labelsViewModel = labelsViewModel, labels = labels, name = it.text))
}
},
chipLeadingIcon = { chip -> CircleIcon(colorHex = chip.label.color) },
@ -349,7 +349,8 @@ fun LabelsSelectionSheetContent(
modifier = Modifier
.fillMaxWidth()
.clickable {
when(labelsViewModel.validateLabelName(filterTextValue.text)) {
val labelName = filterTextValue.text.trim()
when(labelsViewModel.validateLabelName(labelName)) {
LabelsViewModel.Error.LabelNameTooLong -> {
Toast.makeText(
context,
@ -362,7 +363,7 @@ fun LabelsSelectionSheetContent(
val label = findOrCreateLabel(
labelsViewModel = labelsViewModel,
labels = labels,
name = filterTextValue
name = labelName
)
state.addChip(LabelChipView(label))
@ -379,7 +380,7 @@ fun LabelsSelectionSheetContent(
contentDescription = null,
modifier = Modifier.padding(end = 8.dp)
)
Text(text = stringResource(R.string.label_selection_sheet_text_create, filterTextValue.text))
Text(text = stringResource(R.string.label_selection_sheet_text_create, filterTextValue.text.trim()))
}
}

View File

@ -36,8 +36,7 @@ class LabelsViewModel @Inject constructor(
* @return null if valid, [Error] otherwise.
*/
fun validateLabelName(labelName: String): Error? {
val trimmedName = labelName.trim()
if (trimmedName.count() > labelNameMaxLength) {
if (labelName.count() > labelNameMaxLength) {
return Error.LabelNameTooLong
}