Conversation
… submission handling
…rnal-mapping-form
|
@cursoragent review |
|
Perfect! Now let me create a comprehensive code review summary: Code Review SummaryI've completed a thorough review of this form migration PR. All tests pass, linting passes, and TypeScript has no errors. Here's my detailed analysis: ✅ Migration Quality: ExcellentThis is a high-quality migration from the legacy Form/FormModel system to the new TanStack-based form system. The changes properly follow Sentry's form migration guidelines. What ChangedCore Migration:
API Simplification:
Improved UX:
Test CoverageAll 12 tests pass, including new tests for edge cases:
Code QualityStrengths:
Minor Observations:
Integration with Parent ComponentsThe changes to parent components (
Linting & Type Safety
Recommendation: ✅ APPROVEThis PR is ready to merge. The migration is well-executed, maintains backward compatibility at the API level, improves code maintainability, and has comprehensive test coverage. The code quality is high and follows all Sentry development best practices. |
Backend Test FailuresFailures on
|
static/app/views/settings/organizationIntegrations/integrationExternalTeamMappings.tsx
Outdated
Show resolved
Hide resolved
static/app/views/settings/organizationIntegrations/integrationExternalTeamMappings.tsx
Outdated
Show resolved
Hide resolved
…rnal-mapping-form
Backend Test FailuresFailures on
|
Backend Test FailuresFailures on
|
Backend Test FailuresFailures on
|
There was a problem hiding this comment.
changes in this file are so that we can support object values in our select component. We need that because when the user selects a team, we need more than one value from that team (we need slug and id).
react-select actually supports this easily because it wants the value to be a full option (incl. label etc), and it also returns that in onChange. However we have decided to make our select abstraction work differently - it only takes the value from inside the option and we then try to match it back against options to pass it forward to react-select.
this complicates things a lot, because objects aren’t === comparable, and if we give react-select a raw object it treats it as option but it might not have the correct structure.
I really hope these changes don’t break any other parts but I don’t think selects with object values are used a lot. Suffice to say I 🤬 select 😂
| onSubmitSuccess={async () => { | ||
| await fetchData(); | ||
| }} |
There was a problem hiding this comment.
this ensures we refetch the queries that populate our form after form submission.
…rnal-mapping-form
…rnal-mapping-form
This reverts commit a274f93.
| return mutation.mutateAsync(schema.parse(value)).catch(error => { | ||
| if (error instanceof RequestError) { | ||
| setFieldErrors(formApi, error); |
…rnal-mapping-form # Conflicts: # static/app/components/core/select/select.tsx
…rnal-mapping-form
…system (#110298) Co-authored-by: getsantry[bot] <66042841+getsantry[bot]@users.noreply.github.com>


No description provided.