-
Notifications
You must be signed in to change notification settings - Fork 2.9k
fix(react-popover): Only apply modal attributes if the PopoverSurface traps focus #28613
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
fix(react-popover): Only apply modal attributes if the PopoverSurface traps focus #28613
Conversation
Perf Analysis (
|
| Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
|---|---|---|---|---|---|
| Avatar | mount | 625 | 619 | 5000 | |
| Button | mount | 316 | 320 | 5000 | |
| Field | mount | 1154 | 1128 | 5000 | |
| FluentProvider | mount | 695 | 687 | 5000 | |
| FluentProviderWithTheme | mount | 77 | 78 | 10 | |
| FluentProviderWithTheme | virtual-rerender | 63 | 64 | 10 | |
| FluentProviderWithTheme | virtual-rerender-with-unmount | 74 | 72 | 10 | |
| InfoButton | mount | 12 | 10 | 5000 | |
| MakeStyles | mount | 862 | 844 | 50000 | |
| Persona | mount | 1749 | 1756 | 5000 | |
| SpinButton | mount | 1397 | 1387 | 5000 |
|
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 30b727c:
|
📊 Bundle size reportUnchanged fixtures
|
🕵 fluentuiv9 No visual regressions between this PR and main |
Asset size changesSize Auditor did not detect a change in bundle size for any component! Baseline commit: afcfb2ebe322e2a8e204ac192e68f48f1164107f (build) |
packages/react-components/react-popover/src/components/PopoverSurface/usePopoverSurface.ts
Outdated
Show resolved
Hide resolved
|
Looks like this issue comes from Tabster, here's an issue to track it: microsoft/tabster#303 |
* master: chore: update CODEOWNERS to some components to tag the current owner (microsoft#28949) fix(react-popover): Only apply modal attributes if the PopoverSurface traps focus (microsoft#28613) feat(react-table, react-components): export DataGridContextProvider (microsoft#28955) chore: decrease bundle size & adds fixtures (microsoft#28962) feat(react-utilities): create useAnimationFrame hook (microsoft#28948) fix(react-utilities): `useOnClickOutside` should consider text selection from inside to outside as inside click (microsoft#28765) docs(react-accordion): Added subcomponents to index story (microsoft#28956) applying package updates bugfix: ensure interop between assertSlots and old API (microsoft#28957) chore: rename imports from react-tree to react-components (microsoft#28946) applying package updates fix: Autofill queries the inputElement ownerDocument instead of document (microsoft#27312)
* master: (27 commits) feat: Add documentKeyboardEvent to OnVisibleChangeData when Tooltip is hidden via Escape (microsoft#28951) RFC: Component CSS Transitions/Animations on mount/unmount (microsoft#27328) 8.0 Azure Theme: Details list row focus contrast a11y bug fix (microsoft#28966) chore: update CODEOWNERS to some components to tag the current owner (microsoft#28949) fix(react-popover): Only apply modal attributes if the PopoverSurface traps focus (microsoft#28613) feat(react-table, react-components): export DataGridContextProvider (microsoft#28955) chore: decrease bundle size & adds fixtures (microsoft#28962) feat(react-utilities): create useAnimationFrame hook (microsoft#28948) fix(react-utilities): `useOnClickOutside` should consider text selection from inside to outside as inside click (microsoft#28765) docs(react-accordion): Added subcomponents to index story (microsoft#28956) applying package updates bugfix: ensure interop between assertSlots and old API (microsoft#28957) chore: rename imports from react-tree to react-components (microsoft#28946) applying package updates fix: Autofill queries the inputElement ownerDocument instead of document (microsoft#27312) Accordion : updated styles for accordion header cursor (microsoft#28850) Additional VR tests Charting Library (microsoft#28777) feat(react-motion): create react-motion-preview package scaffolding (microsoft#28947) chore: updates generator to use new slot API (microsoft#28916) chore: bumps version of esbuild-loader to v3.2.0 (microsoft#28878) ...
…e-motion * feat/use-motion-presence-hook: (25 commits) fix: revert changes to CODEOWNERS fix: remove duplicated code due to a merge conflict fix: upgrade tests fix: set motion as active when animations are disabled fix: remove debug function feat: refactor useMotion to a much more clean/performant logic fix: use correct type for MotionOptions fix: improve typings and documentation feat: Add documentKeyboardEvent to OnVisibleChangeData when Tooltip is hidden via Escape (microsoft#28951) fix: use correct boolean values RFC: Component CSS Transitions/Animations on mount/unmount (microsoft#27328) 8.0 Azure Theme: Details list row focus contrast a11y bug fix (microsoft#28966) fix: remove outdated changefile chore: update CODEOWNERS to some components to tag the current owner (microsoft#28949) fix(react-popover): Only apply modal attributes if the PopoverSurface traps focus (microsoft#28613) feat(react-table, react-components): export DataGridContextProvider (microsoft#28955) chore: decrease bundle size & adds fixtures (microsoft#28962) feat(react-utilities): create useAnimationFrame hook (microsoft#28948) fix(react-utilities): `useOnClickOutside` should consider text selection from inside to outside as inside click (microsoft#28765) docs(react-accordion): Added subcomponents to index story (microsoft#28956) ...
Follow up from microsoft#28613. Not applying any of the `useModalAttributes()` resulted in focus restoration not working for popovers that don't trap focus. Now the modalizer attributes are handled from the `useModalAttributes()` hook. This way the popover will still apply the focus restoration attributes if there is no focus trap configured.
#29110) * fix: don't apply modalizer attributes when focus trap isn't configured Follow up from #28613. Not applying any of the `useModalAttributes()` resulted in focus restoration not working for popovers that don't trap focus. Now the modalizer attributes are handled from the `useModalAttributes()` hook. This way the popover will still apply the focus restoration attributes if there is no focus trap configured. * changefile

Previous Behavior
Modal attributes were applied even when trap focus was set to false.
New Behavior
Modal attributes are now applied only when trapping focus.