MCPcopy Index your code
hub / github.com/adobe/react-spectrum / TooltipInner

Function TooltipInner

packages/react-aria-components/src/Tooltip.tsx:185–243  ·  view source on GitHub ↗
(
  props: TooltipProps & {isExiting: boolean; tooltipRef: RefObject<HTMLDivElement | null>}
)

Source from the content-addressed store, hash-verified

183});
184
185function TooltipInner(
186 props: TooltipProps & {isExiting: boolean; tooltipRef: RefObject<HTMLDivElement | null>}
187) {
188 let state = useContext(TooltipTriggerStateContext)!;
189 let arrowRef = useRef<HTMLDivElement>(null);
190
191 let {overlayProps, arrowProps, placement, triggerAnchorPoint} = useOverlayPosition({
192 placement: props.placement || 'top',
193 targetRef: props.triggerRef!,
194 overlayRef: props.tooltipRef,
195 arrowRef,
196 offset: props.offset,
197 crossOffset: props.crossOffset,
198 isOpen: state.isOpen,
199 arrowBoundaryOffset: props.arrowBoundaryOffset,
200 shouldFlip: props.shouldFlip,
201 containerPadding: props.containerPadding,
202 onClose: () => state.close(true)
203 });
204
205 let isEntering = useEnterAnimation(props.tooltipRef, !!placement) || props.isEntering || false;
206 let renderProps = useRenderProps({
207 ...props,
208 defaultClassName: 'react-aria-Tooltip',
209 values: {
210 placement,
211 isEntering,
212 isExiting: props.isExiting,
213 state
214 }
215 });
216
217 props = mergeProps(props, overlayProps);
218 let {tooltipProps} = useTooltip(props, state);
219
220 let DOMProps = filterDOMProps(props, {global: true});
221
222 return (
223 <dom.div
224 {...mergeProps(DOMProps, renderProps, tooltipProps)}
225 ref={props.tooltipRef}
226 style={
227 {
228 ...overlayProps.style,
229 '--trigger-anchor-point': triggerAnchorPoint
230 ? `${triggerAnchorPoint.x}px ${triggerAnchorPoint.y}px`
231 : undefined,
232 ...renderProps.style
233 } as CSSProperties
234 }
235 data-placement={placement ?? undefined}
236 data-entering={isEntering || undefined}
237 data-exiting={props.isExiting || undefined}>
238 <OverlayArrowContext.Provider value={{...arrowProps, placement, ref: arrowRef}}>
239 {renderProps.children}
240 </OverlayArrowContext.Provider>
241 </dom.div>
242 );

Callers

nothing calls this directly

Calls 7

useOverlayPositionFunction · 0.90
useEnterAnimationFunction · 0.90
useRenderPropsFunction · 0.90
mergePropsFunction · 0.90
filterDOMPropsFunction · 0.90
useTooltipFunction · 0.85
closeMethod · 0.65

Tested by

no test coverage detected