Skip to content
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

[docs] Fix heading fragment id mismatch #20520

Closed
wants to merge 3 commits into from

Conversation

eps1lon
Copy link
Member

@eps1lon eps1lon commented Apr 12, 2020

Actual fix: c0f6c7d

The rest is a refactoring in next.config.js to use their API to switch between various render modes of React.

global.__MARKED_UNIQUE__ was problematic since it resulted in textToHash(..., global.__MARKED_UNIQUE__) to become impure and therefore unsuitable for rendering in react. In addition to that we also reset it during a different render making it even more problematic.

Removing it seems fine. We still avoid heading-id collisions since we reset the id cache on every render. This is the only concurrent-safe usage of textToHash: If it's called during render unique must be reset before that render call. It can only be "global" in the scope of the render call of a particular component. It cannot be re-used between two different components.

@eps1lon eps1lon added the docs Improvements or additions to the documentation label Apr 12, 2020
@eps1lon eps1lon added this to the 16.8 React.StrictMode milestone Apr 12, 2020
@mui-pr-bot
Copy link

mui-pr-bot commented Apr 12, 2020

Details of bundle changes.

Comparing: dc0578c...f1b7414

Details of page changes
bundle Size Change Size Gzip Change Gzip
/components/switches ▼ -100 B (-0.62% ) 16 kB -- -1 B
/_app ▼ -100 B (-0.30% ) 33.6 kB -- -1 B
/components/toggle-button ▼ -100 B (-0.94% ) 10.5 kB -- -1 B
/components/button-group ▼ -10 B (-0.15% ) 6.64 kB -- -1 B
/components/transfer-list ▼ -10 B (-0.11% ) 9.21 kB -- -1 B
/customization/density ▼ -10 B (-0.11% ) 9.13 kB -- -1 B
/getting-started/templates ▼ -10 B (-0.12% ) 8.62 kB -- -1 B
/getting-started/templates/album ▼ -10 B (-0.18% ) 5.57 kB -- -1 B
/getting-started/templates/blog ▼ -10 B (-0.13% ) 7.43 kB -- -1 B
/premium-themes/onepirate/forgot-password ▲ +10 B (+1.00% ) 1.01 kB -- -1 B
/api-docs/alert-title -- 1.18 kB -- -1 B
/api-docs/alert -- 2.19 kB -- -1 B
/api-docs/app-bar -- 1.72 kB -- -1 B
/api-docs/autocomplete -- 4.09 kB -- -1 B
/api-docs/avatar-group -- 1.29 kB -- -1 B
/api-docs/avatar -- 1.64 kB -- -1 B
/api-docs/backdrop -- 1.42 kB -- -1 B
/api-docs/badge -- 1.92 kB -- -1 B
/api-docs/bottom-navigation-action -- 1.58 kB -- -1 B
/api-docs/bottom-navigation -- 1.47 kB -- -1 B
/api-docs/breadcrumbs -- 1.62 kB -- -1 B
/api-docs/button-base -- 2.11 kB -- -1 B
/api-docs/button-group -- 1.99 kB -- -1 B
/api-docs/button -- 2.36 kB -- -1 B
/api-docs/card-action-area -- 1.37 kB -- -1 B
/api-docs/card-actions -- 1.26 kB -- -1 B
/api-docs/card-content -- 1.23 kB -- -1 B
/api-docs/card-header -- 1.56 kB -- -1 B
/api-docs/card-media -- 1.46 kB -- -1 B
/api-docs/card -- 1.29 kB -- -1 B
/api-docs/checkbox -- 2.09 kB -- -1 B
/api-docs/chip -- 2.23 kB -- -1 B
/api-docs/circular-progress -- 1.84 kB -- -1 B
/api-docs/click-away-listener -- 1.16 kB -- -1 B
/api-docs/collapse -- 1.79 kB -- -1 B
/api-docs/container -- 1.65 kB -- -1 B
/api-docs/css-baseline -- 1.18 kB -- -1 B
/api-docs/dialog-actions -- 1.26 kB -- -1 B
/api-docs/dialog-content-text -- 1.27 kB -- -1 B
/api-docs/dialog-content -- 1.24 kB -- -1 B
/api-docs/dialog-title -- 1.28 kB -- -1 B
/api-docs/dialog -- 2.51 kB -- -1 B
/api-docs/divider -- 1.59 kB -- -1 B
/api-docs/drawer -- 1.91 kB -- -1 B
/api-docs/expansion-panel-actions -- 1.27 kB -- -1 B
/api-docs/expansion-panel-details -- 1.2 kB -- -1 B
/api-docs/expansion-panel-summary -- 1.5 kB -- -1 B
/api-docs/expansion-panel -- 1.75 kB -- -1 B
/api-docs/fab -- 1.89 kB -- -1 B
/api-docs/fade -- 1.17 kB -- -1 B
/api-docs/filled-input -- 2.66 kB -- -1 B
/api-docs/form-control-label -- 1.76 kB -- -1 B
/api-docs/form-control -- 2.15 kB -- -1 B
/api-docs/form-group -- 1.34 kB -- -1 B
/api-docs/form-helper-text -- 1.69 kB -- -1 B
/api-docs/form-label -- 1.62 kB -- -1 B
/api-docs/grid-list-tile-bar -- 1.57 kB -- -1 B
/api-docs/grid-list-tile -- 1.5 kB -- -1 B
/api-docs/grid-list -- 1.4 kB -- -1 B
/api-docs/grid -- 2.33 kB -- -1 B
/api-docs/grow -- 1.24 kB -- -1 B
/api-docs/hidden -- 1.32 kB -- -1 B
/api-docs/icon-button -- 1.89 kB -- -1 B
/api-docs/icon -- 1.57 kB -- -1 B
/api-docs/input-adornment -- 1.71 kB -- -1 B
/api-docs/input-base -- 2.75 kB -- -1 B
/api-docs/input-label -- 1.86 kB -- -1 B
/api-docs/input -- 2.62 kB -- -1 B
/api-docs/linear-progress -- 1.82 kB -- -1 B
/api-docs/link -- 1.72 kB -- -1 B
/api-docs/list-item-avatar -- 1.29 kB -- -1 B
/api-docs/list-item-icon -- 1.31 kB -- -1 B
/api-docs/list-item-secondary-action -- 1.25 kB -- -1 B
/api-docs/list-item-text -- 1.57 kB -- -1 B
/api-docs/list-item -- 2.04 kB -- -1 B
/api-docs/list-subheader -- 1.55 kB -- -1 B
/api-docs/list -- 1.47 kB -- -1 B
/api-docs/menu-item -- 1.52 kB -- -1 B
/api-docs/menu-list -- 1.35 kB -- -1 B
/api-docs/menu -- 2.17 kB -- -1 B
/api-docs/mobile-stepper -- 1.71 kB -- -1 B
/api-docs/modal -- 2.14 kB -- -1 B
/api-docs/native-select -- 1.86 kB -- -1 B
/api-docs/no-ssr -- 1.09 kB -- -1 B
/api-docs/outlined-input -- 2.77 kB -- -1 B
/api-docs/pagination-item -- 1.75 kB -- -1 B
/api-docs/pagination -- 2.02 kB -- -1 B
/api-docs/paper -- 1.65 kB -- -1 B
/api-docs/popover -- 2.47 kB -- -1 B
/api-docs/popper -- 1.73 kB -- -1 B
/api-docs/portal -- 1.12 kB -- -1 B
/api-docs/radio-group -- 1.23 kB -- -1 B
/api-docs/radio -- 1.9 kB -- -1 B
/api-docs/rating -- 2.28 kB -- -1 B
/api-docs/root-ref -- 1.2 kB -- -1 B
/api-docs/scoped-css-baseline -- 1.19 kB -- -1 B
/api-docs/select -- 2.72 kB -- -1 B
/api-docs/skeleton -- 1.55 kB -- -1 B
/api-docs/slide -- 1.32 kB -- -1 B
/api-docs/slider -- 2.89 kB -- -1 B
/api-docs/snackbar-content -- 1.41 kB -- -1 B
/api-docs/snackbar -- 2.5 kB -- -1 B
/api-docs/speed-dial-action -- 1.82 kB -- -1 B
/api-docs/speed-dial-icon -- 1.33 kB -- -1 B
/api-docs/speed-dial -- 2.09 kB -- -1 B
/api-docs/step-button -- 1.42 kB -- -1 B
/api-docs/step-connector -- 1.33 kB -- -1 B
/api-docs/step-content -- 1.51 kB -- -1 B
/api-docs/step-icon -- 1.35 kB -- -1 B
/api-docs/step-label -- 1.68 kB -- -1 B
/api-docs/step -- 1.42 kB -- -1 B
/api-docs/stepper -- 1.64 kB -- -1 B
/api-docs/svg-icon -- 2.04 kB -- -1 B
/api-docs/swipeable-drawer -- 1.78 kB -- -1 B
/api-docs/switch -- 2.25 kB -- -1 B
/api-docs/tab -- 1.78 kB -- -1 B
/api-docs/table-body -- 1.25 kB -- -1 B
/api-docs/table-cell -- 1.9 kB -- -1 B
/api-docs/table-container -- 1.25 kB -- -1 B
/api-docs/table-footer -- 1.25 kB -- -1 B
/api-docs/table-head -- 1.25 kB -- -1 B
/api-docs/table-pagination -- 2.24 kB -- -1 B
/api-docs/table-row -- 1.47 kB -- -1 B
/api-docs/table-sort-label -- 1.61 kB -- -1 B
/api-docs/table -- 1.46 kB -- -1 B
/api-docs/tabs -- 2.31 kB -- -1 B
/api-docs/text-field -- 2.97 kB -- -1 B
/api-docs/textarea-autosize -- 909 B -- -1 B
/api-docs/toggle-button-group -- 1.6 kB -- -1 B
/api-docs/toggle-button -- 1.59 kB -- -1 B
/api-docs/toolbar -- 1.43 kB -- -1 B
/api-docs/tooltip -- 2.33 kB -- -1 B
/api-docs/tree-item -- 1.57 kB -- -1 B
/api-docs/tree-view -- 1.7 kB -- -1 B
/api-docs/typography -- 2.37 kB -- -1 B
/api-docs/zoom -- 1.2 kB -- -1 B
/blog/2019-developer-survey-results -- 5.98 kB -- -1 B
/blog/2019 -- 3.87 kB -- -1 B
/blog/2020-introducing-sketch -- 3.1 kB -- -1 B
/blog/april-2019-update -- 2.76 kB -- -1 B
/blog/august-2019-update -- 1.87 kB -- -1 B
/blog/december-2019-update -- 2.01 kB -- -1 B
/blog/july-2019-update -- 1.77 kB -- -1 B
/blog/june-2019-update -- 1.63 kB -- -1 B
/blog/march-2019-update -- 2.17 kB -- -1 B
/blog/material-ui-v1-is-out -- 6.29 kB -- -1 B
/blog/material-ui-v4-is-out -- 9.32 kB -- -1 B
/blog/may-2019-update -- 1.96 kB -- -1 B
/blog/november-2019-update -- 2.37 kB -- -1 B
/blog/october-2019-update -- 2.12 kB -- -1 B
/blog/september-2019-update -- 2.3 kB -- -1 B
/company/about -- 1.56 kB -- -1 B
/company/contact -- 1.14 kB -- -1 B
/company/jobs -- 1.16 kB -- -1 B
/components/about-the-lab -- 5.55 kB -- -1 B
/components/alert -- 12.4 kB -- -1 B
/components/app-bar -- 30.9 kB -- -1 B
/components/autocomplete -- 94.4 kB -- -1 B
/components/avatars -- 8.44 kB -- -1 B
/components/backdrop -- 3.31 kB -- -1 B
/components/badges -- 14.9 kB -- -1 B
/components/bottom-navigation -- 6.21 kB -- -1 B
/components/box -- 7.97 kB -- -1 B
/components/breadcrumbs -- 14.3 kB -- -1 B
/components/buttons -- 24.3 kB -- -1 B
/components/cards -- 16.9 kB -- -1 B
/components/checkboxes -- 16.5 kB -- -1 B
/components/chips -- 21.4 kB -- -1 B
/components/click-away-listener -- 3.84 kB -- -1 B
/components/container -- 3.85 kB -- -1 B
/components/css-baseline -- 6.04 kB -- -1 B
/components/dialogs -- 43.4 kB -- -1 B
/components/dividers -- 12.2 kB -- -1 B
/components/drawers -- 29.9 kB -- -1 B
/components/expansion-panels -- 20 kB -- -1 B
/components/floating-action-button -- 10.3 kB -- -1 B
/components/grid-list -- 11.8 kB -- -1 B
/components/grid -- 33.8 kB -- -1 B
/components/hidden -- 10.5 kB -- -1 B
/components/icons -- 24.5 kB -- -1 B
/components/links -- 6.82 kB -- -1 B
/components/lists -- 26.2 kB -- -1 B
/components/material-icons -- 728 kB -- -1 B
/components/menus -- 23.4 kB -- -1 B
/components/modal -- 11.5 kB -- -1 B
/components/no-ssr -- 5.02 kB -- -1 B
/components/pagination -- 8.08 kB -- -1 B
/components/paper -- 3.33 kB -- -1 B
/components/pickers -- 38.2 kB -- -1 B
/components/popover -- 16.8 kB -- -1 B
/components/popper -- 22.5 kB -- -1 B
/components/portal -- 3.29 kB -- -1 B
/components/progress -- 21.7 kB -- -1 B
/components/radio-buttons -- 15.1 kB -- -1 B
/components/rating -- 11.1 kB -- -1 B
/components/selects -- 29.5 kB -- -1 B
/components/skeleton -- 10.1 kB -- -1 B
/components/slider -- 14.6 kB -- -1 B
/components/snackbars -- 24.8 kB -- -1 B
/components/speed-dial -- 14.3 kB -- -1 B
/components/steppers -- 36.2 kB -- -1 B
/components/tables -- 174 kB -- -1 B
/components/tabs -- 19.6 kB -- -1 B
/components/text-fields -- 54.7 kB -- -1 B
/components/textarea-autosize -- 2.81 kB -- -1 B
/components/tooltips -- 17.3 kB -- -1 B
/components/transitions -- 10.8 kB -- -1 B
/components/tree-view -- 11.2 kB -- -1 B
/components/typography -- 9.71 kB -- -1 B
/components/use-media-query -- 13.1 kB -- -1 B
/customization/breakpoints -- 15.6 kB -- -1 B
/customization/color -- 21.9 kB -- -1 B
/customization/components -- 37.5 kB -- -1 B
/customization/default-theme -- 8.55 kB -- -1 B
/customization/globals -- 4.65 kB -- -1 B
/customization/palette -- 11.9 kB -- -1 B
/customization/spacing -- 2.55 kB -- -1 B
/customization/theming -- 17 kB -- -1 B
/customization/typography -- 11.6 kB -- -1 B
/customization/z-index -- 3.05 kB -- -1 B
/discover-more/backers -- 2.88 kB -- -1 B
/discover-more/changelog -- 1.37 kB -- -1 B
/discover-more/languages -- 3.38 kB -- -1 B
/discover-more/related-projects -- 7.25 kB -- -1 B
/discover-more/roadmap -- 3.67 kB -- -1 B
/discover-more/showcase -- 13.5 kB -- -1 B
/discover-more/team -- 6.51 kB -- -1 B
/discover-more/vision -- 7.03 kB -- -1 B
/getting-started/example-projects -- 6.17 kB -- -1 B
/getting-started/faq -- 32.2 kB -- -1 B
/getting-started/installation -- 7.6 kB -- -1 B
/getting-started/learn -- 8.39 kB -- -1 B
/getting-started/support -- 7.84 kB -- -1 B
/getting-started/supported-components -- 6.19 kB -- -1 B
/getting-started/supported-platforms -- 5.69 kB -- -1 B
/getting-started/templates/checkout -- 11.2 kB -- -1 B
/getting-started/templates/dashboard -- 8.53 kB -- -1 B
/getting-started/templates/pricing -- 7.79 kB -- -1 B
/getting-started/templates/sign-in-side -- 9.24 kB -- -1 B
/getting-started/templates/sign-in -- 9.48 kB -- -1 B
/getting-started/templates/sign-up -- 9.59 kB -- -1 B
/getting-started/templates/sticky-footer -- 1.54 kB -- -1 B
/getting-started/usage -- 9.37 kB -- -1 B
/guides/api -- 17.4 kB -- -1 B
/guides/composition -- 14.1 kB -- -1 B
/guides/flow -- 2.21 kB -- -1 B
/guides/interoperability -- 14.9 kB -- -1 B
/guides/localization -- 10.3 kB -- -1 B
/guides/migration-v0x -- 7.25 kB -- -1 B
/guides/migration-v3 -- 22.3 kB -- -1 B
/guides/minimizing-bundle-size -- 6.73 kB -- -1 B
/guides/responsive-ui -- 4.18 kB -- -1 B
/guides/right-to-left -- 6.73 kB -- -1 B
/guides/server-rendering -- 8.38 kB -- -1 B
/guides/testing -- 8.33 kB -- -1 B
/guides/typescript -- 13.4 kB -- -1 B
/performance/table-component -- 1.44 kB -- -1 B
/performance/table-emotion -- 8.49 kB -- -1 B
/performance/table-hook -- 2.23 kB -- -1 B
/performance/table-mui -- 4.47 kB -- -1 B
/performance/table-raw -- 613 B -- -1 B
/performance/table-styled-components -- 2.61 kB -- -1 B
/premium-themes/onepirate -- 7.21 kB -- -1 B
/premium-themes/onepirate/privacy -- 4.43 kB -- -1 B
/premium-themes/onepirate/sign-in -- 1.07 kB -- -1 B
/premium-themes/onepirate/sign-up -- 1.12 kB -- -1 B
/premium-themes/onepirate/terms -- 11.8 kB -- -1 B
/premium-themes/paperbase -- 8.71 kB -- -1 B
/styles/advanced -- 30.8 kB -- -1 B
/styles/api -- 16 kB -- -1 B
/styles/basics -- 17.6 kB -- -1 B
/system/api -- 5.85 kB -- -1 B
/system/basics -- 27.1 kB -- -1 B
/system/borders -- 4.04 kB -- -1 B
/system/display -- 6.51 kB -- -1 B
/system/flexbox -- 5.72 kB -- -1 B
/system/palette -- 4.28 kB -- -1 B
/system/positions -- 2.46 kB -- -1 B
/system/shadows -- 3.44 kB -- -1 B
/system/sizing -- 3.44 kB -- -1 B
/system/spacing -- 5.97 kB -- -1 B
/system/typography -- 4.22 kB -- -1 B
/versions -- 23.2 kB -- -1 B
docs:chunk:shared -- 68.3 kB -- -1 B
docs:shared:chunk/commons -- 5.99 kB -- -1 B
docs:shared:chunk/framework -- 42.3 kB -- -1 B
docs:shared:runtime/main -- 6.78 kB -- -1 B
docs:shared:runtime/webpack -- 1.24 kB -- -1 B
bundle Size Change Size Gzip Change Gzip
docs:/_app ▼ -100 B (-0.30% ) 33.6 kB -- -1 B
@material-ui/core -- 364 kB -- 100 kB
@material-ui/core[umd] -- 321 kB -- 93.3 kB
@material-ui/lab -- 203 kB -- 60.3 kB
@material-ui/styles -- 52 kB -- 15.6 kB
@material-ui/system -- 17.2 kB -- 4.52 kB
Alert -- 87.6 kB -- 27.8 kB
AlertTitle -- 68.9 kB -- 21.7 kB
AppBar -- 68.7 kB -- 21.6 kB
Autocomplete -- 136 kB -- 42.8 kB
Avatar -- 69.8 kB -- 21.9 kB
AvatarGroup -- 70.9 kB -- 22.5 kB
Backdrop -- 72.5 kB -- 22.4 kB
Badge -- 70 kB -- 21.8 kB
BottomNavigation -- 67.1 kB -- 21.1 kB
BottomNavigationAction -- 79.8 kB -- 25.3 kB
Box -- 73.6 kB -- 22.4 kB
Breadcrumbs -- 84.8 kB -- 26.9 kB
Button -- 84 kB -- 25.8 kB
ButtonBase -- 78.3 kB -- 24.6 kB
ButtonGroup -- 87.5 kB -- 27.1 kB
Card -- 67.5 kB -- 21.2 kB
CardActionArea -- 79.4 kB -- 25.1 kB
CardActions -- 66.7 kB -- 20.9 kB
CardContent -- 66.7 kB -- 20.9 kB
CardHeader -- 69.7 kB -- 22 kB
CardMedia -- 67 kB -- 21.1 kB
Checkbox -- 86.5 kB -- 27.4 kB
Chip -- 87 kB -- 26.8 kB
CircularProgress -- 68.8 kB -- 21.7 kB
ClickAwayListener -- 4.04 kB -- 1.63 kB
Collapse -- 72.7 kB -- 22.5 kB
colorManipulator -- 3.88 kB -- 1.52 kB
Container -- 67.9 kB -- 21.3 kB
CssBaseline -- 66.7 kB -- 21 kB
Dialog -- 87.5 kB -- 27.4 kB
DialogActions -- 66.8 kB -- 21 kB
DialogContent -- 66.9 kB -- 21 kB
DialogContentText -- 68.7 kB -- 21.6 kB
DialogTitle -- 69 kB -- 21.7 kB
Divider -- 67.4 kB -- 21.2 kB
docs:/ -- 10.8 kB -- -1 B
Drawer -- 89.2 kB -- 27.2 kB
ExpansionPanel -- 76.3 kB -- 24.1 kB
ExpansionPanelActions -- 66.8 kB -- 20.9 kB
ExpansionPanelDetails -- 66.6 kB -- 20.9 kB
ExpansionPanelSummary -- 82.4 kB -- 26.2 kB
Fab -- 81.1 kB -- 25.4 kB
Fade -- 28.4 kB -- 9.47 kB
FilledInput -- 78.2 kB -- 24.4 kB
FormControl -- 69.1 kB -- 21.6 kB
FormControlLabel -- 70.2 kB -- 22.1 kB
FormGroup -- 66.7 kB -- 20.8 kB
FormHelperText -- 68 kB -- 21.2 kB
FormLabel -- 68.1 kB -- 21.2 kB
Grid -- 69.8 kB -- 21.9 kB
GridList -- 67.2 kB -- 21.1 kB
GridListTile -- 68.4 kB -- 21.5 kB
GridListTileBar -- 67.9 kB -- 21.3 kB
Grow -- 29 kB -- 9.68 kB
Hidden -- 70.6 kB -- 22.3 kB
Icon -- 67.5 kB -- 21.2 kB
IconButton -- 80.4 kB -- 25.2 kB
Input -- 77.2 kB -- 24.2 kB
InputAdornment -- 69.8 kB -- 22 kB
InputBase -- 75.3 kB -- 23.7 kB
InputLabel -- 70 kB -- 21.6 kB
LinearProgress -- 70 kB -- 21.7 kB
Link -- 71.3 kB -- 22.6 kB
List -- 67 kB -- 20.9 kB
ListItem -- 81.4 kB -- 25.6 kB
ListItemAvatar -- 66.8 kB -- 20.9 kB
ListItemIcon -- 66.9 kB -- 21 kB
ListItemSecondaryAction -- 66.7 kB -- 20.9 kB
ListItemText -- 69.7 kB -- 22 kB
ListSubheader -- 67.4 kB -- 21.2 kB
Menu -- 93.2 kB -- 28.8 kB
MenuItem -- 82.5 kB -- 25.9 kB
MenuList -- 70.7 kB -- 22.2 kB
MobileStepper -- 72.5 kB -- 22.8 kB
Modal -- 14.9 kB -- 5.22 kB
NativeSelect -- 81.5 kB -- 25.9 kB
NoSsr -- 2.18 kB -- 1.03 kB
OutlinedInput -- 79.3 kB -- 24.7 kB
Pagination -- 88.8 kB -- 27.4 kB
PaginationItem -- 85.1 kB -- 26.3 kB
Paper -- 67 kB -- 20.9 kB
Popover -- 87.6 kB -- 27.2 kB
Popper -- 28.7 kB -- 10.3 kB
Portal -- 2.87 kB -- 1.29 kB
Radio -- 87.5 kB -- 27.7 kB
RadioGroup -- 68.6 kB -- 21.3 kB
Rating -- 75.2 kB -- 24.2 kB
RootRef -- 4.62 kB -- 1.76 kB
ScopedCssBaseline -- 67.5 kB -- 21.2 kB
Select -- 120 kB -- 35.9 kB
Skeleton -- 67.7 kB -- 21.4 kB
Slide -- 30.4 kB -- 10.1 kB
Slider -- 80.5 kB -- 25.7 kB
Snackbar -- 80.2 kB -- 25.2 kB
SnackbarContent -- 68.2 kB -- 21.3 kB
SpeedDial -- 90.5 kB -- 28.7 kB
SpeedDialAction -- 122 kB -- 38.9 kB
SpeedDialIcon -- 69.2 kB -- 21.8 kB
Step -- 67.3 kB -- 21.2 kB
StepButton -- 86.6 kB -- 27.4 kB
StepConnector -- 67.4 kB -- 21.3 kB
StepContent -- 73.8 kB -- 23.1 kB
StepIcon -- 69.3 kB -- 21.6 kB
StepLabel -- 73.2 kB -- 22.7 kB
Stepper -- 69.6 kB -- 22 kB
styles/createMuiTheme -- 22.2 kB -- 7.69 kB
SvgIcon -- 67.7 kB -- 21.2 kB
SwipeableDrawer -- 96.7 kB -- 30.4 kB
Switch -- 85.7 kB -- 27 kB
Tab -- 80.6 kB -- 25.7 kB
Table -- 67.3 kB -- 21.2 kB
TableBody -- 66.8 kB -- 20.9 kB
TableCell -- 68.7 kB -- 21.7 kB
TableContainer -- 66.7 kB -- 20.9 kB
TableFooter -- 66.8 kB -- 21 kB
TableHead -- 66.8 kB -- 20.9 kB
TablePagination -- 147 kB -- 43.2 kB
TableRow -- 67.2 kB -- 21.1 kB
TableSortLabel -- 81.7 kB -- 25.9 kB
Tabs -- 89.6 kB -- 28.7 kB
TextareaAutosize -- 5.19 kB -- 2.17 kB
TextField -- 129 kB -- 37.9 kB
ToggleButton -- 80.4 kB -- 25.5 kB
ToggleButtonGroup -- 67.9 kB -- 21.4 kB
Toolbar -- 67 kB -- 21.1 kB
Tooltip -- 106 kB -- 33.7 kB
TreeItem -- 79.9 kB -- 25.4 kB
TreeView -- 73 kB -- 23 kB
Typography -- 68.3 kB -- 21.4 kB
useAutocomplete -- 16.1 kB -- 5.74 kB
useMediaQuery -- 2.56 kB -- 1.06 kB
Zoom -- 28.5 kB -- 9.59 kB

Generated by 🚫 dangerJS against f1b7414

@eps1lon eps1lon marked this pull request as ready for review April 12, 2020 15:05
Copy link
Member

@oliviertassinari oliviertassinari left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An example of a K.O case after the change:

  1. Navigate to https://deploy-preview-20520--material-ui.netlify.com/guides/interoperability/
  2. Click on Controlling priority, the one highlighted in the below screenshot. The link doesn't work. The id of the table of contents and the DOM doesn't match.

Capture d’écran 2020-04-12 à 17 16 28

I could track down the origin of the singleton to #14703.

@eps1lon eps1lon force-pushed the docs/strict-mode-switch branch from 851c4c9 to f1b7414 Compare April 12, 2020 15:20
@oliviertassinari
Copy link
Member

I'm not aware of an easy solution, I'm sorry for leaving this 🥚here. Ideally, we wouldn't have introduced this global in the first place.

@eps1lon
Copy link
Member Author

eps1lon commented Apr 12, 2020

I was expecting some weirdness. I tested it on https://deploy-preview-20520--material-ui.netlify.com/styles/api/#arguments and that one seems fine even though it should clash just as well.

My ideal solution would be an id that is generated from the heading path. That should be unique without any special counter logic.

Or my actual ideal solution would be moving markdown parsing to build time. Then we could do two passes.

