Skip to content

Commit d3c6996

Browse files
authored
fix: run handleEnter/handleExited even without onEnter/onExited props (#3)
1 parent 3414d2f commit d3c6996

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

packages/material-ui/src/Snackbar/Snackbar.js

+13-11
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import { duration } from '../styles/transitions';
66
import ClickAwayListener from '../ClickAwayListener';
77
import useEventCallback from '../utils/useEventCallback';
88
import capitalize from '../utils/capitalize';
9-
import createChainedFunction from '../utils/createChainedFunction';
109
import Grow from '../Grow';
1110
import SnackbarContent from '../SnackbarContent';
1211

@@ -117,7 +116,7 @@ const Snackbar = React.forwardRef(function Snackbar(props, ref) {
117116
enter: duration.enteringScreen,
118117
exit: duration.leavingScreen,
119118
},
120-
TransitionProps,
119+
TransitionProps: { onEnter, onExited, ...TransitionProps } = {},
121120
...other
122121
} = props;
123122

@@ -185,12 +184,20 @@ const Snackbar = React.forwardRef(function Snackbar(props, ref) {
185184
}
186185
};
187186

188-
const handleExited = () => {
187+
const handleExited = (node) => {
189188
setExited(true);
189+
190+
if (onExited) {
191+
onExited(node);
192+
}
190193
};
191194

192-
const handleEnter = () => {
195+
const handleEnter = (node, isAppearing) => {
193196
setExited(false);
197+
198+
if (onEnter) {
199+
onEnter(node, isAppearing);
200+
}
194201
};
195202

196203
React.useEffect(() => {
@@ -212,13 +219,6 @@ const Snackbar = React.forwardRef(function Snackbar(props, ref) {
212219
return null;
213220
}
214221

215-
if (TransitionProps !== undefined && TransitionProps.onEnter !== undefined) {
216-
TransitionProps.onEnter = createChainedFunction(handleEnter, TransitionProps.onEnter);
217-
}
218-
if (TransitionProps !== undefined && TransitionProps.onExited !== undefined) {
219-
TransitionProps.onExited = createChainedFunction(handleExited, TransitionProps.onExited);
220-
}
221-
222222
return (
223223
<ClickAwayListener onClickAway={handleClickAway} {...ClickAwayListenerProps}>
224224
<div
@@ -237,6 +237,8 @@ const Snackbar = React.forwardRef(function Snackbar(props, ref) {
237237
in={open}
238238
timeout={transitionDuration}
239239
direction={vertical === 'top' ? 'down' : 'up'}
240+
onEnter={handleEnter}
241+
onExited={handleExited}
240242
{...TransitionProps}
241243
>
242244
{children || <SnackbarContent message={message} action={action} {...ContentProps} />}

0 commit comments

Comments
 (0)