fix: overflowManager should always dispatch initial state#27756
Merged
ling1726 merged 2 commits intomicrosoft:masterfrom May 9, 2023
Merged
fix: overflowManager should always dispatch initial state#27756ling1726 merged 2 commits intomicrosoft:masterfrom
ling1726 merged 2 commits intomicrosoft:masterfrom
Conversation
Fixes microsoft#27656 which was caused by a priority queue edge case. On initial mount the resize observer will always run. If there is already overflow then the tops of the visibility queues will be different from the initial state (all items are considered visible by default). In the cause where there is no overflow initially the queue tops will not change, which does not trigger a dispatch to the react bindings so the `useIsOverflowItemVisible` hook will always return `false` until overflow occurs. The fix is quite simple: set the initial value of flag `forceDispatch` to be `true` which will always trigger a dispatch for initial mount.
ling1726
commented
May 4, 2023
Asset size changesSize Auditor did not detect a change in bundle size for any component! Baseline commit: f0b05741d812ad90c52754b0b4035d5554cf2aa0 (build) |
|
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 03be8ab:
|
Collaborator
📊 Bundle size report
Unchanged fixtures
|
Collaborator
Perf Analysis (
|
| Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
|---|---|---|---|---|---|
| FluentProviderWithTheme | mount | 108 | 107 | 10 | Possible regression |
All results
| Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
|---|---|---|---|---|---|
| Avatar | mount | 692 | 696 | 5000 | |
| Button | mount | 396 | 396 | 5000 | |
| Field | mount | 1224 | 1243 | 5000 | |
| FluentProvider | mount | 785 | 780 | 5000 | |
| FluentProviderWithTheme | mount | 108 | 107 | 10 | Possible regression |
| FluentProviderWithTheme | virtual-rerender | 99 | 107 | 10 | |
| FluentProviderWithTheme | virtual-rerender-with-unmount | 106 | 105 | 10 | |
| InfoButton | mount | 22 | 19 | 5000 | |
| MakeStyles | mount | 1157 | 1160 | 50000 | |
| Persona | mount | 1897 | 1846 | 5000 | |
| SpinButton | mount | 1478 | 1458 | 5000 |
miroslavstastny
approved these changes
May 9, 2023
marcosmoura
added a commit
to marcosmoura/fluentui
that referenced
this pull request
May 10, 2023
* master: feat(react-drawer): create DrawerBody component (microsoft#27581) feat(react-tree): TreeItem itemType restructure (microsoft#27799) feat: Implement state management for toasts (microsoft#27800) bugfix: fix VisibleFlatTreeItemGenerator omitting visible items (microsoft#27802) fix: overflowManager should always dispatch initial state (microsoft#27756) fix(react-badge): Remove white border around presence badge when on a dark background (microsoft#27780) react-tags: rename dismissable to dismissible (microsoft#27798) chore: update ownership of react-tags (microsoft#27795) applying package updates feat(react-tags): Replace `avatar` prop with `media`; polish styles for spacing (microsoft#27725) RFC appearance migration (microsoft#24181) chore(react-skeleton): Release react-skeleton to stable (microsoft#27767) fix(Coachmark): Remove positioning regression and update bounds on resize (microsoft#27782) applying package updates fix(v8): explicitly publish dist folder after node 16 upgrade (microsoft#27769)
marcosmoura
added a commit
to marcosmoura/fluentui
that referenced
this pull request
May 10, 2023
* feat/drawer-header: fix: add changefiles feat(react-drawer): create DrawerBody component (microsoft#27581) feat(react-tree): TreeItem itemType restructure (microsoft#27799) feat: Implement state management for toasts (microsoft#27800) bugfix: fix VisibleFlatTreeItemGenerator omitting visible items (microsoft#27802) fix: overflowManager should always dispatch initial state (microsoft#27756) fix(react-badge): Remove white border around presence badge when on a dark background (microsoft#27780) react-tags: rename dismissable to dismissible (microsoft#27798) chore: update ownership of react-tags (microsoft#27795) applying package updates feat(react-tags): Replace `avatar` prop with `media`; polish styles for spacing (microsoft#27725) RFC appearance migration (microsoft#24181) chore(react-skeleton): Release react-skeleton to stable (microsoft#27767) fix(Coachmark): Remove positioning regression and update bounds on resize (microsoft#27782) applying package updates fix(v8): explicitly publish dist folder after node 16 upgrade (microsoft#27769)
marcosmoura
added a commit
to marcosmoura/fluentui
that referenced
this pull request
May 10, 2023
* master: (29 commits) feat(react-drawer): create DrawerBody component (microsoft#27581) feat(react-tree): TreeItem itemType restructure (microsoft#27799) feat: Implement state management for toasts (microsoft#27800) bugfix: fix VisibleFlatTreeItemGenerator omitting visible items (microsoft#27802) fix: overflowManager should always dispatch initial state (microsoft#27756) fix(react-badge): Remove white border around presence badge when on a dark background (microsoft#27780) react-tags: rename dismissable to dismissible (microsoft#27798) chore: update ownership of react-tags (microsoft#27795) applying package updates feat(react-tags): Replace `avatar` prop with `media`; polish styles for spacing (microsoft#27725) RFC appearance migration (microsoft#24181) chore(react-skeleton): Release react-skeleton to stable (microsoft#27767) fix(Coachmark): Remove positioning regression and update bounds on resize (microsoft#27782) applying package updates fix(v8): explicitly publish dist folder after node 16 upgrade (microsoft#27769) applying package updates fix: do not use outlineStyle: none in createCustomFocusIndicatorStyle (microsoft#26089) fix: Scale pulse animation with percentages and flip wave animation's direction (microsoft#27654) Publish dist folder that got removed due to node 16 upgrade (microsoft#27764) fix(scripts-update-release-notes): properly handle git for-each-ref cmd call to not fail release notes update (microsoft#27757) ...
Collaborator
|
🎉 Handy links: |
2 tasks
Collaborator
|
🎉 Handy links: |
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.

Fixes #27656 which was caused by a priority queue edge case.
On initial mount the resize observer will always run. If there is already overflow then the tops of the visibility queues will be different from the initial state (all items are considered visible by default).
In the cause where there is no overflow initially the queue tops will not change, which does not trigger a dispatch to the react bindings so the
useIsOverflowItemVisiblehook will always returnfalseuntil overflow occurs.The fix is quite simple: set the initial value of flag
forceDispatchto betruewhich will always trigger a dispatch for initial mount.