Skip to content

fix(external-issues): Convert ticketRuleModal API request to async/await#118269

Merged
ryan953 merged 2 commits into
masterfrom
seer/fix/ticket-rule-modal-async-api
Jun 23, 2026
Merged

fix(external-issues): Convert ticketRuleModal API request to async/await#118269
ryan953 merged 2 commits into
masterfrom
seer/fix/ticket-rule-modal-async-api

Conversation

@sentry

@sentry sentry Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Refactors the refetchWithDynamicFields function in static/app/components/externalIssues/ticketRuleModal.tsx.

This change addresses the no-callback-api-request violation (FRONTEND-TSC-36) by replacing the deprecated callback-based api.request() with api.requestPromise() using async/await and a try/catch/finally block. This ensures consistent error handling and aligns with modern frontend API interaction patterns.

Also removes now-unused RequestOptions and ResponseMeta imports.

Legal Boilerplate

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.

Fixes FRONTEND-TSC-36

@github-actions github-actions Bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Jun 23, 2026
@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

📊 Type Coverage Diff

✅ no issues found

@ryan953 ryan953 requested a review from a team June 23, 2026 18:47
query: initialConfigQuery,
}),
(existingData: IntegrationIssueConfig | undefined) =>
data ? (data as IntegrationIssueConfig) : existingData

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cursor do we need the type hint in here? would this work:

Suggested change
data ? (data as IntegrationIssueConfig) : existingData
data ? data : existingData

@cursor cursor Bot Jun 23, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perfect! I've removed the redundant type assertion.

You're correct - since data is already typed as any from the api.requestPromise() call, the explicit cast to IntegrationIssueConfig doesn't provide any meaningful type safety. The callback's return type signature (IntegrationIssueConfig | undefined) already constrains what can be returned, so the simplified version data ? data : existingData works just as well.

The change has been committed and pushed to the PR.

Open in Web Open in Cursor 

…uleModal

Co-authored-by: Ryan Albrecht <ryan@ryanalbrecht.ca>
@ryan953 ryan953 added the Trigger: getsentry tests Once code is reviewed: apply label to PR to trigger getsentry tests label Jun 23, 2026
@ryan953 ryan953 enabled auto-merge (squash) June 23, 2026 18:54
@ryan953 ryan953 merged commit b46e4e8 into master Jun 23, 2026
84 of 85 checks passed
@ryan953 ryan953 deleted the seer/fix/ticket-rule-modal-async-api branch June 23, 2026 18:57
sehr-m pushed a commit that referenced this pull request Jun 23, 2026
…ait (#118269)

Refactors the `refetchWithDynamicFields` function in
`static/app/components/externalIssues/ticketRuleModal.tsx`.

This change addresses the `no-callback-api-request` violation
(FRONTEND-TSC-36) by replacing the deprecated callback-based
`api.request()` with `api.requestPromise()` using `async/await` and a
`try/catch/finally` block. This ensures consistent error handling and
aligns with modern frontend API interaction patterns.

Also removes now-unused `RequestOptions` and `ResponseMeta` imports.

<!--

  Sentry employees and contractors can delete or ignore the following.

-->

### Legal Boilerplate

Look, I get it. The entity doing business as "Sentry" was incorporated
in the State of Delaware in 2015 as Functional Software, Inc. and is
gonna need some rights from me in order to utilize my contributions in
this here PR. So here's the deal: I retain all rights, title and
interest in and to my contributions, and by keeping this boilerplate
intact I confirm that Sentry can use, modify, copy, and redistribute my
contributions, under Sentry's choice of terms.

Fixes
[FRONTEND-TSC-36](https://sentry.sentry.io/issues/7553133131/?seerDrawer=true)

---------

Co-authored-by: sentry[bot] <39604003+sentry[bot]@users.noreply.github.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Ryan Albrecht <ryan@ryanalbrecht.ca>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Frontend Automatically applied to PRs that change frontend components Trigger: getsentry tests Once code is reviewed: apply label to PR to trigger getsentry tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants