-
Notifications
You must be signed in to change notification settings - Fork 2.9k
feat: Implement limit for toast stacking #27848
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Adds the new `limit` prop to `Toaster` which will limit the number of visible toasts on the page. This is done internally using a priority queue based on the creation date. This will also support toast priorities in the queue. Addresses microsoft#27827
|
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. Latest deployment of this branch, based on commit 69258af:
|
Perf Analysis (
|
| Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
|---|---|---|---|---|---|
| FluentProviderWithTheme | virtual-rerender | 91 | 90 | 10 | Possible regression |
All results
| Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
|---|---|---|---|---|---|
| Avatar | mount | 703 | 721 | 5000 | |
| Button | mount | 378 | 373 | 5000 | |
| Field | mount | 1290 | 1306 | 5000 | |
| FluentProvider | mount | 913 | 908 | 5000 | |
| FluentProviderWithTheme | mount | 109 | 118 | 10 | |
| FluentProviderWithTheme | virtual-rerender | 91 | 90 | 10 | Possible regression |
| FluentProviderWithTheme | virtual-rerender-with-unmount | 116 | 109 | 10 | |
| InfoButton | mount | 15 | 24 | 5000 | |
| MakeStyles | mount | 1126 | 1098 | 50000 | |
| Persona | mount | 2047 | 2004 | 5000 | |
| SpinButton | mount | 1566 | 1577 | 5000 |
Asset size changesSize Auditor did not detect a change in bundle size for any component! Baseline commit: bfd75793f7ec35cec23e0b4f785ededb82a0e1dd (build) |
📊 Bundle size reportUnchanged fixtures
|
🕵 fluentuiv9 No visual regressions between this PR and main |
packages/react-components/react-utilities/src/utils/priorityQueue.ts
Outdated
Show resolved
Hide resolved
| pauseOnHover: boolean; | ||
| toasterId: ToasterId | undefined; | ||
| priority: number; | ||
| dispatchedAt: number; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be under Toast
|
🎉 Handy links: |
|
🎉 Handy links: |
* master: (24 commits) chore(react-tabster): upgrade tabster to v4.4.2 (microsoft#27540) feat(react-tags): Add TagGroup with context (microsoft#27886) applying package updates fix(react-infobutton): Add aria-owns to InfoLabel (microsoft#27834) fix(recipes-react-components): Add a FluentProvider to the local storybook (microsoft#27746) chore: update RFC template (microsoft#27880) applying package updates feat: implement Toaster offset (microsoft#27854) feat(react-drawer): create DrawerFooter component (microsoft#27583) Make getKey and selection props mutually exclusive (microsoft#24048) Added MIGRATION.md to the Breadcrumb (microsoft#27846) update Github CODEOWNERS file (microsoft#27849) feat(react-tags): make basic Tag a button instead of div (microsoft#27858) chore: add test-ssr script to v9 packages (microsoft#27690) chore(react-tree): exports TreeItemAside unstable (microsoft#27856) bugfix(react-dialog): removes unnecessary grid gaps (microsoft#27845) applying package updates fix(react-textarea): Don't remove outline when filled and disabled and apply correct disabled color to text (microsoft#27837) feat: Implement limit for toast stacking (microsoft#27848) Update README.md for fluent 2 theme to include import instructions (microsoft#27847) ...
* feat/drawer-header: (24 commits) chore(react-tabster): upgrade tabster to v4.4.2 (microsoft#27540) feat(react-tags): Add TagGroup with context (microsoft#27886) applying package updates fix(react-infobutton): Add aria-owns to InfoLabel (microsoft#27834) fix(recipes-react-components): Add a FluentProvider to the local storybook (microsoft#27746) chore: update RFC template (microsoft#27880) applying package updates feat: implement Toaster offset (microsoft#27854) feat(react-drawer): create DrawerFooter component (microsoft#27583) Make getKey and selection props mutually exclusive (microsoft#24048) fix: move style override to outside the component Added MIGRATION.md to the Breadcrumb (microsoft#27846) update Github CODEOWNERS file (microsoft#27849) feat(react-tags): make basic Tag a button instead of div (microsoft#27858) chore: add test-ssr script to v9 packages (microsoft#27690) chore(react-tree): exports TreeItemAside unstable (microsoft#27856) bugfix(react-dialog): removes unnecessary grid gaps (microsoft#27845) applying package updates fix(react-textarea): Don't remove outline when filled and disabled and apply correct disabled color to text (microsoft#27837) feat: Implement limit for toast stacking (microsoft#27848) ...
Adds the new
limitprop toToasterwhich will limit the number of visible toasts on the page.This is done internally using a priority queue based on the creation date. This will also support toast priorities in the queue.
Addresses #27827