Report a failed request once, in words - #457
Merged
Merged
Conversation
Keep the global toast quiet when a screen renders the server's own message, so a failed connect no longer shows a vague 'Request failed (400)' beside the text that says what to do. Give error toasts the destructive colour so they read as errors, and turn response bodies into a sentence instead of printing the map.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A failed connect showed the same failure twice: a toast reading
Request failed (400)/POST /api/auth/login, and the red text under the button that actually said MFA was required. The toast was the less useful of the two and looked like a notice rather than an error.Requests whose failure a screen renders itself are now marked
ApiClient.handled(), and the interceptor skips them - so the informative message stands alone. Toasts that do fire for unhandled failures carry the server's wording instead of the HTTP verb and path.ToastService.errornow paints the destructive colour across the card, icon and text and stays up for 8 seconds; previously error, success and info differed only by icon.Response bodies go through a shared
ApiError.describe, so the user sees a sentence rather thanHTTP 400: {message: ...}. It readsmessage/detail/titleoff the body, collapses a heading duplicated into its own sentence, and falls back to plain wording per status code.account_page._syncNowalso treated aDioExceptionand any other exception differently - one toasted, one did not. Both paths are the same now.Verified on an emulator against the full stack: a failing connect shows one red message and no toast, checked three seconds after submit.
Closes #455