UNPKG

2.35 kBTypeScriptView Raw
1import * as React from 'react';
2import { ViewStyle } from 'react-native';
3import { ThemeContext, NavigationScreenProp } from 'react-navigation';
4import { NavigationDrawerState, DrawerContentComponentProps, SceneDescriptorMap } from '../types';
5import { PanGestureHandler } from 'react-native-gesture-handler';
6declare type DrawerOptions = {
7 drawerBackgroundColor?: string;
8 overlayColor?: string;
9 minSwipeDistance?: number;
10 drawerPosition: 'left' | 'right';
11 drawerType: 'front' | 'back' | 'slide';
12 drawerLockMode?: 'unlocked' | 'locked-closed' | 'locked-open';
13 keyboardDismissMode?: 'on-drag' | 'none';
14 drawerWidth: number | (() => number);
15 statusBarAnimation: 'slide' | 'none' | 'fade';
16 onDrawerClose?: () => void;
17 onDrawerOpen?: () => void;
18 sceneContainerStyle?: ViewStyle;
19 edgeWidth: number;
20 hideStatusBar?: boolean;
21 style?: ViewStyle;
22 gestureHandlerProps?: React.ComponentProps<typeof PanGestureHandler>;
23};
24declare type Props = {
25 lazy: boolean;
26 navigation: NavigationScreenProp<NavigationDrawerState>;
27 descriptors: SceneDescriptorMap;
28 navigationConfig: DrawerOptions & {
29 contentComponent?: React.ComponentType<DrawerContentComponentProps>;
30 unmountInactiveRoutes?: boolean;
31 contentOptions?: object;
32 };
33 screenProps: unknown;
34 detachInactiveScreens: boolean;
35};
36declare type State = {
37 loaded: number[];
38 drawerWidth: number;
39};
40/**
41 * Component that renders the drawer.
42 */
43export default class DrawerView extends React.PureComponent<Props, State> {
44 static contextType: React.Context<import("react-navigation").SupportedThemes>;
45 static defaultProps: {
46 lazy: boolean;
47 };
48 static getDerivedStateFromProps(nextProps: Props, prevState: State): {
49 loaded: number[];
50 };
51 state: State;
52 componentDidMount(): void;
53 componentDidUpdate(prevProps: Props): void;
54 componentWillUnmount(): void;
55 context: React.ContextType<typeof ThemeContext>;
56 private drawerGestureRef;
57 private getLockMode;
58 private handleDrawerOpen;
59 private handleDrawerClose;
60 private updateWidth;
61 private renderNavigationView;
62 private renderContent;
63 private setDrawerGestureRef;
64 private getDrawerBackgroundColor;
65 private getOverlayColor;
66 render(): JSX.Element;
67}
68export {};