-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
feat(Menu): Allow custom and virtual popover target #18565
Conversation
Asset size changes
Over Tolerance (1024 B) Over Baseline Below Baseline New Removed 1 kB = 1000 B Baseline commit: b23fd366be888411a894e41d5d8e2e788fb5b0b5 (build) |
Perf Analysis (
|
Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
---|---|---|---|---|---|
Avatar | mount | 823 | 850 | 5000 | |
BaseButton | mount | 945 | 947 | 5000 | |
Breadcrumb | mount | 2545 | 2558 | 1000 | |
ButtonNext | mount | 527 | 521 | 5000 | |
Checkbox | mount | 1537 | 1537 | 5000 | |
CheckboxBase | mount | 1342 | 1350 | 5000 | |
ChoiceGroup | mount | 4922 | 4894 | 5000 | |
ComboBox | mount | 1048 | 987 | 1000 | |
CommandBar | mount | 9946 | 9933 | 1000 | |
ContextualMenu | mount | 6174 | 6183 | 1000 | |
DefaultButton | mount | 1172 | 1156 | 5000 | |
DetailsRow | mount | 3745 | 3752 | 5000 | |
DetailsRowFast | mount | 3733 | 3763 | 5000 | |
DetailsRowNoStyles | mount | 3625 | 3490 | 5000 | |
Dialog | mount | 2142 | 2167 | 1000 | |
DocumentCardTitle | mount | 146 | 130 | 1000 | |
Dropdown | mount | 3291 | 3278 | 5000 | |
FocusTrapZone | mount | 1743 | 1767 | 5000 | |
FocusZone | mount | 1735 | 1761 | 5000 | |
IconButton | mount | 1812 | 1789 | 5000 | |
Label | mount | 348 | 335 | 5000 | |
Layer | mount | 1811 | 1817 | 5000 | |
Link | mount | 454 | 471 | 5000 | |
MakeStyles | mount | 1741 | 1798 | 50000 | |
MenuButton | mount | 1472 | 1485 | 5000 | |
MessageBar | mount | 1957 | 1998 | 5000 | |
Nav | mount | 3337 | 3309 | 1000 | |
OverflowSet | mount | 998 | 1055 | 5000 | |
Panel | mount | 2043 | 2040 | 1000 | |
Persona | mount | 812 | 830 | 1000 | |
Pivot | mount | 1411 | 1402 | 1000 | |
PrimaryButton | mount | 1268 | 1317 | 5000 | |
Rating | mount | 7964 | 7889 | 5000 | |
SearchBox | mount | 1418 | 1376 | 5000 | |
Shimmer | mount | 2610 | 2634 | 5000 | |
Slider | mount | 1969 | 2004 | 5000 | |
SpinButton | mount | 5032 | 5058 | 5000 | |
Spinner | mount | 417 | 419 | 5000 | |
SplitButton | mount | 3237 | 3188 | 5000 | |
Stack | mount | 511 | 500 | 5000 | |
StackWithIntrinsicChildren | mount | 1624 | 1635 | 5000 | |
StackWithTextChildren | mount | 4786 | 4814 | 5000 | |
SwatchColorPicker | mount | 10094 | 10506 | 5000 | |
Tabs | mount | 1433 | 1422 | 1000 | |
TagPicker | mount | 2468 | 2528 | 5000 | |
TeachingBubble | mount | 11757 | 11719 | 5000 | |
Text | mount | 438 | 432 | 5000 | |
TextField | mount | 1382 | 1393 | 5000 | |
ThemeProvider | mount | 1192 | 1155 | 5000 | |
ThemeProvider | virtual-rerender | 598 | 588 | 5000 | |
ThemeProviderNext | mount | 6561 | 6581 | 5000 | |
Toggle | mount | 832 | 788 | 5000 | |
buttonNative | mount | 104 | 113 | 5000 |
Perf Analysis (@fluentui/react-northstar
)
Perf tests with no regressions
Scenario | Current PR Ticks | Baseline Ticks | Ratio |
---|---|---|---|
AttachmentMinimalPerf.default | 182 | 157 | 1.16:1 |
SkeletonMinimalPerf.default | 424 | 368 | 1.15:1 |
TreeWith60ListItems.default | 197 | 180 | 1.09:1 |
CarouselMinimalPerf.default | 504 | 471 | 1.07:1 |
GridMinimalPerf.default | 365 | 342 | 1.07:1 |
AccordionMinimalPerf.default | 161 | 152 | 1.06:1 |
TextMinimalPerf.default | 376 | 355 | 1.06:1 |
AttachmentSlotsPerf.default | 1217 | 1159 | 1.05:1 |
CardMinimalPerf.default | 613 | 585 | 1.05:1 |
DropdownManyItemsPerf.default | 742 | 710 | 1.05:1 |
FlexMinimalPerf.default | 301 | 287 | 1.05:1 |
HeaderSlotsPerf.default | 826 | 785 | 1.05:1 |
PopupMinimalPerf.default | 568 | 541 | 1.05:1 |
TableMinimalPerf.default | 443 | 423 | 1.05:1 |
AlertMinimalPerf.default | 301 | 290 | 1.04:1 |
AnimationMinimalPerf.default | 435 | 417 | 1.04:1 |
AvatarMinimalPerf.default | 206 | 199 | 1.04:1 |
FormMinimalPerf.default | 455 | 438 | 1.04:1 |
LabelMinimalPerf.default | 419 | 401 | 1.04:1 |
ListNestedPerf.default | 606 | 581 | 1.04:1 |
MenuMinimalPerf.default | 888 | 856 | 1.04:1 |
VideoMinimalPerf.default | 673 | 645 | 1.04:1 |
ImageMinimalPerf.default | 411 | 398 | 1.03:1 |
LayoutMinimalPerf.default | 399 | 386 | 1.03:1 |
ListCommonPerf.default | 678 | 660 | 1.03:1 |
ListWith60ListItems.default | 664 | 647 | 1.03:1 |
ButtonMinimalPerf.default | 189 | 185 | 1.02:1 |
DividerMinimalPerf.default | 382 | 376 | 1.02:1 |
HeaderMinimalPerf.default | 385 | 377 | 1.02:1 |
ItemLayoutMinimalPerf.default | 1351 | 1322 | 1.02:1 |
LoaderMinimalPerf.default | 697 | 681 | 1.02:1 |
RadioGroupMinimalPerf.default | 474 | 465 | 1.02:1 |
IconMinimalPerf.default | 671 | 658 | 1.02:1 |
ToolbarMinimalPerf.default | 986 | 964 | 1.02:1 |
TreeMinimalPerf.default | 837 | 817 | 1.02:1 |
ButtonOverridesMissPerf.default | 1743 | 1725 | 1.01:1 |
ButtonSlotsPerf.default | 572 | 567 | 1.01:1 |
ChatDuplicateMessagesPerf.default | 293 | 291 | 1.01:1 |
DatepickerMinimalPerf.default | 5505 | 5434 | 1.01:1 |
ListMinimalPerf.default | 532 | 526 | 1.01:1 |
PortalMinimalPerf.default | 178 | 177 | 1.01:1 |
ProviderMergeThemesPerf.default | 1610 | 1601 | 1.01:1 |
TextAreaMinimalPerf.default | 544 | 538 | 1.01:1 |
TooltipMinimalPerf.default | 1017 | 1003 | 1.01:1 |
BoxMinimalPerf.default | 371 | 370 | 1:1 |
ChatMinimalPerf.default | 642 | 641 | 1:1 |
CheckboxMinimalPerf.default | 2752 | 2762 | 1:1 |
DialogMinimalPerf.default | 773 | 770 | 1:1 |
DropdownMinimalPerf.default | 3046 | 3045 | 1:1 |
EmbedMinimalPerf.default | 4177 | 4180 | 1:1 |
MenuButtonMinimalPerf.default | 1626 | 1628 | 1:1 |
ProviderMinimalPerf.default | 1033 | 1029 | 1:1 |
TableManyItemsPerf.default | 2024 | 2031 | 1:1 |
CustomToolbarPrototype.default | 3837 | 3847 | 1:1 |
ReactionMinimalPerf.default | 396 | 400 | 0.99:1 |
RefMinimalPerf.default | 229 | 232 | 0.99:1 |
SliderMinimalPerf.default | 1588 | 1598 | 0.99:1 |
SplitButtonMinimalPerf.default | 3863 | 3887 | 0.99:1 |
ChatWithPopoverPerf.default | 377 | 384 | 0.98:1 |
StatusMinimalPerf.default | 714 | 730 | 0.98:1 |
InputMinimalPerf.default | 1274 | 1311 | 0.97:1 |
RosterPerf.default | 1234 | 1279 | 0.96:1 |
SegmentMinimalPerf.default | 358 | 375 | 0.95:1 |
/azp run |
Azure Pipelines successfully started running 3 pipeline(s). |
🎉 Handy links: |
🎉 Handy links: |
🎉 Handy links: |
🎉 Handy links: |
🎉 Handy links: |
Pull request checklist
$ yarn change
Description of changes
Since #18464 aligns with
Popover
API pattern. Leverages the pattern used inPopover
to support custom targets and real context menu targets. A reusableusePopperMouseTarget
hook as a util manage the state of a popper virtual element. Will convertPopover
to use this in a follow up PR.Removes current constraint that context and hover cannot be used together
Adds
hoverDelay
prop for open and dismiss on mouse over events. This delay has a default of 500ms as in design specFocus areas to test
(optional)