env-autosuggest
Version:
A React component that provides variable autosuggestion functionality with a rich text editor-like interface. This component allows users to type variables within curly braces and get intelligent suggestions based on predefined variables.
26 lines (22 loc) • 1.22 kB
JSX
import React, { useEffect, useRef, useState } from 'react'
import SuggestionValueComponent from '../suggestionValueComponent/suggestionValueComponent'
import './tooltip.css'
export default function Tooltip(props) {
const tooltipRef = useRef()
const [tooltipPos, setTooltipPos] = useState(props?.tooltipPosition)
useEffect(() => {
const bodyPos = { innerHeight: window.innerWidth, innerWidth: window.innerWidth };
const suggestionBoxWidth = tooltipRef.current.getBoundingClientRect().width;
if (props?.tooltipPosition.left + suggestionBoxWidth >= (bodyPos.innerWidth - 10)) {
const extraWidth = (props?.tooltipPosition.left + suggestionBoxWidth) - bodyPos.innerWidth;
setTooltipPos({ top: props?.tooltipPosition?.top, left: props?.tooltipPosition?.left - extraWidth - 20 });
return;
}
setTooltipPos({ ...props?.tooltipPosition })
}, [props?.tooltipPosition])
return (
<div class="__tooltip-container__" ref={tooltipRef} style={{ top: `${tooltipPos.top + 18}px`, left: `${tooltipPos.left}px` }}>
<SuggestionValueComponent singleSuggestionDetails={props?.tooltipVariableDetails} />
</div>
)
}