Skip to content

[Portal] Support any children node#18692

Merged
oliviertassinari merged 4 commits into
mui:masterfrom
luffywuliao:master
Dec 6, 2019
Merged

[Portal] Support any children node#18692
oliviertassinari merged 4 commits into
mui:masterfrom
luffywuliao:master

Conversation

@luffywuliao

@luffywuliao luffywuliao commented Dec 5, 2019

Copy link
Copy Markdown
Contributor

Fix #18675

@mui-pr-bot

mui-pr-bot commented Dec 5, 2019

Copy link
Copy Markdown
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 type: bug It doesn't behave as expected. component: Portal 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

@eps1lon eps1lon left a comment

Copy link
Copy Markdown
Member

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

Comment thread packages/material-ui/src/Portal/Portal.js Outdated
@oliviertassinari oliviertassinari changed the title [Portal] The children prop is required [Portal] Support any children node Dec 5, 2019
@oliviertassinari

Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
Member

@luffywuliao Thank you

@luffywuliao

Copy link
Copy Markdown
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
Copy Markdown
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

scope: portal Changes related to the portal. type: bug It doesn't behave as expected.

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