I'm leaving this open for a bit in case I stumble over an easy solution. It's not that important. Just helps debugging concurrent mode issues by reducing noise.

@eps1lon eps1lon added the on hold There is a blocker, we need to wait label Apr 12, 2020
@oliviertassinari
Copy link
Member

oliviertassinari commented Apr 12, 2020

helps debugging concurrent mode issues by reducing noise

What mode should we aim for using by default in the documentation (long term)?

@eps1lon
Copy link
Member Author

eps1lon commented Apr 12, 2020

What mode should we aim for using by default?

The stable one which is legacy. legacy-strict is for debugging StrictMode issues.

The others require react@experimental.

@eps1lon
Copy link
Member Author

eps1lon commented Apr 13, 2020

Let's close this for now. I don't have an easy solution to making this concurrent safe. Especially since we already render the markdown in chunks when it contains demos.

With mdx we can build the toc at build time (assuming all headings are written in markdown).

@eps1lon eps1lon closed this Apr 13, 2020
@eps1lon eps1lon deleted the docs/strict-mode-switch branch April 13, 2020 18:59
@oliviertassinari
Copy link
Member

oliviertassinari commented Apr 13, 2020

Won't we be able to generate the HTML from the markdown at build time too with marked? I would imagine we could cache the output and store it in getInitialProps/getStaticProps instead of importing the markdown source.

@eps1lon
Copy link
Member Author

eps1lon commented Apr 13, 2020

Yeah that would work too. But there are other problems as well so I want to get an overview of what is problematic first before spending too much time on a single issue. Working on the StrictMode compatible transitions was driven by too much wishful thinking 😉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs Improvements or additions to the documentation on hold There is a blocker, we need to wait
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants