'use client' import PropTypes from 'prop-types' import React, { useEffect, useRef, useState } from 'react' export const PositionTooltip = ({ text, position }) => { const [tooltipPosition, setTooltipPosition] = useState(position) const tooltipRef = useRef(null) useEffect(() => { // Función para calcular y ajustar la posición del tooltip const calculatePosition = () => { const tooltipHeight = tooltipRef.current.clientHeight const windowHeight = window.innerHeight const offset = 10 // Si la posición es 'top' y no hay suficiente espacio en la parte superior, cambia a 'bottom' if (position === 'top' && tooltipHeight + offset > tooltipRef.current.getBoundingClientRect().top) { setTooltipPosition('bottom') } // Si la posición es 'bottom' y no hay suficiente espacio en la parte inferior, cambia a 'top' if (position === 'bottom' && tooltipHeight + offset > windowHeight - tooltipRef.current.getBoundingClientRect().bottom) { setTooltipPosition('top') } } // Llamada a la función para calcular la posición inicial calculatePosition() // Vuelve a calcular la posición cuando se redimensiona la ventana window.addEventListener('resize', calculatePosition) return () => { window.removeEventListener('resize', calculatePosition) } }, [position]) return (