Skip to content

feat(feature-showcase): Redesign and rewrite FeatureTourModal as FeatureShowcase#112532

Merged
malwilley merged 3 commits intomasterfrom
malwilley/fc-feature-tour-modal
Apr 9, 2026
Merged

feat(feature-showcase): Redesign and rewrite FeatureTourModal as FeatureShowcase#112532
malwilley merged 3 commits intomasterfrom
malwilley/fc-feature-tour-modal

Conversation

@malwilley
Copy link
Copy Markdown
Member

@malwilley malwilley commented Apr 8, 2026

Ref ISWF-2160

We need to use a multi-step modal to demo the new Monitors/Alerts product, and we do already have FeatureTourModal which does that and is used in a few hard-to-find places. However, that modal is a bit outdated design-wise and doesn't have the most flexible API (and is a class component).

I decided to rewrite it, and to rename it FeatureShowcase (so that it will not be confused with the existing Tour compoent).

FeatureShowcase is a compound component, and the usage is like so (you can also see this in the story file):

openModal(deps => (
  <FeatureShowcase {...deps}>
    <FeatureShowcase.Step>
      <FeatureShowcase.Image src={image} alt="Step title" />
      <FeatureShowcase.StepTitle>Step title</FeatureShowcase.StepTitle>
      <FeatureShowcase.StepContent>Step description</FeatureShowcase.StepContent>
      <FeatureShowcase.StepActions />
    </FeatureShowcase.Step>
  </FeatureShowcase>
));

See Figma designs here (though I could not match precisely due to the default modal padding being quite large).

Before:

CleanShot 2026-04-08 at 14 04 02@2x

After:

CleanShot 2026-04-08 at 14 04 13@2x

@malwilley malwilley requested a review from a team April 8, 2026 21:02
@malwilley malwilley requested review from a team as code owners April 8, 2026 21:02
@malwilley malwilley marked this pull request as draft April 8, 2026 21:03
@github-actions github-actions bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Apr 8, 2026
@malwilley malwilley changed the title feat(feature-showcase): feat(feature-showcase): Redesign and rewrite FeatureModal as FeatureShowcase Apr 8, 2026
@malwilley malwilley changed the title feat(feature-showcase): Redesign and rewrite FeatureModal as FeatureShowcase feat(feature-showcase): Redesign and rewrite FeatureTourModal as FeatureShowcase Apr 8, 2026
@linear-code
Copy link
Copy Markdown

linear-code bot commented Apr 8, 2026

@github-actions github-actions bot added the Scope: Backend Automatically applied to PRs that change backend components label Apr 8, 2026
@malwilley malwilley removed the Scope: Backend Automatically applied to PRs that change backend components label Apr 8, 2026
@getsentry getsentry deleted a comment from github-actions bot Apr 8, 2026
@malwilley malwilley marked this pull request as ready for review April 8, 2026 21:55
@malwilley malwilley requested a review from a team as a code owner April 8, 2026 21:55
@malwilley malwilley requested review from saponifi3d and removed request for a team April 8, 2026 21:55
Copy link
Copy Markdown
Contributor

@saponifi3d saponifi3d left a comment

Choose a reason for hiding this comment

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

🤔 should we decompose this PR into 2; 1 that creates the new modal prop and another that implements it? mostly just thinking of it as a way to reduce risk when merging / deploying. (also, not a huge deal to do since i was able to review it all)

Add a new FeatureShowcase component with tests and documentation.
This is a compound component replacement for the modal-based
FeatureTourModal, designed for inline feature showcases.
@malwilley malwilley force-pushed the malwilley/fc-feature-tour-modal branch from 42fa7a4 to f7040e6 Compare April 9, 2026 22:26
@github-actions github-actions bot added the Scope: Backend Automatically applied to PRs that change backend components label Apr 9, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 9, 2026

🚨 Warning: This pull request contains Frontend and Backend changes!

It's discouraged to make changes to Sentry's Frontend and Backend in a single pull request. The Frontend and Backend are not atomically deployed. If the changes are interdependent of each other, they must be separated into two pull requests and be made forward or backwards compatible, such that the Backend or Frontend can be safely deployed independently.

Have questions? Please ask in the #discuss-dev-infra channel.

Copy link
Copy Markdown
Contributor

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit f7040e6. Configure here.

@malwilley
Copy link
Copy Markdown
Member Author

@saponifi3d went ahead and updated this PR so that it only adds the new component, will open a followup PR with the rest.

@malwilley malwilley requested a review from saponifi3d April 9, 2026 22:34
Copy link
Copy Markdown
Contributor

@saponifi3d saponifi3d left a comment

Choose a reason for hiding this comment

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

:woohoo: code looks good once the couple of failing tests are address 🙏

@malwilley malwilley requested a review from a team as a code owner April 9, 2026 22:41
@malwilley malwilley enabled auto-merge (squash) April 9, 2026 22:44
@malwilley malwilley merged commit 136b8b6 into master Apr 9, 2026
57 checks passed
@malwilley malwilley deleted the malwilley/fc-feature-tour-modal branch April 9, 2026 22:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Backend Automatically applied to PRs that change backend components Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants