react-native-drawer-layout 2.0.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +235 -35
- package/lib/commonjs/constants.js +15 -0
- package/lib/commonjs/constants.js.map +1 -0
- package/lib/commonjs/index.js +35 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/types.js +6 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/utils/DrawerGestureContext.js +12 -0
- package/lib/commonjs/utils/DrawerGestureContext.js.map +1 -0
- package/lib/commonjs/utils/DrawerProgressContext.js +12 -0
- package/lib/commonjs/utils/DrawerProgressContext.js.map +1 -0
- package/lib/commonjs/utils/useDrawerProgress.js +19 -0
- package/lib/commonjs/utils/useDrawerProgress.js.map +1 -0
- package/lib/commonjs/views/Drawer.js +89 -0
- package/lib/commonjs/views/Drawer.js.map +1 -0
- package/lib/commonjs/views/GestureHandler.android.js +17 -0
- package/lib/commonjs/views/GestureHandler.android.js.map +1 -0
- package/lib/commonjs/views/GestureHandler.ios.js +17 -0
- package/lib/commonjs/views/GestureHandler.ios.js.map +1 -0
- package/lib/commonjs/views/GestureHandler.js +33 -0
- package/lib/commonjs/views/GestureHandler.js.map +1 -0
- package/lib/commonjs/views/GestureHandlerNative.js +37 -0
- package/lib/commonjs/views/GestureHandlerNative.js.map +1 -0
- package/lib/commonjs/views/legacy/Drawer.js +418 -0
- package/lib/commonjs/views/legacy/Drawer.js.map +1 -0
- package/lib/commonjs/views/legacy/Overlay.js +71 -0
- package/lib/commonjs/views/legacy/Overlay.js.map +1 -0
- package/lib/commonjs/views/modern/Drawer.js +284 -0
- package/lib/commonjs/views/modern/Drawer.js.map +1 -0
- package/lib/commonjs/views/modern/Overlay.js +66 -0
- package/lib/commonjs/views/modern/Overlay.js.map +1 -0
- package/lib/module/constants.js +5 -0
- package/lib/module/constants.js.map +1 -0
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils/DrawerGestureContext.js +3 -0
- package/lib/module/utils/DrawerGestureContext.js.map +1 -0
- package/lib/module/utils/DrawerProgressContext.js +3 -0
- package/lib/module/utils/DrawerProgressContext.js.map +1 -0
- package/lib/module/utils/useDrawerProgress.js +10 -0
- package/lib/module/utils/useDrawerProgress.js.map +1 -0
- package/lib/module/views/Drawer.js +81 -0
- package/lib/module/views/Drawer.js.map +1 -0
- package/lib/module/views/GestureHandler.android.js +2 -0
- package/lib/module/views/GestureHandler.android.js.map +1 -0
- package/lib/module/views/GestureHandler.ios.js +2 -0
- package/lib/module/views/GestureHandler.ios.js.map +1 -0
- package/lib/module/views/GestureHandler.js +21 -0
- package/lib/module/views/GestureHandler.js.map +1 -0
- package/lib/module/views/GestureHandlerNative.js +11 -0
- package/lib/module/views/GestureHandlerNative.js.map +1 -0
- package/lib/module/views/legacy/Drawer.js +408 -0
- package/lib/module/views/legacy/Drawer.js.map +1 -0
- package/lib/module/views/legacy/Overlay.js +61 -0
- package/lib/module/views/legacy/Overlay.js.map +1 -0
- package/lib/module/views/modern/Drawer.js +275 -0
- package/lib/module/views/modern/Drawer.js.map +1 -0
- package/lib/module/views/modern/Overlay.js +57 -0
- package/lib/module/views/modern/Overlay.js.map +1 -0
- package/lib/typescript/src/constants.d.ts +5 -0
- package/lib/typescript/src/constants.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +5 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +105 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/lib/typescript/src/utils/DrawerGestureContext.d.ts +4 -0
- package/lib/typescript/src/utils/DrawerGestureContext.d.ts.map +1 -0
- package/lib/typescript/src/utils/DrawerProgressContext.d.ts +5 -0
- package/lib/typescript/src/utils/DrawerProgressContext.d.ts.map +1 -0
- package/lib/typescript/src/utils/useDrawerProgress.d.ts +3 -0
- package/lib/typescript/src/utils/useDrawerProgress.d.ts.map +1 -0
- package/lib/typescript/src/views/Drawer.d.ts +20 -0
- package/lib/typescript/src/views/Drawer.d.ts.map +1 -0
- package/lib/typescript/src/views/GestureHandler.android.d.ts +2 -0
- package/lib/typescript/src/views/GestureHandler.android.d.ts.map +1 -0
- package/lib/typescript/src/views/GestureHandler.d.ts +15 -0
- package/lib/typescript/src/views/GestureHandler.d.ts.map +1 -0
- package/lib/typescript/src/views/GestureHandler.ios.d.ts +2 -0
- package/lib/typescript/src/views/GestureHandler.ios.d.ts.map +1 -0
- package/lib/typescript/src/views/GestureHandlerNative.d.ts +6 -0
- package/lib/typescript/src/views/GestureHandlerNative.d.ts.map +1 -0
- package/lib/typescript/src/views/legacy/Drawer.d.ts +51 -0
- package/lib/typescript/src/views/legacy/Drawer.d.ts.map +1 -0
- package/lib/typescript/src/views/legacy/Overlay.d.ts +88 -0
- package/lib/typescript/src/views/legacy/Overlay.d.ts.map +1 -0
- package/lib/typescript/src/views/modern/Drawer.d.ts +10 -0
- package/lib/typescript/src/views/modern/Drawer.d.ts.map +1 -0
- package/lib/typescript/src/views/modern/Overlay.d.ts +88 -0
- package/lib/typescript/src/views/modern/Overlay.d.ts.map +1 -0
- package/package.json +52 -93
- package/src/constants.tsx +4 -0
- package/src/index.tsx +4 -0
- package/src/types.tsx +116 -0
- package/src/utils/DrawerGestureContext.tsx +3 -0
- package/src/utils/DrawerProgressContext.tsx +6 -0
- package/src/utils/useDrawerProgress.tsx +18 -0
- package/src/views/Drawer.tsx +122 -0
- package/src/views/GestureHandler.android.tsx +1 -0
- package/src/views/GestureHandler.ios.tsx +1 -0
- package/src/views/GestureHandler.tsx +29 -0
- package/src/views/GestureHandlerNative.tsx +24 -0
- package/src/views/legacy/Drawer.tsx +681 -0
- package/src/views/legacy/Overlay.tsx +75 -0
- package/src/views/modern/Drawer.tsx +412 -0
- package/src/views/modern/Overlay.tsx +70 -0
- package/dist/DrawerLayout.js +0 -430
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../../../src/views/legacy/Drawer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAmB/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAuD/C,KAAK,KAAK,GAAG,WAAW,GAAG;IACzB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;IACxD,kBAAkB,CAAC,SAAS,EAAE,KAAK;IA+CnC,oBAAoB;IAKpB,OAAO,CAAC,oBAAoB,CAK1B;IAEF,OAAO,CAAC,sBAAsB,CAI5B;IAEF,OAAO,CAAC,cAAc,CAepB;IAEF,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,iBAAiB,CAAqB;IAE9C,OAAO,CAAC,iBAAiB,CAEvB;IAEF,OAAO,CAAC,MAAM,CAAqD;IACnE,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,SAAS,CAA4B;IAE7C,OAAO,CAAC,kBAAkB,CAAyB;IAEnD,OAAO,CAAC,YAAY,CAAgD;IACpE,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAOd;IAEF,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,aAAa,CAEnB;IACF,OAAO,CAAC,cAAc,CAEpB;IA2BF,OAAO,CAAC,uBAAuB,CAsB7B;IAEF,OAAO,CAAC,sBAAsB,CAE5B;IACF,OAAO,CAAC,sBAAsB,CAE5B;IAEF,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,gBAAgB,CAAsB;IAE9C,OAAO,CAAC,iBAAiB,CAAkB;IAE3C,OAAO,CAAC,qBAAqB,CAA4B;IAEzD,OAAO,CAAC,YAAY,CA8ClB;IAEF,OAAO,CAAC,KAAK,CAoHV;IAEH,OAAO,CAAC,UAAU,CAIhB;IAEF,OAAO,CAAC,QAAQ,CAKd;IAEF,OAAO,CAAC,kBAAkB,CAQvB;IAEH,OAAO,CAAC,wBAAwB,CAM7B;IAEH,OAAO,CAAC,qBAAqB,CAC8B;IAE3D,OAAO,CAAC,kBAAkB,CAUxB;IAEF,OAAO,CAAC,YAAY,CAQlB;IAEF,OAAO,CAAC,eAAe,CAQrB;IAEF,MAAM;CAmKP"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import Animated from 'react-native-reanimated';
|
|
3
|
+
declare const Overlay: React.ForwardRefExoticComponent<{
|
|
4
|
+
children?: React.ReactNode | Animated.Node<React.ReactNode>;
|
|
5
|
+
hitSlop?: import("react-native").Insets | Animated.Node<import("react-native").Insets | undefined> | undefined;
|
|
6
|
+
onLayout?: ((event: import("react-native").LayoutChangeEvent) => void) | Animated.Node<((event: import("react-native").LayoutChangeEvent) => void) | undefined> | undefined;
|
|
7
|
+
pointerEvents?: "none" | "auto" | "box-none" | "box-only" | Animated.Node<"none" | "auto" | "box-none" | "box-only" | undefined> | undefined;
|
|
8
|
+
removeClippedSubviews?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
9
|
+
testID?: string | Animated.Node<string | undefined> | undefined;
|
|
10
|
+
nativeID?: string | Animated.Node<string | undefined> | undefined;
|
|
11
|
+
collapsable?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
12
|
+
needsOffscreenAlphaCompositing?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
13
|
+
renderToHardwareTextureAndroid?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
14
|
+
focusable?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
15
|
+
shouldRasterizeIOS?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
16
|
+
isTVSelectable?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
17
|
+
hasTVPreferredFocus?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
18
|
+
tvParallaxProperties?: import("react-native").TVParallaxProperties | Animated.Node<import("react-native").TVParallaxProperties | undefined> | undefined;
|
|
19
|
+
tvParallaxShiftDistanceX?: number | Animated.Node<number | undefined> | undefined;
|
|
20
|
+
tvParallaxShiftDistanceY?: number | Animated.Node<number | undefined> | undefined;
|
|
21
|
+
tvParallaxTiltAngle?: number | Animated.Node<number | undefined> | undefined;
|
|
22
|
+
tvParallaxMagnification?: number | Animated.Node<number | undefined> | undefined;
|
|
23
|
+
onStartShouldSetResponder?: ((event: import("react-native").GestureResponderEvent) => boolean) | Animated.Node<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
24
|
+
onMoveShouldSetResponder?: ((event: import("react-native").GestureResponderEvent) => boolean) | Animated.Node<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
25
|
+
onResponderEnd?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
26
|
+
onResponderGrant?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
27
|
+
onResponderReject?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
28
|
+
onResponderMove?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
29
|
+
onResponderRelease?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
30
|
+
onResponderStart?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
31
|
+
onResponderTerminationRequest?: ((event: import("react-native").GestureResponderEvent) => boolean) | Animated.Node<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
32
|
+
onResponderTerminate?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
33
|
+
onStartShouldSetResponderCapture?: ((event: import("react-native").GestureResponderEvent) => boolean) | Animated.Node<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
34
|
+
onMoveShouldSetResponderCapture?: ((event: import("react-native").GestureResponderEvent) => boolean) | Animated.Node<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
35
|
+
onTouchStart?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
36
|
+
onTouchMove?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
37
|
+
onTouchEnd?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
38
|
+
onTouchCancel?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
39
|
+
onTouchEndCapture?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
40
|
+
onPointerEnter?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
41
|
+
onPointerEnterCapture?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
42
|
+
onPointerLeave?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
43
|
+
onPointerLeaveCapture?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
44
|
+
onPointerMove?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
45
|
+
onPointerMoveCapture?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
46
|
+
onPointerCancel?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
47
|
+
onPointerCancelCapture?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
48
|
+
onPointerDown?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
49
|
+
onPointerDownCapture?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
50
|
+
onPointerUp?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
51
|
+
onPointerUpCapture?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
52
|
+
accessible?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
53
|
+
accessibilityActions?: readonly Readonly<{
|
|
54
|
+
name: string;
|
|
55
|
+
label?: string | undefined;
|
|
56
|
+
}>[] | Animated.Node<readonly Readonly<{
|
|
57
|
+
name: string;
|
|
58
|
+
label?: string | undefined;
|
|
59
|
+
}>[] | undefined> | undefined;
|
|
60
|
+
accessibilityLabel?: string | Animated.Node<string | undefined> | undefined;
|
|
61
|
+
accessibilityRole?: import("react-native").AccessibilityRole | Animated.Node<import("react-native").AccessibilityRole | undefined> | undefined;
|
|
62
|
+
accessibilityState?: import("react-native").AccessibilityState | Animated.Node<import("react-native").AccessibilityState | undefined> | undefined;
|
|
63
|
+
accessibilityHint?: string | Animated.Node<string | undefined> | undefined;
|
|
64
|
+
accessibilityValue?: import("react-native").AccessibilityValue | Animated.Node<import("react-native").AccessibilityValue | undefined> | undefined;
|
|
65
|
+
onAccessibilityAction?: ((event: import("react-native").AccessibilityActionEvent) => void) | Animated.Node<((event: import("react-native").AccessibilityActionEvent) => void) | undefined> | undefined;
|
|
66
|
+
accessibilityLabelledBy?: string | string[] | Animated.Node<string | string[] | undefined> | undefined;
|
|
67
|
+
accessibilityLiveRegion?: "none" | "polite" | "assertive" | Animated.Node<"none" | "polite" | "assertive" | undefined> | undefined;
|
|
68
|
+
importantForAccessibility?: "auto" | "no-hide-descendants" | "yes" | "no" | Animated.Node<"auto" | "no-hide-descendants" | "yes" | "no" | undefined> | undefined;
|
|
69
|
+
accessibilityElementsHidden?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
70
|
+
accessibilityLanguage?: string | Animated.Node<string | undefined> | undefined;
|
|
71
|
+
accessibilityViewIsModal?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
72
|
+
onAccessibilityEscape?: (() => void) | Animated.Node<(() => void) | undefined> | undefined;
|
|
73
|
+
onAccessibilityTap?: (() => void) | Animated.Node<(() => void) | undefined> | undefined;
|
|
74
|
+
onMagicTap?: (() => void) | Animated.Node<(() => void) | undefined> | undefined;
|
|
75
|
+
accessibilityIgnoresInvertColors?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
76
|
+
} & {
|
|
77
|
+
style?: import("react-native").StyleProp<Animated.AnimateStyle<import("react-native").StyleProp<import("react-native").ViewStyle>>>;
|
|
78
|
+
} & {
|
|
79
|
+
animatedProps?: Partial<Animated.AnimateProps<import("react-native").ViewProps>> | undefined;
|
|
80
|
+
layout?: import("react-native-reanimated").BaseAnimationBuilder | import("react-native-reanimated").LayoutAnimationFunction | typeof import("react-native-reanimated").BaseAnimationBuilder | undefined;
|
|
81
|
+
entering?: import("react-native-reanimated").BaseAnimationBuilder | typeof import("react-native-reanimated").BaseAnimationBuilder | import("react-native-reanimated").EntryExitAnimationFunction | import("react-native-reanimated").Keyframe | undefined;
|
|
82
|
+
exiting?: import("react-native-reanimated").BaseAnimationBuilder | typeof import("react-native-reanimated").BaseAnimationBuilder | import("react-native-reanimated").EntryExitAnimationFunction | import("react-native-reanimated").Keyframe | undefined;
|
|
83
|
+
} & {
|
|
84
|
+
progress: Animated.Node<number>;
|
|
85
|
+
onPress: () => void;
|
|
86
|
+
} & React.RefAttributes<Animated.View>>;
|
|
87
|
+
export default Overlay;
|
|
88
|
+
//# sourceMappingURL=Overlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Overlay.d.ts","sourceRoot":"","sources":["../../../../../src/views/legacy/Overlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAoB/C,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAJD,aAAa,CAAC,MAAM,CAAC;aACtB,MAAM,IAAI;uCAkCnB,CAAC;AAqBH,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { DrawerProps } from '../../types';
|
|
3
|
+
type Props = DrawerProps & {
|
|
4
|
+
layout: {
|
|
5
|
+
width: number;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
export default function Drawer({ layout, drawerPosition, drawerStyle, drawerType, gestureHandlerProps, hideStatusBarOnOpen, keyboardDismissMode, onClose, onOpen, open, overlayStyle, statusBarAnimation, swipeEnabled, swipeEdgeWidth, swipeMinDistance, swipeMinVelocity, renderDrawerContent, children, }: Props): JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=Drawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../../../src/views/modern/Drawer.tsx"],"names":[],"mappings":";AA0BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAe/C,KAAK,KAAK,GAAG,WAAW,GAAG;IACzB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAC7B,MAAM,EACN,cAAc,EACd,WAAW,EACX,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,OAAO,EACP,MAAM,EACN,IAAI,EACJ,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,gBAAqC,EACrC,gBAAqC,EACrC,mBAAmB,EACnB,QAAQ,GACT,EAAE,KAAK,eAsUP"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import Animated from 'react-native-reanimated';
|
|
3
|
+
declare const Overlay: React.ForwardRefExoticComponent<{
|
|
4
|
+
children?: React.ReactNode | Animated.Node<React.ReactNode>;
|
|
5
|
+
hitSlop?: import("react-native").Insets | Animated.Node<import("react-native").Insets | undefined> | undefined;
|
|
6
|
+
onLayout?: ((event: import("react-native").LayoutChangeEvent) => void) | Animated.Node<((event: import("react-native").LayoutChangeEvent) => void) | undefined> | undefined;
|
|
7
|
+
pointerEvents?: "none" | "auto" | "box-none" | "box-only" | Animated.Node<"none" | "auto" | "box-none" | "box-only" | undefined> | undefined;
|
|
8
|
+
removeClippedSubviews?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
9
|
+
testID?: string | Animated.Node<string | undefined> | undefined;
|
|
10
|
+
nativeID?: string | Animated.Node<string | undefined> | undefined;
|
|
11
|
+
collapsable?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
12
|
+
needsOffscreenAlphaCompositing?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
13
|
+
renderToHardwareTextureAndroid?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
14
|
+
focusable?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
15
|
+
shouldRasterizeIOS?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
16
|
+
isTVSelectable?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
17
|
+
hasTVPreferredFocus?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
18
|
+
tvParallaxProperties?: import("react-native").TVParallaxProperties | Animated.Node<import("react-native").TVParallaxProperties | undefined> | undefined;
|
|
19
|
+
tvParallaxShiftDistanceX?: number | Animated.Node<number | undefined> | undefined;
|
|
20
|
+
tvParallaxShiftDistanceY?: number | Animated.Node<number | undefined> | undefined;
|
|
21
|
+
tvParallaxTiltAngle?: number | Animated.Node<number | undefined> | undefined;
|
|
22
|
+
tvParallaxMagnification?: number | Animated.Node<number | undefined> | undefined;
|
|
23
|
+
onStartShouldSetResponder?: ((event: import("react-native").GestureResponderEvent) => boolean) | Animated.Node<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
24
|
+
onMoveShouldSetResponder?: ((event: import("react-native").GestureResponderEvent) => boolean) | Animated.Node<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
25
|
+
onResponderEnd?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
26
|
+
onResponderGrant?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
27
|
+
onResponderReject?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
28
|
+
onResponderMove?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
29
|
+
onResponderRelease?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
30
|
+
onResponderStart?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
31
|
+
onResponderTerminationRequest?: ((event: import("react-native").GestureResponderEvent) => boolean) | Animated.Node<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
32
|
+
onResponderTerminate?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
33
|
+
onStartShouldSetResponderCapture?: ((event: import("react-native").GestureResponderEvent) => boolean) | Animated.Node<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
34
|
+
onMoveShouldSetResponderCapture?: ((event: import("react-native").GestureResponderEvent) => boolean) | Animated.Node<((event: import("react-native").GestureResponderEvent) => boolean) | undefined> | undefined;
|
|
35
|
+
onTouchStart?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
36
|
+
onTouchMove?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
37
|
+
onTouchEnd?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
38
|
+
onTouchCancel?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
39
|
+
onTouchEndCapture?: ((event: import("react-native").GestureResponderEvent) => void) | Animated.Node<((event: import("react-native").GestureResponderEvent) => void) | undefined> | undefined;
|
|
40
|
+
onPointerEnter?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
41
|
+
onPointerEnterCapture?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
42
|
+
onPointerLeave?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
43
|
+
onPointerLeaveCapture?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
44
|
+
onPointerMove?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
45
|
+
onPointerMoveCapture?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
46
|
+
onPointerCancel?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
47
|
+
onPointerCancelCapture?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
48
|
+
onPointerDown?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
49
|
+
onPointerDownCapture?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
50
|
+
onPointerUp?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
51
|
+
onPointerUpCapture?: ((event: import("react-native").PointerEvent) => void) | Animated.Node<((event: import("react-native").PointerEvent) => void) | undefined> | undefined;
|
|
52
|
+
accessible?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
53
|
+
accessibilityActions?: readonly Readonly<{
|
|
54
|
+
name: string;
|
|
55
|
+
label?: string | undefined;
|
|
56
|
+
}>[] | Animated.Node<readonly Readonly<{
|
|
57
|
+
name: string;
|
|
58
|
+
label?: string | undefined;
|
|
59
|
+
}>[] | undefined> | undefined;
|
|
60
|
+
accessibilityLabel?: string | Animated.Node<string | undefined> | undefined;
|
|
61
|
+
accessibilityRole?: import("react-native").AccessibilityRole | Animated.Node<import("react-native").AccessibilityRole | undefined> | undefined;
|
|
62
|
+
accessibilityState?: import("react-native").AccessibilityState | Animated.Node<import("react-native").AccessibilityState | undefined> | undefined;
|
|
63
|
+
accessibilityHint?: string | Animated.Node<string | undefined> | undefined;
|
|
64
|
+
accessibilityValue?: import("react-native").AccessibilityValue | Animated.Node<import("react-native").AccessibilityValue | undefined> | undefined;
|
|
65
|
+
onAccessibilityAction?: ((event: import("react-native").AccessibilityActionEvent) => void) | Animated.Node<((event: import("react-native").AccessibilityActionEvent) => void) | undefined> | undefined;
|
|
66
|
+
accessibilityLabelledBy?: string | string[] | Animated.Node<string | string[] | undefined> | undefined;
|
|
67
|
+
accessibilityLiveRegion?: "none" | "polite" | "assertive" | Animated.Node<"none" | "polite" | "assertive" | undefined> | undefined;
|
|
68
|
+
importantForAccessibility?: "auto" | "no-hide-descendants" | "yes" | "no" | Animated.Node<"auto" | "no-hide-descendants" | "yes" | "no" | undefined> | undefined;
|
|
69
|
+
accessibilityElementsHidden?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
70
|
+
accessibilityLanguage?: string | Animated.Node<string | undefined> | undefined;
|
|
71
|
+
accessibilityViewIsModal?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
72
|
+
onAccessibilityEscape?: (() => void) | Animated.Node<(() => void) | undefined> | undefined;
|
|
73
|
+
onAccessibilityTap?: (() => void) | Animated.Node<(() => void) | undefined> | undefined;
|
|
74
|
+
onMagicTap?: (() => void) | Animated.Node<(() => void) | undefined> | undefined;
|
|
75
|
+
accessibilityIgnoresInvertColors?: boolean | Animated.Node<boolean | undefined> | undefined;
|
|
76
|
+
} & {
|
|
77
|
+
style?: import("react-native").StyleProp<Animated.AnimateStyle<import("react-native").StyleProp<import("react-native").ViewStyle>>>;
|
|
78
|
+
} & {
|
|
79
|
+
animatedProps?: Partial<Animated.AnimateProps<import("react-native").ViewProps>> | undefined;
|
|
80
|
+
layout?: import("react-native-reanimated").BaseAnimationBuilder | import("react-native-reanimated").LayoutAnimationFunction | typeof import("react-native-reanimated").BaseAnimationBuilder | undefined;
|
|
81
|
+
entering?: import("react-native-reanimated").BaseAnimationBuilder | typeof import("react-native-reanimated").BaseAnimationBuilder | import("react-native-reanimated").EntryExitAnimationFunction | import("react-native-reanimated").Keyframe | undefined;
|
|
82
|
+
exiting?: import("react-native-reanimated").BaseAnimationBuilder | typeof import("react-native-reanimated").BaseAnimationBuilder | import("react-native-reanimated").EntryExitAnimationFunction | import("react-native-reanimated").Keyframe | undefined;
|
|
83
|
+
} & {
|
|
84
|
+
progress: Animated.SharedValue<number>;
|
|
85
|
+
onPress: () => void;
|
|
86
|
+
} & React.RefAttributes<Animated.View>>;
|
|
87
|
+
export default Overlay;
|
|
88
|
+
//# sourceMappingURL=Overlay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Overlay.d.ts","sourceRoot":"","sources":["../../../../../src/views/modern/Overlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,QAGN,MAAM,yBAAyB,CAAC;AASjC,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAJD,SAAS,WAAW,CAAC,MAAM,CAAC;aAC7B,MAAM,IAAI;uCAoCnB,CAAC;AAsBH,eAAe,OAAO,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,107 +1,66 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-drawer-layout",
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"main": "dist/DrawerLayout.js",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"babel": "babel src --out-dir dist",
|
|
8
|
-
"build": "npm run-script clear && npm run-script babel",
|
|
9
|
-
"clear": "rm -rf dist/ && mkdir dist/",
|
|
10
|
-
"lint:staged": "lint-staged",
|
|
11
|
-
"prepublish": "npm run build",
|
|
12
|
-
"test": "flow --show-all-errors",
|
|
13
|
-
"format": "prettier --write --single-quote --trailing-comma all --tab-width 4 src/**/*.js"
|
|
14
|
-
},
|
|
15
|
-
"lint-staged": {
|
|
16
|
-
"*.js": [
|
|
17
|
-
"prettier --write --single-quote --trailing-comma all --tabWidth 4",
|
|
18
|
-
"git add"
|
|
19
|
-
]
|
|
20
|
-
},
|
|
21
|
-
"pre-commit": [
|
|
22
|
-
"lint:staged",
|
|
23
|
-
"test"
|
|
24
|
-
],
|
|
25
|
-
"files": [
|
|
26
|
-
"dist/"
|
|
27
|
-
],
|
|
28
|
-
"repository": {
|
|
29
|
-
"type": "git",
|
|
30
|
-
"url": "git@github.com:react-native-community/react-native-drawer-layout.git"
|
|
31
|
-
},
|
|
32
|
-
"author": "Brent Vatne <brentvatne@gmail.com> (https://github.com/brentvatne)",
|
|
33
|
-
"contributors": [
|
|
34
|
-
{
|
|
35
|
-
"name": "Marc Mendiola",
|
|
36
|
-
"email": "marc@iodine.com"
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"name": "Daniel Schmidt",
|
|
40
|
-
"email": "daniel.maximilian@gmx.net",
|
|
41
|
-
"url": "http://danielmschmidt.de"
|
|
42
|
-
}
|
|
43
|
-
],
|
|
44
|
-
"xo": {
|
|
45
|
-
"ignores": [
|
|
46
|
-
"DrawerLayoutExample/**",
|
|
47
|
-
"dist/*"
|
|
48
|
-
],
|
|
49
|
-
"esnext": true,
|
|
50
|
-
"plugins": [
|
|
51
|
-
"react"
|
|
52
|
-
],
|
|
53
|
-
"rules": {
|
|
54
|
-
"indent": 0,
|
|
55
|
-
"babel/object-curly-spacing": [
|
|
56
|
-
2,
|
|
57
|
-
"always"
|
|
58
|
-
],
|
|
59
|
-
"comma-dangle": [
|
|
60
|
-
2,
|
|
61
|
-
"always-multiline"
|
|
62
|
-
],
|
|
63
|
-
"react/jsx-curly-spacing": 2,
|
|
64
|
-
"strict": [
|
|
65
|
-
2,
|
|
66
|
-
"never"
|
|
67
|
-
],
|
|
68
|
-
"no-use-before-define": 0,
|
|
69
|
-
"one-var": [
|
|
70
|
-
2,
|
|
71
|
-
{
|
|
72
|
-
"uninitialized": "always",
|
|
73
|
-
"initialized": "never"
|
|
74
|
-
}
|
|
75
|
-
],
|
|
76
|
-
"react/no-set-state": 1,
|
|
77
|
-
"react/prop-types": 2,
|
|
78
|
-
"react/jsx-sort-prop-types": 2,
|
|
79
|
-
"react/self-closing-comp": 2
|
|
80
|
-
}
|
|
81
|
-
},
|
|
3
|
+
"description": "Drawer component for React Native",
|
|
4
|
+
"version": "3.0.0",
|
|
82
5
|
"keywords": [
|
|
83
|
-
"react",
|
|
6
|
+
"react-native-component",
|
|
7
|
+
"react-component",
|
|
84
8
|
"react-native",
|
|
85
9
|
"ios",
|
|
86
10
|
"android",
|
|
87
11
|
"drawer",
|
|
88
|
-
"
|
|
89
|
-
"menu"
|
|
12
|
+
"swipe"
|
|
90
13
|
],
|
|
91
14
|
"license": "MIT",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/react-navigation/react-navigation.git",
|
|
18
|
+
"directory": "packages/react-native-drawer-layout"
|
|
19
|
+
},
|
|
20
|
+
"bugs": {
|
|
21
|
+
"url": "https://github.com/react-navigation/react-navigation/issues"
|
|
22
|
+
},
|
|
23
|
+
"homepage": "https://github.com/react-navigation/react-navigation/tree/main/packages/react-native-drawer-layout#readme",
|
|
24
|
+
"main": "lib/commonjs/index.js",
|
|
25
|
+
"react-native": "src/index.tsx",
|
|
26
|
+
"source": "src/index.tsx",
|
|
27
|
+
"module": "lib/module/index.js",
|
|
28
|
+
"types": "lib/typescript/src/index.d.ts",
|
|
29
|
+
"files": [
|
|
30
|
+
"src",
|
|
31
|
+
"lib",
|
|
32
|
+
"!**/__tests__"
|
|
33
|
+
],
|
|
34
|
+
"sideEffects": false,
|
|
35
|
+
"scripts": {
|
|
36
|
+
"prepack": "bob build",
|
|
37
|
+
"clean": "del lib"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"del-cli": "^5.0.0",
|
|
41
|
+
"react": "18.1.0",
|
|
42
|
+
"react-native": "0.70.5",
|
|
43
|
+
"react-native-builder-bob": "^0.20.3",
|
|
44
|
+
"typescript": "^4.9.4"
|
|
45
|
+
},
|
|
92
46
|
"peerDependencies": {
|
|
93
47
|
"react": "*",
|
|
94
|
-
"react-native": "*"
|
|
48
|
+
"react-native": "*",
|
|
49
|
+
"react-native-gesture-handler": ">= 1.0.0",
|
|
50
|
+
"react-native-reanimated": ">= 1.0.0"
|
|
95
51
|
},
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
52
|
+
"react-native-builder-bob": {
|
|
53
|
+
"source": "src",
|
|
54
|
+
"output": "lib",
|
|
55
|
+
"targets": [
|
|
56
|
+
"commonjs",
|
|
57
|
+
"module",
|
|
58
|
+
[
|
|
59
|
+
"typescript",
|
|
60
|
+
{
|
|
61
|
+
"project": "tsconfig.build.json"
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
]
|
|
106
65
|
}
|
|
107
66
|
}
|
package/src/index.tsx
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { default as DrawerGestureContext } from './utils/DrawerGestureContext';
|
|
2
|
+
export { default as DrawerProgressContext } from './utils/DrawerProgressContext';
|
|
3
|
+
export { default as useDrawerProgress } from './utils/useDrawerProgress';
|
|
4
|
+
export { default as Drawer } from './views/Drawer';
|
package/src/types.tsx
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import type { StyleProp, ViewStyle } from 'react-native';
|
|
2
|
+
import type { PanGestureHandler } from 'react-native-gesture-handler';
|
|
3
|
+
|
|
4
|
+
export type Layout = { width: number; height: number };
|
|
5
|
+
|
|
6
|
+
export type DrawerProps = {
|
|
7
|
+
/**
|
|
8
|
+
* Whether the drawer is open or not.
|
|
9
|
+
*/
|
|
10
|
+
open: boolean;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Callback which is called when the drawer is opened.
|
|
14
|
+
*/
|
|
15
|
+
onOpen: () => void;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Callback which is called when the drawer is closed.
|
|
19
|
+
*/
|
|
20
|
+
onClose: () => void;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Callback which returns a react element to render as the content of the drawer.
|
|
24
|
+
*/
|
|
25
|
+
renderDrawerContent: () => React.ReactNode;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Object containing the layout of the container.
|
|
29
|
+
* Defaults to the dimensions of the application's window.
|
|
30
|
+
*/
|
|
31
|
+
layout?: { width: number; height: number };
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Position of the drawer on the screen.
|
|
35
|
+
* Defaults to `right` in RTL mode, otherwise `left`.
|
|
36
|
+
*/
|
|
37
|
+
drawerPosition?: 'left' | 'right';
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Type of the drawer. It determines how the drawer looks and animates.
|
|
41
|
+
* - `front`: Traditional drawer which covers the screen with a overlay behind it.
|
|
42
|
+
* - `back`: The drawer is revealed behind the screen on swipe.
|
|
43
|
+
* - `slide`: Both the screen and the drawer slide on swipe to reveal the drawer.
|
|
44
|
+
* - `permanent`: A permanent drawer is shown as a sidebar.
|
|
45
|
+
*
|
|
46
|
+
* Defaults to `slide` on iOS and `front` on other platforms.
|
|
47
|
+
*/
|
|
48
|
+
drawerType?: 'front' | 'back' | 'slide' | 'permanent';
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Style object for the drawer component.
|
|
52
|
+
* You can pass a custom background color for drawer or a custom width here.
|
|
53
|
+
*/
|
|
54
|
+
drawerStyle?: StyleProp<ViewStyle>;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Style object for the drawer overlay.
|
|
58
|
+
*/
|
|
59
|
+
overlayStyle?: StyleProp<ViewStyle>;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Whether the keyboard should be dismissed when the swipe gesture begins.
|
|
63
|
+
* Defaults to `'on-drag'`. Set to `'none'` to disable keyboard handling.
|
|
64
|
+
*/
|
|
65
|
+
keyboardDismissMode?: 'none' | 'on-drag';
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Whether the statusbar should be hidden when the drawer is pulled or opens.
|
|
69
|
+
* Defaults to `false`.
|
|
70
|
+
*/
|
|
71
|
+
hideStatusBarOnOpen?: boolean;
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Animation of the statusbar when hiding it. Use in combination with `hideStatusBarOnOpen`.
|
|
75
|
+
*/
|
|
76
|
+
statusBarAnimation?: 'slide' | 'fade' | 'none';
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Whether you can use swipe gestures to open or close the drawer.
|
|
80
|
+
* Defaults to `true`.
|
|
81
|
+
* This is not supported on Web.
|
|
82
|
+
*/
|
|
83
|
+
swipeEnabled?: boolean;
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* How far from the edge of the screen the swipe gesture should activate.
|
|
87
|
+
* Defaults to `32`.
|
|
88
|
+
* This is not supported on Web.
|
|
89
|
+
*/
|
|
90
|
+
swipeEdgeWidth?: number;
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Minimum swipe distance that should activate opening the drawer.
|
|
94
|
+
* Defaults to `60`.
|
|
95
|
+
* This is not supported on Web.
|
|
96
|
+
*/
|
|
97
|
+
swipeMinDistance?: number;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Minimum swipe velocity that should activate opening the drawer.
|
|
101
|
+
* Defaults to `500`.
|
|
102
|
+
* This is not supported on Web.
|
|
103
|
+
*/
|
|
104
|
+
swipeMinVelocity?: number;
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Props to pass to the underlying pan gesture handler.
|
|
108
|
+
* This is not supported on Web.
|
|
109
|
+
*/
|
|
110
|
+
gestureHandlerProps?: React.ComponentProps<typeof PanGestureHandler>;
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Content that the drawer should wrap.
|
|
114
|
+
*/
|
|
115
|
+
children: React.ReactNode;
|
|
116
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type Animated from 'react-native-reanimated';
|
|
3
|
+
|
|
4
|
+
import DrawerProgressContext from './DrawerProgressContext';
|
|
5
|
+
|
|
6
|
+
export default function useDrawerProgress():
|
|
7
|
+
| Readonly<Animated.SharedValue<number>>
|
|
8
|
+
| Animated.Node<number> {
|
|
9
|
+
const progress = React.useContext(DrawerProgressContext);
|
|
10
|
+
|
|
11
|
+
if (progress === undefined) {
|
|
12
|
+
throw new Error(
|
|
13
|
+
"Couldn't find a drawer. Is your component inside a drawer?"
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return progress;
|
|
18
|
+
}
|