Skip to content

Conversation

@scttcper
Copy link
Member

@scttcper scttcper commented Jan 7, 2026

Replaces the old issue ui actions with the new issue actions UI which lets us clean up a bunch of duplicate code we had to support both UIs.

Fixes a bug where they would overflow after a change in #99177
image

old issue ui before
image

old issue ui after
image

old issue ui empty state after
image

Replaces the old issue ui actions with the new issue actions UI which lets us clean up a bunch of duplicate code we had to support both UIs.

Fixes a bug where they would overflow after a change in #99177
@github-actions github-actions bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Jan 7, 2026
Copy link
Member

@JonasBa JonasBa left a comment

Choose a reason for hiding this comment

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

Nit comment about the open functionality, but this is a very nice cleanup 🧹

Comment on lines 36 to 38
if (externalIssue) {
return;
}
Copy link
Member

Choose a reason for hiding this comment

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

Does this ever happen, or is it just for safety? Maybe this check should exist outside of this handler so that it doesn't result in a dead click? Depending on the usage, I would probably propose something like this

<Button disabled={!!externalIssue} ... />

function openSentryAppIssueModal(options){
  if(!options.externalissue) throw new Error(...)
}

Copy link
Member Author

Choose a reason for hiding this comment

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

i'm not sure it was just there before, just co-locating the function

Copy link
Member Author

Choose a reason for hiding this comment

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

removed, we check for this already in the new flow

project={feedbackItem.project}
event={eventData}
/>
<Flex direction="row" gap="md">
Copy link
Member

Choose a reason for hiding this comment

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

row is default so this is unnecessary, but it doesn't really matter tbh as being explicit is also nice

Copy link
Member Author

@scttcper scttcper Jan 7, 2026

Choose a reason for hiding this comment

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

@scttcper scttcper marked this pull request as ready for review January 7, 2026 23:03
@scttcper scttcper requested review from a team as code owners January 7, 2026 23:03
@scttcper scttcper requested a review from a team January 7, 2026 23:03
),
{closeEvents: 'escape-key'}
);
};
Copy link
Contributor

Choose a reason for hiding this comment

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

Success message callback ignored due to type mismatch

Medium Severity

The openExternalIssueModal function declares onChange with type () => void, but ExternalIssueForm internally expects onChange to accept callback parameters and calls onChange(() => addSuccessMessage(MESSAGES_BY_ACTION[action])). Since refetchIntegrations is passed as onChange and it doesn't accept callback arguments, the success callback is silently ignored. Users won't see the "Successfully linked issue." or "Successfully created issue." toast messages after creating or linking external issues.

Additional Locations (1)

Fix in Cursor Fix in Web

# Conflicts:
#	static/app/components/group/sentryAppExternalIssueActions.tsx
#	static/app/components/issueSyncListElement.tsx
@scttcper scttcper merged commit 93a226c into master Jan 8, 2026
52 checks passed
@scttcper scttcper deleted the scttcper/backport-issue-actions branch January 8, 2026 18:56
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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants