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

[Portal] Support any children node #18692

Merged
merged 4 commits into from
Dec 6, 2019
Merged

Conversation

luffywuliao
Copy link
Contributor

@luffywuliao luffywuliao commented Dec 5, 2019

Fix #18675

@mui-pr-bot
Copy link

mui-pr-bot commented Dec 5, 2019

Details of bundle changes.

Comparing: 8ba3283...58b97cd

bundle Size Change Size Gzip Change Gzip
Drawer ▲ +28 B (+0.03% ) 83.2 kB ▲ +11 B (+0.04% ) 25.2 kB
Dialog ▲ +28 B (+0.03% ) 81.5 kB ▲ +10 B (+0.04% ) 25.4 kB
Tooltip ▲ +28 B (+0.03% ) 99.5 kB ▲ +10 B (+0.03% ) 31.4 kB
SwipeableDrawer ▲ +28 B (+0.03% ) 90.6 kB ▲ +9 B (+0.03% ) 28 kB
@material-ui/core ▲ +28 B (+0.01% ) 354 kB ▲ +8 B (+0.01% ) 96.7 kB
Modal ▲ +28 B (+0.20% ) 14.3 kB ▲ +8 B (+0.16% ) 5 kB
Popover ▲ +28 B (+0.03% ) 81.5 kB ▲ +8 B (+0.03% ) 25.1 kB
SpeedDialAction ▲ +28 B (+0.02% ) 116 kB ▲ +8 B (+0.02% ) 36.5 kB
TablePagination ▲ +28 B (+0.02% ) 140 kB ▲ +8 B (+0.02% ) 40.7 kB
TextField ▲ +28 B (+0.02% ) 122 kB ▲ +8 B (+0.02% ) 35.6 kB
@material-ui/lab ▲ +28 B (+0.02% ) 174 kB ▲ +7 B (+0.01% ) 52.3 kB
Autocomplete ▲ +28 B (+0.02% ) 128 kB ▲ +7 B (+0.02% ) 39.8 kB
docs.main ▲ +28 B (0.00% ) 609 kB ▲ +7 B (0.00% ) 194 kB
Menu ▲ +28 B (+0.03% ) 87.1 kB ▲ +7 B (+0.03% ) 26.8 kB
Select ▲ +28 B (+0.02% ) 113 kB ▲ +7 B (+0.02% ) 33.5 kB
Popper ▲ +28 B (+0.10% ) 28.7 kB ▲ +4 B (+0.04% ) 10.2 kB
Portal ▲ +28 B (+0.98% ) 2.9 kB ▲ +4 B (+0.31% ) 1.3 kB
@material-ui/core[umd] ▲ +26 B (+0.01% ) 311 kB ▲ +8 B (+0.01% ) 89.6 kB
@material-ui/styles -- 51 kB -- 15.3 kB
@material-ui/system -- 14.8 kB -- 4.06 kB
AppBar -- 62.7 kB -- 19.5 kB
Avatar -- 61.7 kB -- 19.3 kB
Backdrop -- 66.6 kB -- 20.5 kB
Badge -- 64.2 kB -- 19.9 kB
BottomNavigation -- 61.3 kB -- 19.1 kB
BottomNavigationAction -- 74.3 kB -- 23.4 kB
Box -- 69.6 kB -- 21 kB
Breadcrumbs -- 66.9 kB -- 20.8 kB
Button -- 78.3 kB -- 23.9 kB
ButtonBase -- 72.8 kB -- 22.7 kB
ButtonGroup -- 80.9 kB -- 24.8 kB
Card -- 61.6 kB -- 19.2 kB
CardActionArea -- 73.9 kB -- 23.2 kB
CardActions -- 60.9 kB -- 19 kB
CardContent -- 60.9 kB -- 19 kB
CardHeader -- 64 kB -- 20 kB
CardMedia -- 61.2 kB -- 19.2 kB
Checkbox -- 80.6 kB -- 25.3 kB
Chip -- 81.4 kB -- 24.8 kB
CircularProgress -- 63 kB -- 19.8 kB
ClickAwayListener -- 3.87 kB -- 1.56 kB
Collapse -- 66.8 kB -- 20.6 kB
colorManipulator -- 3.85 kB -- 1.52 kB
Container -- 62 kB -- 19.3 kB
CssBaseline -- 56.4 kB -- 17.6 kB
DialogActions -- 61 kB -- 19 kB
DialogContent -- 61.1 kB -- 19.1 kB
DialogContentText -- 62.9 kB -- 19.7 kB
DialogTitle -- 63.2 kB -- 19.7 kB
Divider -- 61.5 kB -- 19.2 kB
docs.landing -- 52.4 kB -- 11.4 kB
ExpansionPanel -- 70.1 kB -- 21.8 kB
ExpansionPanelActions -- 61 kB -- 19 kB
ExpansionPanelDetails -- 60.8 kB -- 19 kB
ExpansionPanelSummary -- 76.9 kB -- 24.2 kB
Fab -- 75.6 kB -- 23.5 kB
Fade -- 22.4 kB -- 7.71 kB
FilledInput -- 72.3 kB -- 22.4 kB
FormControl -- 63.3 kB -- 19.6 kB
FormControlLabel -- 64.4 kB -- 20.1 kB
FormGroup -- 60.9 kB -- 19 kB
FormHelperText -- 62.1 kB -- 19.4 kB
FormLabel -- 62.4 kB -- 19.2 kB
Grid -- 64 kB -- 20 kB
GridList -- 61.4 kB -- 19.2 kB
GridListTile -- 62.6 kB -- 19.5 kB
GridListTileBar -- 62.1 kB -- 19.3 kB
Grow -- 23.1 kB -- 7.83 kB
Hidden -- 64.8 kB -- 20.2 kB
Icon -- 61.7 kB -- 19.2 kB
IconButton -- 75 kB -- 23.3 kB
Input -- 71.3 kB -- 22.1 kB
InputAdornment -- 64 kB -- 20 kB
InputBase -- 69.4 kB -- 21.7 kB
InputLabel -- 64.2 kB -- 20 kB
LinearProgress -- 64.2 kB -- 20 kB
Link -- 65.5 kB -- 20.6 kB
List -- 61.3 kB -- 19 kB
ListItem -- 75.9 kB -- 23.6 kB
ListItemAvatar -- 61 kB -- 19 kB
ListItemIcon -- 61.1 kB -- 19 kB
ListItemSecondaryAction -- 60.9 kB -- 19 kB
ListItemText -- 63.8 kB -- 19.9 kB
ListSubheader -- 61.6 kB -- 19.3 kB
MenuItem -- 77 kB -- 23.9 kB
MenuList -- 64.9 kB -- 20.2 kB
MobileStepper -- 66.6 kB -- 20.8 kB
NativeSelect -- 75.6 kB -- 23.7 kB
NoSsr -- 2.19 kB -- 1.03 kB
OutlinedInput -- 72.8 kB -- 22.6 kB
Paper -- 61.1 kB -- 19 kB
Radio -- 81.5 kB -- 25.6 kB
RadioGroup -- 62.1 kB -- 19.4 kB
Rating -- 68.9 kB -- 22.1 kB
RootRef -- 4.43 kB -- 1.67 kB
Skeleton -- 61.4 kB -- 19.3 kB
Slide -- 24.5 kB -- 8.32 kB
Slider -- 74.5 kB -- 23.3 kB
Snackbar -- 76 kB -- 23.7 kB
SnackbarContent -- 64.5 kB -- 20.2 kB
SpeedDial -- 84.9 kB -- 26.7 kB
SpeedDialIcon -- 63.5 kB -- 19.9 kB
Step -- 61.5 kB -- 19.2 kB
StepButton -- 81.1 kB -- 25.5 kB
StepConnector -- 61.6 kB -- 19.3 kB
StepContent -- 67.9 kB -- 21.2 kB
StepIcon -- 63.5 kB -- 19.7 kB
StepLabel -- 67.5 kB -- 21.1 kB
Stepper -- 63.6 kB -- 20 kB
styles/createMuiTheme -- 15.6 kB -- 5.47 kB
SvgIcon -- 61.9 kB -- 19.3 kB
Switch -- 80 kB -- 25 kB
Tab -- 75.2 kB -- 23.7 kB
Table -- 61.4 kB -- 19.2 kB
TableBody -- 61 kB -- 19 kB
TableCell -- 62.9 kB -- 19.7 kB
TableFooter -- 61 kB -- 19 kB
TableHead -- 61 kB -- 19 kB
TableRow -- 61.4 kB -- 19.1 kB
TableSortLabel -- 76.2 kB -- 23.9 kB
Tabs -- 84.3 kB -- 26.5 kB
TextareaAutosize -- 5.06 kB -- 2.11 kB
ToggleButton -- 75 kB -- 23.7 kB
ToggleButtonGroup -- 62.1 kB -- 19.4 kB
Toolbar -- 61.2 kB -- 19.1 kB
TreeItem -- 72.5 kB -- 22.8 kB
TreeView -- 65.3 kB -- 20.4 kB
Typography -- 62.5 kB -- 19.5 kB
useAutocomplete -- 12.6 kB -- 4.63 kB
useMediaQuery -- 2.47 kB -- 1.04 kB
Zoom -- 22.5 kB -- 7.71 kB

Generated by 🚫 dangerJS against 58b97cd

@mui mui deleted a comment from luffywuliao Dec 5, 2019
@oliviertassinari oliviertassinari added bug 🐛 Something doesn't work component: Portal The React component. labels Dec 5, 2019
@oliviertassinari oliviertassinari changed the title [Portal] fix the children handle for null or undefined [Portal] Fix rendering when children is null or undefined Dec 5, 2019
eps1lon
eps1lon previously requested changes Dec 5, 2019
Copy link
Member

@eps1lon eps1lon left a comment

Choose a reason for hiding this comment

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

Please address #18675 (comment) first or add a legitimate test case that was failing before.

@oliviertassinari oliviertassinari changed the title [Portal] Fix rendering when children is null or undefined [Portal] The children prop is required Dec 5, 2019
@oliviertassinari oliviertassinari dismissed eps1lon’s stale review December 5, 2019 14:03

Good catch, thanks, updated

@oliviertassinari oliviertassinari changed the title [Portal] The children prop is required [Portal] Support any children node Dec 5, 2019
@oliviertassinari
Copy link
Member

I have updated the pull request so the Portal can support any children node.

In the future, I think that we should consider to remove the disablePortal prop. I think that it should be handled a bit higher in the rendering inheritance.

@luffywuliao
Copy link
Contributor Author

I have updated the pull request so the Portal can support any children node.

In the future, I think that we should consider to remove the disablePortal prop. I think that it should be handled a bit higher in the rendering inheritance.

Is there any solution to remove the disablePortal prop?

@oliviertassinari
Copy link
Member

Is there any solution to remove the disablePortal prop?

What do you mean? Other than wait for the next breaking change window, v5?

@oliviertassinari oliviertassinari merged commit fed3ee3 into mui:master Dec 6, 2019
@oliviertassinari
Copy link
Member

@luffywuliao Thank you

@luffywuliao
Copy link
Contributor Author

@oliviertassinari No problem. Thanks for adding the test cases.
I mean if you remove the disablePortal prop, the component users will write more code to handle the case that portal the children or not.
However, it will make the Portal simpler.
I am wondering how to decide? or which one is more important for a reused component.

@oliviertassinari
Copy link
Member

@luffywuliao I don't think that the userland different is significant, for instance, it could be as simple as swapping Portal with React.Fragment.

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: Portal The React component.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Portal] Throw error if the children is undefined or null
5 participants