UNPKG

react-bootstrap

Version:

Bootstrap 5 components built with React

95 lines (94 loc) 3.74 kB
import PropTypes from 'prop-types'; import * as React from 'react'; import { OverlayChildren, OverlayProps } from './Overlay'; export type OverlayTriggerType = 'hover' | 'click' | 'focus'; export type OverlayDelay = number | { show: number; hide: number; }; export type OverlayInjectedProps = { onFocus?: (...args: any[]) => any; }; export type OverlayTriggerRenderProps = OverlayInjectedProps & { ref: React.Ref<any>; }; export interface OverlayTriggerProps extends Omit<OverlayProps, 'children' | 'target'> { children: React.ReactElement | ((props: OverlayTriggerRenderProps) => React.ReactNode); trigger?: OverlayTriggerType | OverlayTriggerType[]; delay?: OverlayDelay; show?: boolean; defaultShow?: boolean; onToggle?: (nextShow: boolean) => void; flip?: boolean; overlay: OverlayChildren; target?: never; onHide?: never; } declare function OverlayTrigger({ trigger, overlay, children, popperConfig, show: propsShow, defaultShow, onToggle, delay: propsDelay, placement, flip, ...props }: OverlayTriggerProps): JSX.Element; declare namespace OverlayTrigger { var propTypes: { children: PropTypes.Validator<NonNullable<NonNullable<((...args: any[]) => any) | PropTypes.ReactElementLike | null | undefined>>>; /** * Specify which action or actions trigger Overlay visibility * * The `click` trigger ignores the configured `delay`. * * @type {'hover' | 'click' |'focus' | Array<'hover' | 'click' |'focus'>} */ trigger: PropTypes.Requireable<NonNullable<string | (string | null | undefined)[] | null | undefined>>; /** * A millisecond delay amount to show and hide the Overlay once triggered */ delay: PropTypes.Requireable<NonNullable<number | PropTypes.InferProps<{ show: PropTypes.Requireable<number>; hide: PropTypes.Requireable<number>; }> | null | undefined>>; /** * The visibility of the Overlay. `show` is a _controlled_ prop so should be paired * with `onToggle` to avoid breaking user interactions. * * Manually toggling `show` does **not** wait for `delay` to change the visibility. * * @controllable onToggle */ show: PropTypes.Requireable<boolean>; /** * The initial visibility state of the Overlay. */ defaultShow: PropTypes.Requireable<boolean>; /** * A callback that fires when the user triggers a change in tooltip visibility. * * `onToggle` is called with the desired next `show`, and generally should be passed * back to the `show` prop. `onToggle` fires _after_ the configured `delay` * * @controllable `show` */ onToggle: PropTypes.Requireable<(...args: any[]) => any>; /** The initial flip state of the Overlay. */ flip: PropTypes.Requireable<boolean>; /** * An element or text to overlay next to the target. */ overlay: PropTypes.Requireable<NonNullable<((...args: any[]) => any) | PropTypes.ReactElementLike | null | undefined>>; /** * A Popper.js config object passed to the the underlying popper instance. */ popperConfig: PropTypes.Requireable<object>; /** * @private */ target: PropTypes.Requireable<null>; /** * @private */ onHide: PropTypes.Requireable<null>; /** * The placement of the Overlay in relation to it's `target`. */ placement: PropTypes.Requireable<string>; }; } export default OverlayTrigger;