UNPKG

react-tether

Version:

A positioning engine to make overlays, tooltips and dropdowns better

52 lines (51 loc) 1.99 kB
import React, { Component } from "react"; import type { RefObject } from "react"; import Tether from "tether"; type TetherEvent = "repositioned" | "update"; type TetherEventHandler = (event?: { top: string; left: "string"; }) => void; interface ReactTetherProps extends Tether.ITetherOptions { renderElementTag?: string; renderElementTo?: string | HTMLElement; renderTarget: (ref: React.RefObject<any>) => void; renderElement?: (ref: React.RefObject<any>) => void; id?: string; className?: string; style?: Partial<CSSStyleDeclaration>; onUpdate?: TetherEventHandler; onRepositioned?: TetherEventHandler; } export default class ReactTether extends Component<ReactTetherProps> { _targetNode: RefObject<HTMLElement>; _elementNode: RefObject<HTMLElement>; _elementParentNode: HTMLElement | null; _tetherInstance: Tether | null; componentDidMount(): void; componentDidUpdate(previousProps: ReactTetherProps): void; componentWillUnmount(): void; getTetherInstance(): Tether | null; disable(): void; enable(): void; on(event: TetherEvent, handler: TetherEventHandler, ctx?: unknown): void; once(event: TetherEvent, handler: TetherEventHandler, ctx?: unknown): void; off(event: TetherEvent, handler: TetherEventHandler): void; position(): void; _runRenders(): { targetComponent: (void & React.ReactElement<unknown, string | React.JSXElementConstructor<any>>) | null; elementComponent: (void & React.ReactElement<unknown, string | React.JSXElementConstructor<any>>) | null; }; _createTetherInstance(tetherOptions: Tether.ITetherOptions): void; _destroyTetherInstance(): void; _registerEventListeners(): void; get _renderNode(): Element | null; _destroy(): void; _createContainer(): void; _addContainerToDOM(): void; _removeContainer(): void; _update(): void; _updateTether(): void; render(): React.JSX.Element | null; } export {};