[8451] Studio UI doesn’t correctly display API responses when Git global configs are unset#4797
Conversation
…bal configs are unset
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
WalkthroughReplace raw error handling with structured Ajax error payload extraction and display in three UI components by importing Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related issues
Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 1 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (1 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@ui/app/src/components/ContentTypeManagement/components/EditTypeView.tsx`:
- Around line 477-491: The error callback in EditTypeView (the error(error)
handler) should type the parameter as AjaxError and safely render a fallback
message: import AjaxError from 'rxjs/ajax', change the signature to accept
(error: AjaxError), call extractErrorPayload(error) and use its .message with a
fallback (e.g. extractErrorPayload(error).message ?? 'Unexpected error' or a
localized default) before passing to Typography so it never renders undefined.
🧹 Nitpick comments (1)
ui/app/src/components/ContentTypeManagement/components/EditTypeView.tsx (1)
782-784: Inconsistent error handling within the same file.This existing handler at Line 782 still uses the old
response.responsepattern, while the new save handler (Line 477) usesextractErrorPayload. Consider updating this handler as well for consistency.Suggested fix
- error: ({ response }) => { - dispatch(pushErrorDialog({ props: { error: response.response } })); + error: (error: AjaxError) => { + dispatch(pushErrorDialog({ props: { error: extractErrorPayload(error) } })); }
…splay, add type to error
…o bugfix/8451 # Conflicts: # ui/app/src/components/ContentTypeManagement/components/EditTypeView.tsx
* Update rimraf, @types/node * Update mui/* * Update @types/react, @types/jquery, webpack * Update marked, react-router, react-window, video.js * Update @typescript-eslint/eslint-plugin, @typescript-eslint/parser, @vitejs/plugin-react, @swc/core, @swc/cli * Update @atlaskit/pragmatic-drag-and-drop, monaco-graphql, @eslint/compat, @eslint/eslintrc, babel-plugin-formatjs, eslint-plugin-react-refresh, css-loader, @eslint/eslintrc, @rollup/plugin-commonjs, @prettier/plugin-xml * Update @eslint/js, eslint * Update @prettier/plugin-xml, graphql, jotai, eslint-plugin-formatjs, globals, rollup, preact * Update @formatjs/cli * Update fast-xml-parser * Yarn dedupe * Remove deprecated eslintConfig from uppy/package.json, and removed unstable_config_lookup_from_file flag from root package.json * [8579] Fix guest build (#4828) * [7418] FE2 - Label control (#4669) * [7418] Label control * [7418] Standardize fallback handling * [7418] Add dompurify sanitization when setting inner html * [7418] Remove defaultValue * [7418] use getPropertyValue in Label control * [7418] Remove renderAsHTML property from label descriptor, use minimal setup of tinymce in text field * [7418] Add RTE wrapper for TypeBuilder, update label control to use rte for text field, with `craftercms-label-control`. Update RichTextEditor control to support defaultInitOptions prop * [7418] Add dompurify * [7418] Add dompurify * [7418] fix package.json format * [7418] Add dompurify * [7418] FE2- Checkbox control (#4658) * [7418] Checkbox readonly and defaultValue updates * [7418] Improve Checkbox readonly value extraction * [7418] Remove retrieving logic from checkbox control, update retrieveFieldValue to omit empty strings as defaultValue * [7418] Update checkbox validator, fix retrieveFieldValue fieldValue calculation * [7418] Update booleanFieldExtractor to return false if nullish value * [7418] Forcehttps control (#4820) * [8555] Handle request publish activity as package (#4830) * [8216] Update dropTargetsLookup in parseLegacyFormDefinition to use new DataSource type instead of legacy. (#4806) * [8216] Update dropTargetsLookup in parseLegacyFormDefinition to use new DataSource type instead of legacy * [8216] Fix NodeSelector create component * [8216] Remove unnecessary cast * [8444] Approver user listed in Dashboard is always the user that requested the publish (#4831) * [8444] Approver user listed in Dashboard is always the user that requested the publish * [8444] Fix approver for requests in RecentlyPublishedDashlet * [8451] Studio UI doesn’t correctly display API responses when Git global configs are unset (#4797) * Fix error handling in EditTypeView to ensure proper message display, add type to error * [7418] FE2 -CheckboxGroup control (#4653) * Update field validation logic * Enhance listDirection parsing * Guard placeholder items during filtering * Validate window in useWindowWidth * Parse minSize safely * Update validator to consider empty (or non-array) values * Simplify validateFieldValue logic * Remove unused/duplicate util * Remove unused import * Move utils to bottom of component * Update CheckboxGroup to render a max of 2 columns, and remove rendering of 3 columns logic * Move checkboxGroup validator to fn * Add skeleton for loading state, use props utils * Fix property for selectAll * Update indeterminate and checked conditions of selectAll checkbox to consider filtering * Update checkboxGroupValidator currentValue type * Return undefined for finalOptions nullish options * [8592] Send field to serializers for datasources in TB2 (#4836) * Fix datasources form in TB2 * Retrieve/pass field to serializer * [8547] Workflow states options should only display valid options (#4808) * Workflow states options should only display valid options * Add error handling on fetchPublishingTargets * [7511] Removing datasource without disconnecting it from properties corrupts form (#4838) * [7511] cleanupStaleDatasourceValues * [7511] Cleanup datasource values from xml * [7511] Remove comment * [7511] Update selector in EditTypeView to use :scope for value element * [7511] consider parse errors --------- Co-authored-by: git_repo_user <evalgit@example.com> * [8569] Update staging publishing target indicator in UI (#4824) * [8569] Update staging publishing target indicator in UI * [8569] Update comment * [8569] Added util `shouldItemShowAsStaged` * [7418] Update shouldItemShowAsStaged to avoid casting item * [8407] set 'includeChildren' to true if mainItems are all folders (#4833) * [8407] Add 'include children' option to PublishDialog. Prevent publishing only folders * [8407] Avoid duplicate items * [8407] Empty childrenItems when reverting dependencies changes * [8407] Fix validation on Array.every() on an empty array returns true * [8407] calculatePackage subscription cleanup * [8407] set 'includeChildren' to true if mainItems are all folders * [8407] Set initial state of 'includeChildren' based on mainItems being folders --------- Co-authored-by: git_repo_user <evalgit@example.com> * [7418] Update tokenized prop name (#4686) * [7418] Update tokenized prop name * [7418] Create commonDescriptors to reuse --------- Co-authored-by: git_repo_user <evalgit@example.com> * [8599] Update the UI to use the new available languages API (#4840) * [8599] Update the UI to use the new available languages API * Return empty array if undefined * CHANGELOG update --------- Co-authored-by: git_repo_user <evalgit@example.com> * [8595] Update the UI to consume the new create site API (#4842) * [8595] Update the UI to consume the new create site API * Update token authentication form validation * Update CreateSiteMeta siteName type to name * Refactor authentication handling to remove username requirement for token authentication --------- Co-authored-by: git_repo_user <evalgit@example.com> * [8598] Update the UI to consume the new dependencies APIs (#4841) * [8598] Update the UI to consume the new dependencies APIs * [8598] Update changelog * Fix changelog * Refactor error handling in BrokenReferencesDialogContainer to use extractErrorPayload * Handle error on fetchContentItem * Add comment stating why ContentItems are needed * Add loading state to edit button in RenameItemView * Guard against undefined lightItems, use extractErrorPayload --------- Co-authored-by: git_repo_user <evalgit@example.com> * yarn.lock update after merge, yarn dedupe --------- Co-authored-by: git_repo_user <evalgit@example.com>
craftercms/craftercms#8451
Summary by CodeRabbit