@uiw/react-native
Version:
UIW for React Native
54 lines (53 loc) • 1.66 kB
TypeScript
import { Component } from 'react';
import { Animated, ViewProps, ViewStyle, GestureResponderEvent } from 'react-native';
export interface DrawerProps extends ViewProps {
isOpen?: boolean;
maskClosable?: boolean;
placement?: 'right' | 'left' | 'top' | 'bottom';
drawerWidth?: number;
drawerHeight?: number;
maskProps?: ViewStyle;
drawerBackgroundColor?: string;
onChange?: (isOpen: boolean) => void;
openDrawer?: (isOpen: boolean) => void;
closeDrawer?: (isOpen: boolean) => void;
}
export interface DrawerState {
drawerValue: Animated.ValueXY;
overlayValue: Animated.Value;
zIndexValue: number;
handleDrawer: (isOpen: boolean) => void;
control: 'props' | 'state';
isOpen: boolean;
}
export default class Drawer extends Component<DrawerProps, DrawerState> {
static defaultProps: {
placement: string;
drawerBackgroundColor: string;
drawerWidth: number;
drawerHeight: number;
maskClosable: boolean;
isOpen: boolean;
onChange: () => null;
openDrawer: () => null;
closeDrawer: () => null;
};
private handleDrawer;
constructor(props: DrawerProps);
static getDerivedStateFromProps(props: DrawerProps, state: DrawerState): {
control: string;
isOpen?: undefined;
} | {
isOpen: boolean | undefined;
control: string;
} | null;
componentDidMount(): void;
onOverlayClick: (e: GestureResponderEvent) => false | undefined;
render(): JSX.Element;
getInitPosition(): {
x: number;
y: number;
};
openDrawer(): void;
closeDrawer(): void;
}