Skip to content

Commit fb0134d

Browse files
authored
Add autocapitalization settings to multiple login views (#15002)
2 parents 37b3eef + 5661c09 commit fb0134d

File tree

7 files changed

+35
-21
lines changed

7 files changed

+35
-21
lines changed

RELEASE-NOTES.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
*** Use [*****] to indicate smoke tests of all critical flows should be run on the final IPA before release (e.g. major library or OS update).
33
21.7
44
-----
5-
5+
- [x] Now, usernames and emails in text fields across multiple login views are no longer capitalized. [https://github.com/woocommerce/woocommerce-ios/pull/15002]
66

77
21.6
88
-----

WooCommerce/Classes/Authentication/Jetpack Setup/Site Credential Login/SiteCredentialLoginView.swift

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -102,23 +102,25 @@ struct SiteCredentialLoginView: View {
102102
VStack(alignment: .leading, spacing: Constants.fieldVerticalSpacing) {
103103
// Username field.
104104
AuthenticationFormFieldView(viewModel: .init(header: Localization.usernameFieldTitle,
105-
placeholder: Localization.enterUsername,
106-
keyboardType: .default,
107-
text: $viewModel.username,
108-
isSecure: false,
109-
errorMessage: nil,
110-
isFocused: focusedField == .username))
105+
placeholder: Localization.enterUsername,
106+
keyboardType: .default,
107+
text: $viewModel.username,
108+
isSecure: false,
109+
errorMessage: nil,
110+
isFocused: focusedField == .username,
111+
autocapitalization: .none))
111112
.focused($focusedField, equals: .username)
112113
.disabled(viewModel.isLoggingIn)
113114

114115
// Password field.
115116
AuthenticationFormFieldView(viewModel: .init(header: Localization.passwordFieldTitle,
116-
placeholder: Localization.enterPassword,
117-
keyboardType: .default,
118-
text: $viewModel.password,
119-
isSecure: true,
120-
errorMessage: nil,
121-
isFocused: focusedField == .password))
117+
placeholder: Localization.enterPassword,
118+
keyboardType: .default,
119+
text: $viewModel.password,
120+
isSecure: true,
121+
errorMessage: nil,
122+
isFocused: focusedField == .password,
123+
autocapitalization: .none))
122124
.focused($focusedField, equals: .password)
123125
.disabled(viewModel.isLoggingIn)
124126

WooCommerce/Classes/Authentication/WPComLogin/WPCom2FALoginView.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ struct WPCom2FALoginView: View {
7575
text: $viewModel.verificationCode,
7676
isSecure: false,
7777
errorMessage: nil,
78-
isFocused: isFieldFocused
78+
isFocused: isFieldFocused,
79+
autocapitalization: .none
7980
))
8081
.focused($isFieldFocused)
8182

WooCommerce/Classes/Authentication/WPComLogin/WPComEmailLoginView.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ struct WPComEmailLoginView: View {
7979
text: $viewModel.emailAddress,
8080
isSecure: false,
8181
errorMessage: nil,
82-
isFocused: isEmailFieldFocused
82+
isFocused: isEmailFieldFocused,
83+
autocapitalization: .none
8384
))
8485
.focused($isEmailFieldFocused)
8586

WooCommerce/Classes/Authentication/WPComLogin/WPComPasswordLoginView.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,8 @@ struct WPComPasswordLoginView: View {
9090
text: $viewModel.password,
9191
isSecure: true,
9292
errorMessage: nil,
93-
isFocused: isPasswordFieldFocused
93+
isFocused: isPasswordFieldFocused,
94+
autocapitalization: .none
9495
))
9596
.focused($isPasswordFieldFocused)
9697

WooCommerce/Classes/ViewRelated/Authentication/AccountCreationForm.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ struct AccountCreationForm: View {
7070
text: $viewModel.email,
7171
isSecure: false,
7272
errorMessage: viewModel.emailErrorMessage,
73-
isFocused: isFocused))
73+
isFocused: isFocused,
74+
autocapitalization: .none))
7475
.autocorrectionDisabled()
7576
.textInputAutocapitalization(.never)
7677
.focused($isFocused)
@@ -84,7 +85,8 @@ struct AccountCreationForm: View {
8485
text: $viewModel.password,
8586
isSecure: true,
8687
errorMessage: viewModel.passwordErrorMessage,
87-
isFocused: isFocused))
88+
isFocused: isFocused,
89+
autocapitalization: .none))
8890
.autocorrectionDisabled()
8991
.textInputAutocapitalization(.never)
9092
.focused($isFocused)

WooCommerce/Classes/ViewRelated/Authentication/AuthenticationFormFieldView.swift

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ struct AuthenticationFormFieldViewModel {
1616
let errorMessage: String?
1717
/// Whether the content in the text field is focused.
1818
let isFocused: Bool
19+
/// Autocapitalization behavior for the text field.
20+
let autocapitalization: UITextAutocapitalizationType
1921
}
2022

2123
/// A field in the account creation / authentication form.
@@ -50,6 +52,7 @@ struct AuthenticationFormFieldView: View {
5052
SecureField(viewModel.placeholder, text: viewModel.text)
5153
} else {
5254
TextField(viewModel.placeholder, text: viewModel.text)
55+
.autocapitalization(viewModel.autocapitalization)
5356
}
5457
}
5558
.font(.body)
@@ -80,6 +83,7 @@ struct AuthenticationFormFieldView: View {
8083
TextField(viewModel.placeholder, text: viewModel.text)
8184
.textFieldStyle(RoundedBorderTextFieldStyle(focused: viewModel.isFocused))
8285
.keyboardType(viewModel.keyboardType)
86+
.autocapitalization(viewModel.autocapitalization)
8387
}
8488
if let errorMessage = viewModel.errorMessage {
8589
Text(errorMessage)
@@ -105,15 +109,17 @@ struct AccountCreationFormField_Previews: PreviewProvider {
105109
text: .constant(""),
106110
isSecure: false,
107111
errorMessage: nil,
108-
isFocused: true))
112+
isFocused: true,
113+
autocapitalization: .none))
109114
VStack {
110115
AuthenticationFormFieldView(viewModel: .init(header: "Choose a password",
111116
placeholder: "Password",
112117
keyboardType: .default,
113118
text: .constant("wwwwwwwwwwwwwwwwwwwwwwww"),
114119
isSecure: true,
115120
errorMessage: "Too simple",
116-
isFocused: false))
121+
isFocused: false,
122+
autocapitalization: .none))
117123
.environment(\.sizeCategory, .medium)
118124

119125
AuthenticationFormFieldView(viewModel: .init(header: "Choose a password",
@@ -122,7 +128,8 @@ struct AccountCreationFormField_Previews: PreviewProvider {
122128
text: .constant("wwwwwwwwwwwwwwwwwwwwwwww"),
123129
isSecure: true,
124130
errorMessage: "Too simple",
125-
isFocused: false))
131+
isFocused: false,
132+
autocapitalization: .none))
126133
.environment(\.sizeCategory, .extraExtraExtraLarge)
127134
}
128135
}

0 commit comments

Comments
 (0)