Skip to content

Disallow window and document access in @fluentui/react-components#29962

Merged
spmonahan merged 14 commits intomicrosoft:masterfrom
spmonahan:react-component/disallow-window-and-document
Dec 13, 2023
Merged

Disallow window and document access in @fluentui/react-components#29962
spmonahan merged 14 commits intomicrosoft:masterfrom
spmonahan:react-component/disallow-window-and-document

Conversation

@spmonahan
Copy link
Contributor

Previous Behavior

You could directly use window or document.

New Behavior

You must get a reference to window or document from context (i.e., useFluent()).

Related Issue(s)

@codesandbox-ci
Copy link

codesandbox-ci bot commented Nov 30, 2023

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 9ead8d5:

Sandbox Source
@fluentui/react 8 starter Configuration
@fluentui/react-components 9 starter Configuration

@fabricteam
Copy link
Collaborator

fabricteam commented Nov 30, 2023

Perf Analysis (@fluentui/react-components)

Scenario Render type Master Ticks PR Ticks Iterations Status
FluentProviderWithTheme virtual-rerender 65 56 10 Possible regression
All results

Scenario Render type Master Ticks PR Ticks Iterations Status
Avatar mount 643 663 5000
Button mount 313 319 5000
Field mount 1158 1133 5000
FluentProvider mount 714 693 5000
FluentProviderWithTheme mount 81 85 10
FluentProviderWithTheme virtual-rerender 65 56 10 Possible regression
FluentProviderWithTheme virtual-rerender-with-unmount 78 75 10
MakeStyles mount 857 836 50000
Persona mount 1764 1715 5000
SpinButton mount 1362 1413 5000

@fabricteam
Copy link
Collaborator

fabricteam commented Nov 30, 2023

Perf Analysis (@fluentui/react-northstar)

Perf tests with no regressions
Scenario Current PR Ticks Baseline Ticks Ratio
AttachmentMinimalPerf.default 88 80 1.1:1
ListMinimalPerf.default 322 296 1.09:1
ListWith60ListItems.default 362 337 1.07:1
ReactionMinimalPerf.default 213 200 1.07:1
SegmentMinimalPerf.default 199 186 1.07:1
CheckboxMinimalPerf.default 1168 1107 1.06:1
FlexMinimalPerf.default 157 148 1.06:1
GridMinimalPerf.default 190 180 1.06:1
BoxMinimalPerf.default 196 187 1.05:1
DropdownManyItemsPerf.default 401 381 1.05:1
AlertMinimalPerf.default 152 146 1.04:1
TreeMinimalPerf.default 475 456 1.04:1
TreeWith60ListItems.default 88 85 1.04:1
VideoMinimalPerf.default 450 433 1.04:1
AvatarMinimalPerf.default 107 104 1.03:1
ButtonOverridesMissPerf.default 670 648 1.03:1
RadioGroupMinimalPerf.default 265 257 1.03:1
SplitButtonMinimalPerf.default 2294 2230 1.03:1
CarouselMinimalPerf.default 265 261 1.02:1
HeaderSlotsPerf.default 472 463 1.02:1
LayoutMinimalPerf.default 196 193 1.02:1
ListCommonPerf.default 390 383 1.02:1
PopupMinimalPerf.default 351 343 1.02:1
ProviderMergeThemesPerf.default 649 637 1.02:1
SkeletonMinimalPerf.default 192 189 1.02:1
IconMinimalPerf.default 387 379 1.02:1
ButtonMinimalPerf.default 87 86 1.01:1
DropdownMinimalPerf.default 1423 1407 1.01:1
EmbedMinimalPerf.default 1851 1831 1.01:1
ListNestedPerf.default 313 309 1.01:1
CustomToolbarPrototype.default 1468 1459 1.01:1
ChatMinimalPerf.default 427 425 1:1
DividerMinimalPerf.default 199 200 1:1
LabelMinimalPerf.default 215 216 1:1
MenuButtonMinimalPerf.default 937 940 1:1
PortalMinimalPerf.default 83 83 1:1
ProviderMinimalPerf.default 198 198 1:1
RefMinimalPerf.default 105 105 1:1
TableMinimalPerf.default 220 221 1:1
TooltipMinimalPerf.default 1277 1272 1:1
AccordionMinimalPerf.default 82 83 0.99:1
AttachmentSlotsPerf.default 629 637 0.99:1
ButtonSlotsPerf.default 309 312 0.99:1
CardMinimalPerf.default 301 303 0.99:1
ChatWithPopoverPerf.default 193 194 0.99:1
DatepickerMinimalPerf.default 3573 3619 0.99:1
DialogMinimalPerf.default 426 432 0.99:1
InputMinimalPerf.default 536 539 0.99:1
AnimationMinimalPerf.default 283 290 0.98:1
ChatDuplicateMessagesPerf.default 151 154 0.98:1
ItemLayoutMinimalPerf.default 690 703 0.98:1
MenuMinimalPerf.default 486 496 0.98:1
StatusMinimalPerf.default 384 393 0.98:1
TextAreaMinimalPerf.default 281 287 0.98:1
HeaderMinimalPerf.default 204 211 0.97:1
ImageMinimalPerf.default 220 226 0.97:1
TableManyItemsPerf.default 1071 1099 0.97:1
FormMinimalPerf.default 205 214 0.96:1
RosterPerf.default 1539 1600 0.96:1
ToolbarMinimalPerf.default 512 531 0.96:1
LoaderMinimalPerf.default 179 189 0.95:1
SliderMinimalPerf.default 728 767 0.95:1
TextMinimalPerf.default 180 203 0.89:1

@fabricteam
Copy link
Collaborator

fabricteam commented Nov 30, 2023

📊 Bundle size report

Package & Exports Baseline (minified/GZIP) PR Change
react-calendar-compat
Calendar Compat
141.973 kB
36.998 kB
141.777 kB
36.979 kB
-196 B
-19 B
react-components
react-components: Accordion, Button, FluentProvider, Image, Menu, Popover
208.225 kB
59.512 kB
208.298 kB
59.555 kB
73 B
43 B
react-datepicker-compat
DatePicker Compat
213.203 kB
59.559 kB
213.106 kB
59.615 kB
-97 B
56 B
react-infobutton
InfoButton
131.436 kB
41.374 kB
131.509 kB
41.418 kB
73 B
44 B
react-infobutton
InfoLabel
135.123 kB
42.51 kB
135.196 kB
42.551 kB
73 B
41 B
react-menu
Menu (including children components)
141.042 kB
43.238 kB
141.114 kB
43.272 kB
72 B
34 B
react-menu
Menu (including selectable components)
143.728 kB
43.739 kB
143.8 kB
43.772 kB
72 B
33 B
react-popover
Popover
120.17 kB
37.863 kB
120.248 kB
37.918 kB
78 B
55 B
Unchanged fixtures
Package & Exports Size (minified/GZIP)
global-context
createContext
510 B
330 B
global-context
createContextSelector
537 B
342 B
priority-overflow
createOverflowManager
4.447 kB
1.853 kB
react-accordion
Accordion (including children components)
93.224 kB
28.468 kB
react-alert
Alert
83.926 kB
23.362 kB
react-avatar
Avatar
50.167 kB
15.836 kB
react-avatar
AvatarGroup
19.696 kB
7.8 kB
react-avatar
AvatarGroupItem
64.823 kB
20.176 kB
react-badge
Badge
26.897 kB
8.713 kB
react-badge
CounterBadge
27.798 kB
9.013 kB
react-badge
PresenceBadge
25.303 kB
9.22 kB
react-button
Button
39.707 kB
11.207 kB
react-button
CompoundButton
47.063 kB
12.691 kB
react-button
MenuButton
44.481 kB
12.569 kB
react-button
SplitButton
52.495 kB
14.166 kB
react-button
ToggleButton
56.754 kB
13.104 kB
react-card
Card - All
93.207 kB
27.001 kB
react-card
Card
88.031 kB
25.501 kB
react-card
CardFooter
13.056 kB
5.388 kB
react-card
CardHeader
15.299 kB
6.143 kB
react-card
CardPreview
14.007 kB
5.757 kB
react-checkbox
Checkbox
34.057 kB
11.732 kB
react-combobox
Combobox (including child components)
92.107 kB
30.05 kB
react-combobox
Dropdown (including child components)
90.528 kB
29.714 kB
react-components
react-components: Button, FluentProvider & webLightTheme
69.816 kB
20.132 kB
react-components
react-components: FluentProvider & webLightTheme
42.101 kB
13.957 kB
react-dialog
Dialog (including children components)
94.805 kB
28.321 kB
react-divider
Divider
20.812 kB
7.742 kB
react-field
Field
22.419 kB
8.541 kB
react-image
Image
15.728 kB
6.225 kB
react-input
Input
26.879 kB
9.097 kB
react-jsx-runtime
Classic Pragma
1.049 kB
531 B
react-jsx-runtime
JSX Dev Runtime
3.775 kB
1.644 kB
react-jsx-runtime
JSX Runtime
4.369 kB
1.879 kB
react-label
Label
14.141 kB
5.764 kB
react-link
Link
17.074 kB
6.892 kB
react-message-bar
MessageBar (all components)
25.173 kB
9.005 kB
react-overflow
hooks only
12.837 kB
4.837 kB
react-persona
Persona
57.058 kB
17.711 kB
react-portal
Portal
12.565 kB
4.591 kB
react-portal-compat
PortalCompatProvider
6.822 kB
2.311 kB
react-positioning
usePositioning
25.68 kB
9.278 kB
react-progress
ProgressBar
17.42 kB
6.89 kB
react-provider
FluentProvider
22.641 kB
8.384 kB
react-radio
Radio
31.07 kB
10.218 kB
react-radio
RadioGroup
15.337 kB
6.258 kB
react-select
Select
28.601 kB
10.176 kB
react-slider
Slider
38.153 kB
12.54 kB
react-spinbutton
SpinButton
36.766 kB
11.757 kB
react-spinner
Spinner
23.394 kB
8.46 kB
react-switch
Switch
33.535 kB
10.849 kB
react-table
DataGrid
153.989 kB
43.365 kB
react-table
Table (Primitives only)
43.805 kB
13.72 kB
react-table
Table as DataGrid
127.211 kB
34.69 kB
react-table
Table (Selection only)
72.389 kB
19.864 kB
react-table
Table (Sort only)
70.996 kB
19.467 kB
react-tags
InteractionTag
15.251 kB
6.062 kB
react-tags
Tag
29.974 kB
9.408 kB
react-tags
TagGroup
74.055 kB
22.168 kB
react-text
Text - Default
16.697 kB
6.553 kB
react-text
Text - Wrappers
19.87 kB
6.873 kB
react-textarea
Textarea
30.939 kB
10.451 kB
react-theme
Single theme token import
69 B
89 B
react-theme
Teams: all themes
34.616 kB
7.299 kB
react-theme
Teams: Light theme
19.287 kB
5.49 kB
react-timepicker-compat-preview
TimePicker
93.504 kB
31.338 kB
react-toast
Toast (including Toaster)
92.972 kB
27.892 kB
react-tooltip
Tooltip
52.843 kB
18.633 kB
react-utilities
SSRProvider
180 B
159 B
🤖 This report was generated against 419d7609ad9ce151f8f544c891d55e3a395c13d1

@fabricteam
Copy link
Collaborator

fabricteam commented Nov 30, 2023

🕵 FluentUIV0 No visual regressions between this PR and main

@size-auditor
Copy link

size-auditor bot commented Nov 30, 2023

Asset size changes

Size Auditor did not detect a change in bundle size for any component!

Baseline commit: 419d7609ad9ce151f8f544c891d55e3a395c13d1 (build)

@fabricteam
Copy link
Collaborator

fabricteam commented Nov 30, 2023

🕵 fluentuiv9 No visual regressions between this PR and main

@fabricteam
Copy link
Collaborator

fabricteam commented Nov 30, 2023

Perf Analysis (@fluentui/react)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
BaseButton mount 626 645 5000
Breadcrumb mount 1732 1743 1000
Checkbox mount 1692 1729 5000
CheckboxBase mount 1519 1486 5000
ChoiceGroup mount 2950 2966 5000
ComboBox mount 710 675 1000
CommandBar mount 6499 6467 1000
ContextualMenu mount 15916 15728 1000
DefaultButton mount 745 770 5000
DetailsRow mount 2256 2189 5000
DetailsRowFast mount 2212 2306 5000
DetailsRowNoStyles mount 2039 2060 5000
Dialog mount 2833 2678 1000
DocumentCardTitle mount 236 237 1000
Dropdown mount 1993 2019 5000
FocusTrapZone mount 1161 1165 5000
FocusZone mount 1087 1122 5000
GroupedList mount 41977 42683 2
GroupedList virtual-rerender 20234 20538 2
GroupedList virtual-rerender-with-unmount 54120 51904 2
GroupedListV2 mount 234 236 2
GroupedListV2 virtual-rerender 220 225 2
GroupedListV2 virtual-rerender-with-unmount 236 248 2
IconButton mount 1104 1134 5000
Label mount 332 337 5000
Layer mount 2758 2752 5000
Link mount 403 391 5000
MenuButton mount 951 927 5000
MessageBar mount 22155 21978 5000
Nav mount 1919 1972 1000
OverflowSet mount 796 811 5000
Panel mount 1827 1841 1000
Persona mount 742 753 1000
Pivot mount 892 871 1000
PrimaryButton mount 863 852 5000
Rating mount 4730 4691 5000
SearchBox mount 947 938 5000
Shimmer mount 1948 1979 5000
Slider mount 1317 1344 5000
SpinButton mount 2907 2879 5000
Spinner mount 399 391 5000
SplitButton mount 1859 1827 5000
Stack mount 423 405 5000
StackWithIntrinsicChildren mount 856 846 5000
StackWithTextChildren mount 2616 2645 5000
SwatchColorPicker mount 6218 6201 5000
TagPicker mount 1460 1467 5000
Text mount 383 371 5000
TextField mount 938 955 5000
ThemeProvider mount 843 841 5000
ThemeProvider virtual-rerender 604 608 5000
ThemeProvider virtual-rerender-with-unmount 1285 1302 5000
Toggle mount 614 634 5000
buttonNative mount 197 194 5000

@spmonahan
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 4 pipeline(s).

@fabricteam
Copy link
Collaborator

fabricteam commented Dec 1, 2023

🕵 fluentuiv8 No visual regressions between this PR and main

Co-authored-by: Makoto Morimoto <Humberto.Morimoto@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants