Skip to content

Commit

Permalink
Switched from manual merging of PopperProps to using deepmerge.
Browse files Browse the repository at this point in the history
  • Loading branch information
Oliver Haynes committed Feb 26, 2020
1 parent 1f779e9 commit 3aad195
Showing 1 changed file with 11 additions and 15 deletions.
26 changes: 11 additions & 15 deletions packages/material-ui/src/Tooltip/Tooltip.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import setRef from '../utils/setRef';
import { useIsFocusVisible } from '../utils/focusVisible';
import useControlled from '../utils/useControlled';
import useTheme from '../styles/useTheme';
import deepmerge from 'deepmerge'

function round(value) {
return Math.round(value * 1e5) / 1e5;
Expand Down Expand Up @@ -484,22 +485,18 @@ const Tooltip = React.forwardRef(function Tooltip(props, ref) {
}
}

const { popperOptions, ...PopperPropsRest } = PopperProps || {};

// Avoid the creation of a new Popper.js instance at each render.
const popperOptionsWithArrow = React.useMemo(
() => ({
...popperOptions,
const PopperPropsToPassToPopper = React.useMemo(() => {
const defaultPopperOptions = {
modifiers: {
arrow: {
enabled: Boolean(arrowRef),
element: arrowRef,
},
...(popperOptions && popperOptions.modifiers),
},
}),
[arrowRef, popperOptions],
);
element: arrowRef
}
}
}

return deepmerge({ popperOptions: defaultPopperOptions }, PopperProps || {})
}, [arrowRef, PopperProps])

return (
<React.Fragment>
Expand All @@ -514,9 +511,8 @@ const Tooltip = React.forwardRef(function Tooltip(props, ref) {
open={childNode ? open : false}
id={childrenProps['aria-describedby']}
transition
popperOptions={popperOptionsWithArrow}
{...interactiveWrapperListeners}
{...PopperPropsRest}
{...PopperPropsToPassToPopper}
>
{({ placement: placementInner, TransitionProps: TransitionPropsInner }) => (
<TransitionComponent
Expand Down

0 comments on commit 3aad195

Please sign in to comment.