overleaf/services/web/frontend/js/shared/components/tooltip.tsx
Timothée Alby 5731463d32 Merge pull request #7956 from overleaf/ii-refactor-toolitp-usage
Tooltip usage refactoring

GitOrigin-RevId: f4b2d4d57722172141a081dd60e4394ff7fff332
2022-05-19 08:04:07 +00:00

41 lines
868 B
TypeScript

import {
OverlayTrigger,
OverlayTriggerProps,
Tooltip as BSTooltip,
} from 'react-bootstrap'
type OverlayTriggerCustomProps = {
shouldUpdatePosition?: boolean // Not officially documented https://stackoverflow.com/a/43138470
} & OverlayTriggerProps
type TooltipProps = {
children: React.ReactNode
description: React.ReactNode
id: string
overlayProps?: Omit<OverlayTriggerCustomProps, 'overlay'>
tooltipProps?: BSTooltip.TooltipProps
}
function Tooltip({
id,
description,
children,
tooltipProps,
overlayProps,
}: TooltipProps) {
return (
<OverlayTrigger
overlay={
<BSTooltip id={`${id}-tooltip`} {...tooltipProps}>
{description}
</BSTooltip>
}
{...overlayProps}
placement={overlayProps?.placement || 'top'}
>
{children}
</OverlayTrigger>
)
}
export default Tooltip