Skip to content

Commit

Permalink
[Tooltip][Joy] Fix arrow does not appear (#35473)
Browse files Browse the repository at this point in the history
  • Loading branch information
siriwatknp committed Dec 14, 2022
1 parent d8078d9 commit 362229d
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 18 deletions.
9 changes: 6 additions & 3 deletions docs/data/joy/components/tooltip/ArrowTooltips.js
@@ -1,11 +1,14 @@
import * as React from 'react';
import Button from '@mui/joy/Button';
import Sheet from '@mui/joy/Sheet';
import Tooltip from '@mui/joy/Tooltip';

export default function ArrowTooltips() {
return (
<Tooltip title="Add" arrow>
<Button variant="plain">Arrow</Button>
</Tooltip>
<Sheet sx={{ pr: 7 }}>
<Tooltip title="Add" arrow open placement="right">
<Button variant="plain">Arrow</Button>
</Tooltip>
</Sheet>
);
}
9 changes: 6 additions & 3 deletions docs/data/joy/components/tooltip/ArrowTooltips.tsx
@@ -1,11 +1,14 @@
import * as React from 'react';
import Button from '@mui/joy/Button';
import Sheet from '@mui/joy/Sheet';
import Tooltip from '@mui/joy/Tooltip';

export default function ArrowTooltips() {
return (
<Tooltip title="Add" arrow>
<Button variant="plain">Arrow</Button>
</Tooltip>
<Sheet sx={{ pr: 7 }}>
<Tooltip title="Add" arrow open placement="right">
<Button variant="plain">Arrow</Button>
</Tooltip>
</Sheet>
);
}
8 changes: 5 additions & 3 deletions docs/data/joy/components/tooltip/ArrowTooltips.tsx.preview
@@ -1,3 +1,5 @@
<Tooltip title="Add" arrow>
<Button variant="plain">Arrow</Button>
</Tooltip>
<Sheet sx={{ pr: 7 }}>
<Tooltip title="Add" arrow open placement="right">
<Button variant="plain">Arrow</Button>
</Tooltip>
</Sheet>
4 changes: 1 addition & 3 deletions packages/mui-joy/src/Tooltip/Tooltip.tsx
Expand Up @@ -588,9 +588,7 @@ const Tooltip = React.forwardRef(function Tooltip(inProps, ref) {
});

const [SlotArrow, arrowProps] = useSlot('arrow', {
additionalProps: {
ref: setArrowRef,
},
ref: setArrowRef,
className: classes.arrow,
elementType: TooltipArrow,
externalForwardedProps: other,
Expand Down
10 changes: 4 additions & 6 deletions packages/mui-joy/src/utils/useSlot.ts
Expand Up @@ -52,7 +52,9 @@ export default function useSlot<
* e.g. the `externalForwardedProps` are spread to `root` slot but not other slots.
*/
name: T,
parameters: (T extends 'root' ? { ref: React.ForwardedRef<any> } : {}) & {
parameters: (T extends 'root' // root slot must pass a `ref` as a parameter
? { ref: React.ForwardedRef<any> }
: { ref?: React.ForwardedRef<any> }) & {
/**
* The slot's className
*/
Expand Down Expand Up @@ -129,11 +131,7 @@ export default function useSlot<
externalSlotProps: resolvedComponentsProps,
});

const ref = useForkRef(
internalRef,
// @ts-ignore `ref` is required for the 'root' slot
useForkRef(resolvedComponentsProps?.ref, name === 'root' ? parameters.ref : undefined),
) as ((instance: any | null) => void) | null;
const ref = useForkRef(internalRef, resolvedComponentsProps?.ref, parameters.ref);

const finalOwnerState = getSlotOwnerState
? { ...ownerState, ...getSlotOwnerState(mergedProps as any) }
Expand Down

0 comments on commit 362229d

Please sign in to comment.