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

[TextareaAutosize] - Prevent maximum update depth exceeded in IE11 #19578

Closed
wants to merge 1 commit into from

Conversation

guiihlopes
Copy link
Contributor

@guiihlopes guiihlopes commented Feb 6, 2020

Hello guys!

I am sending this PR to show that if we change React.Fragment to div, the problem is solved. I believe this is a problem in React itself.

I don't know if it's valid and safe to continue using Fragments in this component right now, and maybe we should open an issue to react team.

I also tried to search for excessive update issues related to React.Fragment, but I couldn't find any trace.

I know that there are some tests related to describeConformance that are failing, but the idea of this PR is to provoke criticism and see if these conformities really make sense for this component and if it does, check if we will create the protections commented here.

@mui-pr-bot
Copy link

Details of bundle changes.

Comparing: 3764e63...5ebf471

bundle Size Change Size Gzip Change Gzip
@material-ui/core[umd] ▲ +14 B (0.00% ) 317 kB ▲ +11 B (+0.01% ) 92 kB
TextField ▲ +12 B (+0.01% ) 125 kB ▲ +20 B (+0.05% ) 36.6 kB
TablePagination ▲ +12 B (+0.01% ) 144 kB ▲ +17 B (+0.04% ) 42 kB
NativeSelect ▲ +12 B (+0.02% ) 77 kB ▲ +11 B (+0.05% ) 24.3 kB
Select ▲ +12 B (+0.01% ) 117 kB ▲ +10 B (+0.03% ) 34.6 kB
@material-ui/core ▲ +12 B (0.00% ) 362 kB ▲ +9 B (+0.01% ) 98.9 kB
TextareaAutosize ▲ +12 B (+0.23% ) 5.13 kB ▲ +9 B (+0.42% ) 2.15 kB
FilledInput ▲ +12 B (+0.02% ) 73.7 kB ▲ +5 B (+0.02% ) 22.9 kB
Input ▲ +12 B (+0.02% ) 72.7 kB ▲ +4 B (+0.02% ) 22.7 kB
InputBase ▲ +12 B (+0.02% ) 70.8 kB ▲ +4 B (+0.02% ) 22.2 kB
OutlinedInput ▲ +12 B (+0.02% ) 74.7 kB ▲ +1 B (0.00% ) 23.3 kB
@material-ui/lab -- 185 kB -- 55.2 kB
@material-ui/styles -- 51.4 kB -- 15.4 kB
@material-ui/system -- 16.4 kB -- 4.3 kB
Alert -- 83.6 kB -- 26.3 kB
AlertTitle -- 64.3 kB -- 20.3 kB
AppBar -- 64.2 kB -- 20.1 kB
Autocomplete -- 132 kB -- 41.4 kB
Avatar -- 65.4 kB -- 20.6 kB
AvatarGroup -- 62.4 kB -- 19.6 kB
Backdrop -- 68 kB -- 21 kB
Badge -- 65.5 kB -- 20.4 kB
BottomNavigation -- 62.6 kB -- 19.6 kB
BottomNavigationAction -- 75.7 kB -- 23.9 kB
Box -- 72 kB -- 21.8 kB
Breadcrumbs -- 67.9 kB -- 21.3 kB
Button -- 79.9 kB -- 24.5 kB
ButtonBase -- 74.2 kB -- 23.3 kB
ButtonGroup -- 83.4 kB -- 25.5 kB
Card -- 63 kB -- 19.7 kB
CardActionArea -- 75.3 kB -- 23.7 kB
CardActions -- 62.2 kB -- 19.5 kB
CardContent -- 62.1 kB -- 19.5 kB
CardHeader -- 65.2 kB -- 20.5 kB
CardMedia -- 62.5 kB -- 19.7 kB
Checkbox -- 83.2 kB -- 26.3 kB
Chip -- 82.8 kB -- 25.4 kB
CircularProgress -- 64.3 kB -- 20.3 kB
ClickAwayListener -- 3.91 kB -- 1.55 kB
Collapse -- 68.2 kB -- 21.1 kB
colorManipulator -- 3.88 kB -- 1.52 kB
Container -- 63.3 kB -- 19.8 kB
CssBaseline -- 57.7 kB -- 18.1 kB
Dialog -- 83.2 kB -- 25.9 kB
DialogActions -- 62.2 kB -- 19.5 kB
DialogContent -- 62.4 kB -- 19.6 kB
DialogContentText -- 64.2 kB -- 20.2 kB
DialogTitle -- 64.4 kB -- 20.2 kB
Divider -- 62.7 kB -- 19.7 kB
docs.landing -- 56.4 kB -- 14.5 kB
docs.main -- 596 kB -- 194 kB
Drawer -- 85 kB -- 25.8 kB
ExpansionPanel -- 72.5 kB -- 22.7 kB
ExpansionPanelActions -- 62.2 kB -- 19.5 kB
ExpansionPanelDetails -- 62.1 kB -- 19.5 kB
ExpansionPanelSummary -- 78.3 kB -- 24.7 kB
Fab -- 77 kB -- 24 kB
Fade -- 23.4 kB -- 7.97 kB
FormControl -- 64.6 kB -- 20.2 kB
FormControlLabel -- 65.7 kB -- 20.6 kB
FormGroup -- 62.2 kB -- 19.5 kB
FormHelperText -- 63.5 kB -- 20 kB
FormLabel -- 63.6 kB -- 19.8 kB
Grid -- 65.3 kB -- 20.5 kB
GridList -- 62.6 kB -- 19.7 kB
GridListTile -- 63.9 kB -- 20 kB
GridListTileBar -- 63.4 kB -- 19.9 kB
Grow -- 24 kB -- 8.19 kB
Hidden -- 66.1 kB -- 20.8 kB
Icon -- 62.9 kB -- 19.8 kB
IconButton -- 76.3 kB -- 23.8 kB
InputAdornment -- 65.3 kB -- 20.5 kB
InputLabel -- 65.5 kB -- 20.2 kB
LinearProgress -- 65.5 kB -- 20.5 kB
Link -- 66.8 kB -- 21.1 kB
List -- 62.5 kB -- 19.5 kB
ListItem -- 77.3 kB -- 24.2 kB
ListItemAvatar -- 62.3 kB -- 19.5 kB
ListItemIcon -- 62.3 kB -- 19.5 kB
ListItemSecondaryAction -- 62.2 kB -- 19.5 kB
ListItemText -- 65.1 kB -- 20.5 kB
ListSubheader -- 62.9 kB -- 19.8 kB
Menu -- 88.9 kB -- 27.4 kB
MenuItem -- 78.4 kB -- 24.5 kB
MenuList -- 66.2 kB -- 20.7 kB
MobileStepper -- 68 kB -- 21.4 kB
Modal -- 14.5 kB -- 5.04 kB
NoSsr -- 2.19 kB -- 1.04 kB
Paper -- 62.5 kB -- 19.5 kB
Popover -- 83.3 kB -- 25.8 kB
Popper -- 28.8 kB -- 10.3 kB
Portal -- 2.92 kB -- 1.3 kB
Radio -- 84.2 kB -- 26.6 kB
RadioGroup -- 64.6 kB -- 20.1 kB
Rating -- 70.7 kB -- 22.7 kB
RootRef -- 4.24 kB -- 1.64 kB
Skeleton -- 63.1 kB -- 20 kB
Slide -- 25.5 kB -- 8.71 kB
Slider -- 76.8 kB -- 24.3 kB
Snackbar -- 75.6 kB -- 23.7 kB
SnackbarContent -- 63.7 kB -- 20.1 kB
SpeedDial -- 86.4 kB -- 27.2 kB
SpeedDialAction -- 119 kB -- 37.5 kB
SpeedDialIcon -- 64.7 kB -- 20.3 kB
Step -- 62.8 kB -- 19.7 kB
StepButton -- 82.5 kB -- 26.1 kB
StepConnector -- 62.9 kB -- 19.8 kB
StepContent -- 69.3 kB -- 21.7 kB
StepIcon -- 64.8 kB -- 20.2 kB
StepLabel -- 68.8 kB -- 21.7 kB
Stepper -- 65 kB -- 20.5 kB
styles/createMuiTheme -- 16.5 kB -- 5.81 kB
SvgIcon -- 63.2 kB -- 19.8 kB
SwipeableDrawer -- 92.4 kB -- 28.9 kB
Switch -- 82.3 kB -- 26 kB
Tab -- 76.5 kB -- 24.2 kB
Table -- 62.7 kB -- 19.7 kB
TableBody -- 62.3 kB -- 19.5 kB
TableCell -- 64.2 kB -- 20.2 kB
TableContainer -- 62.1 kB -- 19.5 kB
TableFooter -- 62.3 kB -- 19.5 kB
TableHead -- 62.3 kB -- 19.5 kB
TableRow -- 62.6 kB -- 19.7 kB
TableSortLabel -- 77.6 kB -- 24.4 kB
Tabs -- 85.8 kB -- 27.2 kB
ToggleButton -- 76.3 kB -- 24.2 kB
ToggleButtonGroup -- 63.4 kB -- 20 kB
Toolbar -- 62.5 kB -- 19.6 kB
Tooltip -- 102 kB -- 32.4 kB
TreeItem -- 74.2 kB -- 23.5 kB
TreeView -- 66.8 kB -- 21.1 kB
Typography -- 63.8 kB -- 20 kB
useAutocomplete -- 14.7 kB -- 5.32 kB
useMediaQuery -- 2.58 kB -- 1.07 kB
Zoom -- 23.5 kB -- 8.1 kB

Generated by 🚫 dangerJS against 5ebf471

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.

Soon or later, we will stop IE 11 support, I don't think that we should make hard tradeoff for this support target. Instead, I propose that we ignore the issue with #17672. It should be good enough. Would it work for you? Do you want to work on it here? :)

@oliviertassinari oliviertassinari added bug 🐛 Something doesn't work component: TextareaAutosize The React component. PR: needs revision The pull request can't be merged. More details is available on the code review or fails in the CI labels Feb 6, 2020
@guiihlopes
Copy link
Contributor Author

There are just a few IE11 users remaining, so I think it's fine for me.

@guiihlopes guiihlopes closed this Feb 7, 2020
@oliviertassinari
Copy link
Member

oliviertassinari commented Feb 7, 2020

What do you mean, do you want to apply the proposed patch (that can also benefits non IE 11 users) or ignore the problem?

@guiihlopes
Copy link
Contributor Author

I mean that's fine to ignore the problem at this moment. The proposed patch seems to work, but idk... In my opinion it really looks like a workaround and not the best solution for the problem. Do you think we should apply those protections?

@oliviertassinari
Copy link
Member

The problem for end-users is that when the layout is unstable, it goes really wrong. It crashes the page. Shouldn't we scope the worse case to a misalignment? Now, this is also an advantage for Material-UI as it gives a strong incentive for developers to report the issue. So, it's a tricky call to make. @eps1lon What do you think?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug 🐛 Something doesn't work component: TextareaAutosize The React component. PR: needs revision The pull request can't be merged. More details is available on the code review or fails in the CI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants