Fix TokenStorage stale cache bug and add user-friendly error messages
- Fix TokenStorage.getToken() returning stale cached token after login/logout - Add comprehensive ErrorMessageParser with 80+ error code mappings - Add Suite9 and Suite10 UI test files for E2E integration testing - Fix accessibility identifiers in RegisterView and ResidenceFormView - Fix UITestHelpers logout to target alert button specifically - Update various UI components with proper accessibility identifiers 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -123,16 +123,10 @@
|
||||
"$%@" : {
|
||||
"comment" : "A label displaying the cost of a task. The argument is the cost of the task.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"0" : {
|
||||
|
||||
},
|
||||
"000000" : {
|
||||
"comment" : "A placeholder text for a 6-digit code field.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"0.0" : {
|
||||
|
||||
},
|
||||
"0.00" : {
|
||||
|
||||
@@ -142,6 +136,9 @@
|
||||
},
|
||||
"7-day free trial, then %@" : {
|
||||
|
||||
},
|
||||
"ABC123" : {
|
||||
|
||||
},
|
||||
"Actions" : {
|
||||
"comment" : "A label for the actions menu in the task card.",
|
||||
@@ -164,10 +161,6 @@
|
||||
"comment" : "A description below the image in the \"No properties yet\" view, encouraging the user to add their first property.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Add your first property to start\nmanaging your home with ease" : {
|
||||
"comment" : "A description below an animated house illustration, encouraging users to add their first property.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Already have an account?" : {
|
||||
|
||||
},
|
||||
@@ -327,9 +320,6 @@
|
||||
},
|
||||
"Are you sure you want to remove %@ from this residence?" : {
|
||||
|
||||
},
|
||||
"At least 8 characters" : {
|
||||
|
||||
},
|
||||
"auth_account_info" : {
|
||||
"extractionState" : "manual",
|
||||
@@ -395,6 +385,13 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"auth_already_have_account" : {
|
||||
"comment" : "Text on the \"Already have an account?\" link in the auth register screen. Navigates to the auth login screen.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"auth_creating_account" : {
|
||||
|
||||
},
|
||||
"auth_dont_have_account" : {
|
||||
"extractionState" : "manual",
|
||||
@@ -3061,6 +3058,10 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"auth_sign_in" : {
|
||||
"comment" : "Button text that allows a user to sign in.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"auth_sign_in_subtitle" : {
|
||||
"extractionState" : "manual",
|
||||
"localizations" : {
|
||||
@@ -5243,13 +5244,7 @@
|
||||
"comment" : "The title for the view that shows a user's photo submissions.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Confirm Password" : {
|
||||
|
||||
},
|
||||
"Contains letters" : {
|
||||
|
||||
},
|
||||
"Contains numbers" : {
|
||||
"CONFIRM PASSWORD" : {
|
||||
|
||||
},
|
||||
"Continue with Free" : {
|
||||
@@ -5257,10 +5252,6 @@
|
||||
},
|
||||
"Contractor Imported" : {
|
||||
|
||||
},
|
||||
"Contractors" : {
|
||||
"comment" : "A tab label for the contractors section.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"contractors_add_button" : {
|
||||
"extractionState" : "manual",
|
||||
@@ -8926,8 +8917,8 @@
|
||||
"comment" : "A question displayed below a button in the \"Verify Code\" view, instructing the user to request a new code if they haven't received one.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Documents" : {
|
||||
"comment" : "A label displayed above the list of documents and warranties.",
|
||||
"Docs" : {
|
||||
"comment" : "A label displayed above the documents tab in the main tab view.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"documents_active" : {
|
||||
@@ -16947,9 +16938,8 @@
|
||||
"comment" : "A label for an \"Edit Task\" button.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Email" : {
|
||||
"comment" : "A label displayed above the email text field in the \"Forgot Password?\" view.",
|
||||
"isCommentAutoGenerated" : true
|
||||
"EMAIL" : {
|
||||
|
||||
},
|
||||
"Email Address" : {
|
||||
"comment" : "A label for the user to input their email address.",
|
||||
@@ -17400,6 +17390,9 @@
|
||||
"Joining residence..." : {
|
||||
"comment" : "A message displayed while waiting for the app to join a residence.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Joining..." : {
|
||||
|
||||
},
|
||||
"Let's get you started with some tasks.\nThe more you pick, the more we'll help you remember!" : {
|
||||
|
||||
@@ -17428,7 +17421,7 @@
|
||||
"Need inspiration?" : {
|
||||
|
||||
},
|
||||
"New Password" : {
|
||||
"NEW PASSWORD" : {
|
||||
|
||||
},
|
||||
"No active code" : {
|
||||
@@ -17480,10 +17473,7 @@
|
||||
"comment" : "A label indicating that a user is an owner of a residence.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Password Requirements" : {
|
||||
|
||||
},
|
||||
"Passwords match" : {
|
||||
"PASSWORD REQUIREMENTS" : {
|
||||
|
||||
},
|
||||
"Photo" : {
|
||||
@@ -21545,6 +21535,10 @@
|
||||
"comment" : "A fallback text that appears when the associated residence ID is not found in the user's residences. The placeholder number is replaced with the actual residence ID.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Pros" : {
|
||||
"comment" : "A tab label for the \"Pros\" section in the main tab view.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Quick Start" : {
|
||||
|
||||
},
|
||||
@@ -21569,7 +21563,7 @@
|
||||
|
||||
},
|
||||
"Residences" : {
|
||||
"comment" : "A tab label for the \"Residences\" section in the main tab view.",
|
||||
"comment" : "A label for the \"Residences\" tab in the main tab view.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"residences_add_contractors_prompt" : {
|
||||
@@ -24744,6 +24738,9 @@
|
||||
"Send Reset Code" : {
|
||||
"comment" : "A button label that says \"Send Reset Code\".",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Sending..." : {
|
||||
|
||||
},
|
||||
"Set Custom Time" : {
|
||||
"comment" : "A button that allows a user to set a custom notification time.",
|
||||
@@ -24889,9 +24886,6 @@
|
||||
"Share this 6-character code. They can enter it in the app to join." : {
|
||||
"comment" : "A description of how to share the invitation code with others.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Shared Users (%lld)" : {
|
||||
|
||||
},
|
||||
"Signing in with Apple..." : {
|
||||
|
||||
@@ -24928,6 +24922,10 @@
|
||||
},
|
||||
"Take your home management\nto the next level" : {
|
||||
|
||||
},
|
||||
"Tap the + icon in the top right\nto add your first property" : {
|
||||
"comment" : "A description of an action a user can take to add a property.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Task Templates" : {
|
||||
"comment" : "The title of the view that lists all predefined task templates.",
|
||||
@@ -29995,16 +29993,15 @@
|
||||
"comment" : "A description of the benefit of upgrading to the Pro plan.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Users with access to this residence. Use the share button to invite others." : {
|
||||
"Use the share button to invite others" : {
|
||||
|
||||
},
|
||||
"Using system default time" : {
|
||||
"comment" : "A description of how a user can set a custom notification time.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Verification Code" : {
|
||||
"comment" : "A label displayed above the text field for entering a verification code.",
|
||||
"isCommentAutoGenerated" : true
|
||||
"VERIFICATION CODE" : {
|
||||
|
||||
},
|
||||
"Verify" : {
|
||||
"comment" : "A button label that says \"Verify\".",
|
||||
|
||||
Reference in New Issue
Block a user