UNPKG

react-native-popover-view

Version:

A <Popover /> component for react-native iOS, Android, and Web

61 lines (60 loc) 2.83 kB
import { Component, PropsWithChildren, RefObject, ReactNode } from 'react'; import PropTypes from 'prop-types'; import { ViewProps } from 'react-native'; import { Rect, PopoverProps, Placement, Mode, Point, Size } from './Types'; export interface PublicPopoverProps extends PropsWithChildren<Omit<PopoverProps, 'displayArea' | 'arrowSize'>> { displayArea?: Pick<Rect, 'x' | 'y' | 'width' | 'height'>; arrowSize?: Pick<Size, 'width' | 'height'>; mode?: Mode; from?: Rect | RefObject<Component> | ((sourceRef: RefObject<Component>, openPopover: () => void) => ReactNode) | ReactNode | Point; testID?: ViewProps['testID']; } interface PublicPopoverState { isVisible: boolean; } export default class Popover extends Component<PublicPopoverProps, PublicPopoverState> { static propTypes: { isVisible: PropTypes.Requireable<boolean>; from: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>; displayArea: PropTypes.Requireable<Required<PropTypes.InferProps<{ x: PropTypes.Requireable<number>; y: PropTypes.Requireable<number>; width: PropTypes.Requireable<number>; height: PropTypes.Requireable<number>; }>>>; displayAreaInsets: PropTypes.Requireable<PropTypes.InferProps<{ left: PropTypes.Requireable<number>; right: PropTypes.Requireable<number>; top: PropTypes.Requireable<number>; bottom: PropTypes.Requireable<number>; }>>; placement: PropTypes.Requireable<Placement | (Placement | null | undefined)[]>; animationConfig: PropTypes.Requireable<object>; popoverStyle: any; popoverShift: PropTypes.Requireable<PropTypes.InferProps<{ x: PropTypes.Requireable<number>; y: PropTypes.Requireable<number>; }>>; backgroundStyle: any; arrowSize: PropTypes.Requireable<PropTypes.InferProps<{ width: PropTypes.Requireable<number>; height: PropTypes.Requireable<number>; }>>; arrowShift: PropTypes.Requireable<number>; onOpenStart: PropTypes.Requireable<(...args: any[]) => any>; onOpenComplete: PropTypes.Requireable<(...args: any[]) => any>; onRequestClose: PropTypes.Requireable<(...args: any[]) => any>; onCloseStart: PropTypes.Requireable<(...args: any[]) => any>; onCloseComplete: PropTypes.Requireable<(...args: any[]) => any>; onPositionChange: PropTypes.Requireable<(...args: any[]) => any>; debug: PropTypes.Requireable<boolean>; }; static defaultProps: Partial<PublicPopoverProps>; state: { isVisible: boolean; }; requestClose(): void; private sourceRef; render(): ReactNode; } export {};