Merge pull request #2901 from remychantenay/ios-label-textfield-lgt-indicator

iOS: Add length indicator to new label textfield
This commit is contained in:
Jackson Harper
2023-10-11 15:49:12 +08:00
committed by GitHub
6 changed files with 15 additions and 1 deletions

View File

@ -116,8 +116,16 @@ struct CreateLabelView: View {
}
.padding(.bottom, 8)
TextField("Label Name", text: $newLabelName)
TextField(LocalText.labelNamePlaceholder, text: $newLabelName)
.textFieldStyle(StandardTextFieldStyle())
.onChange(of: newLabelName) { inputLabelName in
newLabelName = String(inputLabelName.prefix(viewModel.labelNameMaxLength))
}
Text("\(newLabelName.count)/\(viewModel.labelNameMaxLength)")
.font(.caption)
.frame(maxWidth: .infinity, alignment: .trailing)
.foregroundColor(newLabelName.count < viewModel.labelNameMaxLength ? .gray : .red)
ScrollView(.horizontal, showsIndicators: false) {
LazyHGrid(rows: rows, alignment: .top, spacing: 20) {

View File

@ -5,6 +5,8 @@ import SwiftUI
import Views
@MainActor final class LabelsViewModel: ObservableObject {
let labelNameMaxLength = 64
@Published var isLoading = false
@Published var selectedLabels = Set<LinkedItemLabel>()
@Published var unselectedLabels = Set<LinkedItemLabel>()

View File

@ -26,6 +26,7 @@ public enum LocalText {
public static let labelsViewAssignNameColor = localText(key: "labelsViewAssignNameColor")
public static let createLabelMessage = localText(key: "createLabelMessage")
public static let labelsPurposeDescription = localText(key: "labelsPurposeDescription")
public static let labelNamePlaceholder = localText(key: "labelNamePlaceholder")
// Manage Account View
public static let manageAccountDelete = localText(key: "manageAccountDelete")

View File

@ -19,6 +19,7 @@
"labelsViewAssignNameColor" = "Assign a name and color.";
"createLabelMessage" = "Create a new Label";
"labelsPurposeDescription" = "Use labels to create curated collections of links.";
"labelNamePlaceholder" = "Label Name";
// Manage Account View
"manageAccountDelete" = "Delete Account";

View File

@ -19,6 +19,7 @@
"labelsViewAssignNameColor" = "Asigna un nombre y un color.";
"createLabelMessage" = "Crea una nueva Etiqueta";
"labelsPurposeDescription" = "Usa Etiquetas para coleccione de enlaces organizadas.";
"labelNamePlaceholder" = "Nombre de la etiqueta";
// Manage Account View
"manageAccountDelete" = "Borrar Cuenta";

View File

@ -20,6 +20,7 @@
"labelsViewAssignNameColor" = "指定名称和颜色。";
"createLabelMessage" = "创建新标签";
"labelsPurposeDescription" = "使用标签创建精选的链接集合。";
"labelNamePlaceholder" = "标签名称";
// Manage Account View
"manageAccountDelete" = "删除帐户";