ref(project-creation): Add SCM-styled notification options#118525
Open
jaydgoss wants to merge 9 commits into
Open
ref(project-creation): Add SCM-styled notification options#118525jaydgoss wants to merge 9 commits into
jaydgoss wants to merge 9 commits into
Conversation
f8b1451 to
12de764
Compare
Contributor
📊 Type Coverage Diff
🔍 3 new type safety issues introduced
Type assertions (
This is informational only and does not block the PR. |
12de764 to
4fadaee
Compare
4fadaee to
2681b35
Compare
2f61fff to
3768a96
Compare
2681b35 to
5b463a9
Compare
5b463a9 to
439e9fd
Compare
3768a96 to
7f153aa
Compare
0eda51b to
0f54efe
Compare
0f54efe to
415d0ac
Compare
415d0ac to
f217b66
Compare
336815c to
5a20cb4
Compare
The SCM alert-frequency section renders the messaging-integration notification options in an SCM-styled layout instead of the classic inline card. Extracts useMessagingIntegrationAlertRule (channels query, channel validation, the provider/integration/channel options and change handlers) plus a shared ChannelSelect, so the classic MessagingIntegrationAlertRule and the new ScmMessagingIntegrationAlertRule build identical controls from one source. The classic inline layout is unchanged. ScmMessagingIntegrationAlertRule reuses the provider sentence but renders each segment, text or input, on its own full-width row in makeSentence's order, with no grey card background. Rendering segments independently keeps it correct regardless of how a translation reorders the placeholders. ScmIssueAlertNotificationOptions lifts the Notify via wording into a shared header so the checkboxes read Email and Integration.
Wrap ScmMessagingIntegrationAlertRule in ScmCollapsibleReveal so the messaging options tween in and out when the Integration checkbox is toggled, matching the height-and-fade reveal already used by the alert-frequency section and option cards. Previously the rule appeared and disappeared instantly.
Line the messaging rule's left edge up with the checkbox label text instead of the checkbox, so it reads as nested under the Integration option. Indents by the sm Checkbox box width plus the label's left margin, mirroring the alert option card's expanded body.
MultipleCheckbox.Item ships a fixed-width, nowrap label tuned for the classic side-by-side row layout. In the SCM stacked layout the long Integration label overflowed the container on narrow screens. Scope an override on the checkbox container so each label fills its row and truncates with an ellipsis, without touching the shared component.
The previous truncation fix widened the label but not MultipleCheckbox.Item's wrapping container, which is only 25% of the row on wide screens. That truncated the Integration label even when there was room. Widen the container to fill the row too, so the ellipsis only kicks in when the text genuinely overflows on narrow screens.
…craps Replace MultipleCheckbox with scraps Checkbox composed with Flex and Text. MultipleCheckbox's fractional container/label widths, nowrap text, and row margins are tuned for the classic side-by-side layout and needed several overrides to undo in this stacked layout. Composing the checkboxes directly drops those overrides and lets the long Integration label wrap naturally on narrow screens, so the earlier truncation hack is no longer needed. The action-toggle logic is inlined, since that was the only thing MultipleCheckbox provided here.
Add the scraps Text ellipsis prop to the integration checkbox label and the alert-frequency footer so long copy truncates instead of overflowing on narrow screens. Render the checkbox labels at normal weight.
Click the Integration checkbox and assert it adds the integration action. Querying it by the label text also covers the label-to-input association from composing the checkbox with Flex as="label".
…M options Replace the duplicated shell (the shouldRenderNotificationConfigs derivation, the setup-button impression analytics, and the querySuccess gate) in ScmIssueAlertNotificationOptions with the shared useIssueAlertNotificationOptions hook, so the SCM and classic flows keep the same analytics and show/hide logic in one place.
f217b66 to
e55c060
Compare
5a20cb4 to
bd1be2b
Compare
Contributor
Sentry Snapshot Testing
|
evanpurkhiser
approved these changes
Jun 26, 2026
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.
TLDR
Add an SCM-styled version of the notification options for the alert-frequency section. The messaging-integration rule lays out one sentence fragment per row with full-width inputs and no grey card background, and reveals with the shared collapse animation. Builds on #118581.
Details
ScmMessagingIntegrationAlertRule, which reuses theuseMessagingIntegrationAlertRulehook (from ref(project-creation): Extract shared hooks from the notification components #118581) and rendersmakeSentencein a flatFlexcolumn, so each fragment ("Send", the provider select, "notification to the", and so on) sits on its own full-width row, without thebackground.secondarycard styling.ScmIssueAlertNotificationOptions: a "Notify via" header above "Email" and "Integration (Slack, Discord, MS Teams, etc.)" checkboxes that renders the stacked rule, replacing the direct use of the shared picker inScmAlertFrequencySection. The checkboxes are composed directly from the scrapsCheckbox(notMultipleCheckbox) so they stack full width.ScmCollapsibleReveal(height and fade) when Integration is checked and indents under its checkbox label. The long Integration label and the section footer truncate with an ellipsis on narrow screens.