react-native-popover-view
Version:
A <Popover /> component for react-native iOS, Android, and Web
72 lines (71 loc) • 1.8 kB
TypeScript
import { Animated, StyleProp, ViewStyle } from 'react-native';
import { ReactNode } from 'react';
export declare enum Placement {
TOP = "top",
RIGHT = "right",
BOTTOM = "bottom",
LEFT = "left",
AUTO = "auto",
FLOATING = "floating",
CENTER = "center"
}
export declare enum Mode {
JS_MODAL = "js-modal",
RN_MODAL = "rn-modal",
TOOLTIP = "tooltip"
}
export declare type Insets = {
left?: number;
right?: number;
bottom?: number;
top?: number;
};
export interface ModalPopoverState {
visible: boolean;
}
export declare type PopoverProps = {
children?: ReactNode;
isVisible?: boolean;
placement?: Placement | Array<Placement>;
animationConfig?: Partial<Animated.TimingAnimationConfig>;
offset?: number;
displayArea?: Rect;
displayAreaInsets?: Insets;
popoverStyle?: StyleProp<ViewStyle>;
popoverShift?: {
x?: number;
y?: number;
};
backgroundStyle?: StyleProp<ViewStyle>;
arrowShift?: number;
arrowSize?: Size;
statusBarTranslucent?: boolean;
onOpenStart?: () => void;
onOpenComplete?: () => void;
onRequestClose?: () => void;
onCloseStart?: () => void;
onCloseComplete?: () => void;
onPositionChange?: () => void;
debug?: boolean;
};
export declare class Point {
x: number;
y: number;
constructor(x: number, y: number);
equals(b: Point): boolean;
}
export declare class Size {
width: number;
height: number;
constructor(width: number, height: number);
equals(b: Size): boolean;
}
export declare class Rect {
x: number;
y: number;
width: number;
height: number;
constructor(x: number, y: number, width: number, height: number);
equals(b: Rect): boolean;
static clone(rect: Rect): Rect;
}