react-native-drawer-layout 1.3.2 → 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.
Files changed (109) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +235 -34
  3. package/lib/commonjs/constants.js +15 -0
  4. package/lib/commonjs/constants.js.map +1 -0
  5. package/lib/commonjs/index.js +35 -0
  6. package/lib/commonjs/index.js.map +1 -0
  7. package/lib/commonjs/types.js +6 -0
  8. package/lib/commonjs/types.js.map +1 -0
  9. package/lib/commonjs/utils/DrawerGestureContext.js +12 -0
  10. package/lib/commonjs/utils/DrawerGestureContext.js.map +1 -0
  11. package/lib/commonjs/utils/DrawerProgressContext.js +12 -0
  12. package/lib/commonjs/utils/DrawerProgressContext.js.map +1 -0
  13. package/lib/commonjs/utils/useDrawerProgress.js +19 -0
  14. package/lib/commonjs/utils/useDrawerProgress.js.map +1 -0
  15. package/lib/commonjs/views/Drawer.js +89 -0
  16. package/lib/commonjs/views/Drawer.js.map +1 -0
  17. package/lib/commonjs/views/GestureHandler.android.js +17 -0
  18. package/lib/commonjs/views/GestureHandler.android.js.map +1 -0
  19. package/lib/commonjs/views/GestureHandler.ios.js +17 -0
  20. package/lib/commonjs/views/GestureHandler.ios.js.map +1 -0
  21. package/lib/commonjs/views/GestureHandler.js +33 -0
  22. package/lib/commonjs/views/GestureHandler.js.map +1 -0
  23. package/lib/commonjs/views/GestureHandlerNative.js +37 -0
  24. package/lib/commonjs/views/GestureHandlerNative.js.map +1 -0
  25. package/lib/commonjs/views/legacy/Drawer.js +418 -0
  26. package/lib/commonjs/views/legacy/Drawer.js.map +1 -0
  27. package/lib/commonjs/views/legacy/Overlay.js +71 -0
  28. package/lib/commonjs/views/legacy/Overlay.js.map +1 -0
  29. package/lib/commonjs/views/modern/Drawer.js +284 -0
  30. package/lib/commonjs/views/modern/Drawer.js.map +1 -0
  31. package/lib/commonjs/views/modern/Overlay.js +66 -0
  32. package/lib/commonjs/views/modern/Overlay.js.map +1 -0
  33. package/lib/module/constants.js +5 -0
  34. package/lib/module/constants.js.map +1 -0
  35. package/lib/module/index.js +5 -0
  36. package/lib/module/index.js.map +1 -0
  37. package/lib/module/types.js +2 -0
  38. package/lib/module/types.js.map +1 -0
  39. package/lib/module/utils/DrawerGestureContext.js +3 -0
  40. package/lib/module/utils/DrawerGestureContext.js.map +1 -0
  41. package/lib/module/utils/DrawerProgressContext.js +3 -0
  42. package/lib/module/utils/DrawerProgressContext.js.map +1 -0
  43. package/lib/module/utils/useDrawerProgress.js +10 -0
  44. package/lib/module/utils/useDrawerProgress.js.map +1 -0
  45. package/lib/module/views/Drawer.js +81 -0
  46. package/lib/module/views/Drawer.js.map +1 -0
  47. package/lib/module/views/GestureHandler.android.js +2 -0
  48. package/lib/module/views/GestureHandler.android.js.map +1 -0
  49. package/lib/module/views/GestureHandler.ios.js +2 -0
  50. package/lib/module/views/GestureHandler.ios.js.map +1 -0
  51. package/lib/module/views/GestureHandler.js +21 -0
  52. package/lib/module/views/GestureHandler.js.map +1 -0
  53. package/lib/module/views/GestureHandlerNative.js +11 -0
  54. package/lib/module/views/GestureHandlerNative.js.map +1 -0
  55. package/lib/module/views/legacy/Drawer.js +408 -0
  56. package/lib/module/views/legacy/Drawer.js.map +1 -0
  57. package/lib/module/views/legacy/Overlay.js +61 -0
  58. package/lib/module/views/legacy/Overlay.js.map +1 -0
  59. package/lib/module/views/modern/Drawer.js +275 -0
  60. package/lib/module/views/modern/Drawer.js.map +1 -0
  61. package/lib/module/views/modern/Overlay.js +57 -0
  62. package/lib/module/views/modern/Overlay.js.map +1 -0
  63. package/lib/typescript/src/constants.d.ts +5 -0
  64. package/lib/typescript/src/constants.d.ts.map +1 -0
  65. package/lib/typescript/src/index.d.ts +5 -0
  66. package/lib/typescript/src/index.d.ts.map +1 -0
  67. package/lib/typescript/src/types.d.ts +105 -0
  68. package/lib/typescript/src/types.d.ts.map +1 -0
  69. package/lib/typescript/src/utils/DrawerGestureContext.d.ts +4 -0
  70. package/lib/typescript/src/utils/DrawerGestureContext.d.ts.map +1 -0
  71. package/lib/typescript/src/utils/DrawerProgressContext.d.ts +5 -0
  72. package/lib/typescript/src/utils/DrawerProgressContext.d.ts.map +1 -0
  73. package/lib/typescript/src/utils/useDrawerProgress.d.ts +3 -0
  74. package/lib/typescript/src/utils/useDrawerProgress.d.ts.map +1 -0
  75. package/lib/typescript/src/views/Drawer.d.ts +20 -0
  76. package/lib/typescript/src/views/Drawer.d.ts.map +1 -0
  77. package/lib/typescript/src/views/GestureHandler.android.d.ts +2 -0
  78. package/lib/typescript/src/views/GestureHandler.android.d.ts.map +1 -0
  79. package/lib/typescript/src/views/GestureHandler.d.ts +15 -0
  80. package/lib/typescript/src/views/GestureHandler.d.ts.map +1 -0
  81. package/lib/typescript/src/views/GestureHandler.ios.d.ts +2 -0
  82. package/lib/typescript/src/views/GestureHandler.ios.d.ts.map +1 -0
  83. package/lib/typescript/src/views/GestureHandlerNative.d.ts +6 -0
  84. package/lib/typescript/src/views/GestureHandlerNative.d.ts.map +1 -0
  85. package/lib/typescript/src/views/legacy/Drawer.d.ts +51 -0
  86. package/lib/typescript/src/views/legacy/Drawer.d.ts.map +1 -0
  87. package/lib/typescript/src/views/legacy/Overlay.d.ts +88 -0
  88. package/lib/typescript/src/views/legacy/Overlay.d.ts.map +1 -0
  89. package/lib/typescript/src/views/modern/Drawer.d.ts +10 -0
  90. package/lib/typescript/src/views/modern/Drawer.d.ts.map +1 -0
  91. package/lib/typescript/src/views/modern/Overlay.d.ts +88 -0
  92. package/lib/typescript/src/views/modern/Overlay.d.ts.map +1 -0
  93. package/package.json +51 -93
  94. package/src/constants.tsx +4 -0
  95. package/src/index.tsx +4 -0
  96. package/src/types.tsx +116 -0
  97. package/src/utils/DrawerGestureContext.tsx +3 -0
  98. package/src/utils/DrawerProgressContext.tsx +6 -0
  99. package/src/utils/useDrawerProgress.tsx +18 -0
  100. package/src/views/Drawer.tsx +122 -0
  101. package/src/views/GestureHandler.android.tsx +1 -0
  102. package/src/views/GestureHandler.ios.tsx +1 -0
  103. package/src/views/GestureHandler.tsx +29 -0
  104. package/src/views/GestureHandlerNative.tsx +24 -0
  105. package/src/views/legacy/Drawer.tsx +681 -0
  106. package/src/views/legacy/Overlay.tsx +75 -0
  107. package/src/views/modern/Drawer.tsx +412 -0
  108. package/src/views/modern/Overlay.tsx +70 -0
  109. package/dist/DrawerLayout.js +0 -419
