tooltip.tsx 868 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import {
  2. OverlayTrigger,
  3. OverlayTriggerProps,
  4. Tooltip as BSTooltip,
  5. } from 'react-bootstrap'
  6. type OverlayTriggerCustomProps = {
  7. shouldUpdatePosition?: boolean // Not officially documented https://stackoverflow.com/a/43138470
  8. } & OverlayTriggerProps
  9. type TooltipProps = {
  10. children: React.ReactNode
  11. description: React.ReactNode
  12. id: string
  13. overlayProps?: Omit<OverlayTriggerCustomProps, 'overlay'>
  14. tooltipProps?: BSTooltip.TooltipProps
  15. }
  16. function Tooltip({
  17. id,
  18. description,
  19. children,
  20. tooltipProps,
  21. overlayProps,
  22. }: TooltipProps) {
  23. return (
  24. <OverlayTrigger
  25. overlay={
  26. <BSTooltip id={`${id}-tooltip`} {...tooltipProps}>
  27. {description}
  28. </BSTooltip>
  29. }
  30. {...overlayProps}
  31. placement={overlayProps?.placement || 'top'}
  32. >
  33. {children}
  34. </OverlayTrigger>
  35. )
  36. }
  37. export default Tooltip