@@ -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,108 +1,66 @@
1
1
  {
2
2
  "name": "react-native-drawer-layout",
3
- "version": "1.3.2",
4
- "description": "A platform-agnostic drawer layout. Pure JavaScript implementation on iOS and native implementation on Android. Why? Because the drawer layout is a useful component regardless of the platform! And if you can use it without changing any code, that's perfect.",
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
- "layout",
89
- "menu"
12
+ "swipe"
90
13
  ],
91
14
  "license": "MIT",
92
- "dependencies": {
93
- "react-native-dismiss-keyboard": "1.0.0"
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"
94
45
  },
95
46
  "peerDependencies": {
96
47
  "react": "*",
97
- "react-native": "*"
48
+ "react-native": "*",
49
+ "react-native-gesture-handler": ">= 1.0.0",
50
+ "react-native-reanimated": ">= 1.0.0"
98
51
  },
99
- "devDependencies": {
100
- "babel-cli": "^6.0.0",
101
- "babel-plugin-transform-decorators-legacy": "^1.3.4",
102
- "babel-preset-react-native": "^1.8.0",
103
- "flow-bin": "^0.42.0",
104
- "lint-staged": "^3.3.1",
105
- "pre-commit": "^1.2.2",
106
- "prettier": "^0.19.0"
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
+ ]
107
65
  }
108
66
  }
@@ -0,0 +1,4 @@
1
+ export const SWIPE_MIN_OFFSET = 5;
2
+ export const SWIPE_MIN_DISTANCE = 60;
3
+ export const SWIPE_MIN_VELOCITY = 500;
4
+ export const DEFAULT_DRAWER_WIDTH = '80%';
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,3 @@
1
+ import * as React from 'react';
2
+
3
+ export default React.createContext<React.RefObject<any> | null>(null);
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ import type Animated from 'react-native-reanimated';
3
+
4
+ export default React.createContext<
5
+ Readonly<Animated.SharedValue<number>> | Animated.Node<number> | undefined
6
+ >(undefined);
@@ -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
+ }