@react-navigation/drawer 6.6.0 → 7.0.0-alpha.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 (120) hide show
  1. package/lib/commonjs/index.js +4 -6
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/navigators/createDrawerNavigator.js +3 -43
  4. package/lib/commonjs/navigators/createDrawerNavigator.js.map +1 -1
  5. package/lib/commonjs/views/DrawerItem.js +9 -5
  6. package/lib/commonjs/views/DrawerItem.js.map +1 -1
  7. package/lib/commonjs/views/DrawerItemList.js +6 -6
  8. package/lib/commonjs/views/DrawerItemList.js.map +1 -1
  9. package/lib/commonjs/views/DrawerView.js +21 -58
  10. package/lib/commonjs/views/DrawerView.js.map +1 -1
  11. package/lib/module/index.js +1 -3
  12. package/lib/module/index.js.map +1 -1
  13. package/lib/module/navigators/createDrawerNavigator.js +3 -43
  14. package/lib/module/navigators/createDrawerNavigator.js.map +1 -1
  15. package/lib/module/views/DrawerItem.js +10 -6
  16. package/lib/module/views/DrawerItem.js.map +1 -1
  17. package/lib/module/views/DrawerItemList.js +7 -7
  18. package/lib/module/views/DrawerItemList.js.map +1 -1
  19. package/lib/module/views/DrawerView.js +21 -58
  20. package/lib/module/views/DrawerView.js.map +1 -1
  21. package/lib/typescript/src/index.d.ts +1 -3
  22. package/lib/typescript/src/index.d.ts.map +1 -1
  23. package/lib/typescript/src/navigators/createDrawerNavigator.d.ts +8 -3
  24. package/lib/typescript/src/navigators/createDrawerNavigator.d.ts.map +1 -1
  25. package/lib/typescript/src/types.d.ts +17 -16
  26. package/lib/typescript/src/types.d.ts.map +1 -1
  27. package/lib/typescript/src/views/DrawerItem.d.ts +10 -5
  28. package/lib/typescript/src/views/DrawerItem.d.ts.map +1 -1
  29. package/lib/typescript/src/views/DrawerItemList.d.ts +1 -1
  30. package/lib/typescript/src/views/DrawerItemList.d.ts.map +1 -1
  31. package/lib/typescript/src/views/DrawerToggleButton.d.ts +1 -1
  32. package/lib/typescript/src/views/DrawerToggleButton.d.ts.map +1 -1
  33. package/lib/typescript/src/views/DrawerView.d.ts +1 -1
  34. package/lib/typescript/src/views/DrawerView.d.ts.map +1 -1
  35. package/lib/typescript/src/views/ScreenFallback.d.ts +1 -1
  36. package/lib/typescript/src/views/ScreenFallback.d.ts.map +1 -1
  37. package/package.json +14 -14
  38. package/src/index.tsx +5 -3
  39. package/src/navigators/createDrawerNavigator.tsx +2 -72
  40. package/src/types.tsx +4 -3
  41. package/src/views/DrawerItem.tsx +20 -11
  42. package/src/views/DrawerItemList.tsx +5 -4
  43. package/src/views/DrawerView.tsx +15 -68
  44. package/lib/commonjs/utils/DrawerGestureContext.js +0 -12
  45. package/lib/commonjs/utils/DrawerGestureContext.js.map +0 -1
  46. package/lib/commonjs/utils/DrawerProgressContext.js +0 -12
  47. package/lib/commonjs/utils/DrawerProgressContext.js.map +0 -1
  48. package/lib/commonjs/utils/useDrawerProgress.js +0 -19
  49. package/lib/commonjs/utils/useDrawerProgress.js.map +0 -1
  50. package/lib/commonjs/views/GestureHandler.android.js +0 -17
  51. package/lib/commonjs/views/GestureHandler.android.js.map +0 -1
  52. package/lib/commonjs/views/GestureHandler.ios.js +0 -17
  53. package/lib/commonjs/views/GestureHandler.ios.js.map +0 -1
  54. package/lib/commonjs/views/GestureHandler.js +0 -32
  55. package/lib/commonjs/views/GestureHandler.js.map +0 -1
  56. package/lib/commonjs/views/GestureHandlerNative.js +0 -37
  57. package/lib/commonjs/views/GestureHandlerNative.js.map +0 -1
  58. package/lib/commonjs/views/legacy/Drawer.js +0 -420
  59. package/lib/commonjs/views/legacy/Drawer.js.map +0 -1
  60. package/lib/commonjs/views/legacy/Overlay.js +0 -74
  61. package/lib/commonjs/views/legacy/Overlay.js.map +0 -1
  62. package/lib/commonjs/views/modern/Drawer.js +0 -304
  63. package/lib/commonjs/views/modern/Drawer.js.map +0 -1
  64. package/lib/commonjs/views/modern/Overlay.js +0 -69
  65. package/lib/commonjs/views/modern/Overlay.js.map +0 -1
  66. package/lib/module/utils/DrawerGestureContext.js +0 -3
  67. package/lib/module/utils/DrawerGestureContext.js.map +0 -1
  68. package/lib/module/utils/DrawerProgressContext.js +0 -3
  69. package/lib/module/utils/DrawerProgressContext.js.map +0 -1
  70. package/lib/module/utils/useDrawerProgress.js +0 -10
  71. package/lib/module/utils/useDrawerProgress.js.map +0 -1
  72. package/lib/module/views/GestureHandler.android.js +0 -2
  73. package/lib/module/views/GestureHandler.android.js.map +0 -1
  74. package/lib/module/views/GestureHandler.ios.js +0 -2
  75. package/lib/module/views/GestureHandler.ios.js.map +0 -1
  76. package/lib/module/views/GestureHandler.js +0 -20
  77. package/lib/module/views/GestureHandler.js.map +0 -1
  78. package/lib/module/views/GestureHandlerNative.js +0 -11
  79. package/lib/module/views/GestureHandlerNative.js.map +0 -1
  80. package/lib/module/views/legacy/Drawer.js +0 -410
  81. package/lib/module/views/legacy/Drawer.js.map +0 -1
  82. package/lib/module/views/legacy/Overlay.js +0 -64
  83. package/lib/module/views/legacy/Overlay.js.map +0 -1
  84. package/lib/module/views/modern/Drawer.js +0 -295
  85. package/lib/module/views/modern/Drawer.js.map +0 -1
  86. package/lib/module/views/modern/Overlay.js +0 -60
  87. package/lib/module/views/modern/Overlay.js.map +0 -1
  88. package/lib/typescript/src/utils/DrawerGestureContext.d.ts +0 -4
  89. package/lib/typescript/src/utils/DrawerGestureContext.d.ts.map +0 -1
  90. package/lib/typescript/src/utils/DrawerProgressContext.d.ts +0 -5
  91. package/lib/typescript/src/utils/DrawerProgressContext.d.ts.map +0 -1
  92. package/lib/typescript/src/utils/useDrawerProgress.d.ts +0 -3
  93. package/lib/typescript/src/utils/useDrawerProgress.d.ts.map +0 -1
  94. package/lib/typescript/src/views/GestureHandler.android.d.ts +0 -2
  95. package/lib/typescript/src/views/GestureHandler.android.d.ts.map +0 -1
  96. package/lib/typescript/src/views/GestureHandler.d.ts +0 -15
  97. package/lib/typescript/src/views/GestureHandler.d.ts.map +0 -1
  98. package/lib/typescript/src/views/GestureHandler.ios.d.ts +0 -2
  99. package/lib/typescript/src/views/GestureHandler.ios.d.ts.map +0 -1
  100. package/lib/typescript/src/views/GestureHandlerNative.d.ts +0 -6
  101. package/lib/typescript/src/views/GestureHandlerNative.d.ts.map +0 -1
  102. package/lib/typescript/src/views/legacy/Drawer.d.ts +0 -45
  103. package/lib/typescript/src/views/legacy/Drawer.d.ts.map +0 -1
  104. package/lib/typescript/src/views/legacy/Overlay.d.ts +0 -75
  105. package/lib/typescript/src/views/legacy/Overlay.d.ts.map +0 -1
  106. package/lib/typescript/src/views/modern/Drawer.d.ts +0 -4
  107. package/lib/typescript/src/views/modern/Drawer.d.ts.map +0 -1
  108. package/lib/typescript/src/views/modern/Overlay.d.ts +0 -75
  109. package/lib/typescript/src/views/modern/Overlay.d.ts.map +0 -1
  110. package/src/utils/DrawerGestureContext.tsx +0 -3
  111. package/src/utils/DrawerProgressContext.tsx +0 -6
  112. package/src/utils/useDrawerProgress.tsx +0 -18
  113. package/src/views/GestureHandler.android.tsx +0 -1
  114. package/src/views/GestureHandler.ios.tsx +0 -1
  115. package/src/views/GestureHandler.tsx +0 -29
  116. package/src/views/GestureHandlerNative.tsx +0 -24
  117. package/src/views/legacy/Drawer.tsx +0 -672
  118. package/src/views/legacy/Overlay.tsx +0 -87
  119. package/src/views/modern/Drawer.tsx +0 -425
  120. package/src/views/modern/Overlay.tsx +0 -82
package/src/index.tsx CHANGED
@@ -16,12 +16,14 @@ export { default as DrawerView } from './views/DrawerView';
16
16
  /**
17
17
  * Utilities
18
18
  */
19
- export { default as DrawerGestureContext } from './utils/DrawerGestureContext';
20
- export { default as DrawerProgressContext } from './utils/DrawerProgressContext';
21
19
  export { default as DrawerStatusContext } from './utils/DrawerStatusContext';
22
20
  export { default as getDrawerStatusFromState } from './utils/getDrawerStatusFromState';
23
- export { default as useDrawerProgress } from './utils/useDrawerProgress';
24
21
  export { default as useDrawerStatus } from './utils/useDrawerStatus';
22
+ export {
23
+ DrawerGestureContext,
24
+ DrawerProgressContext,
25
+ useDrawerProgress,
26
+ } from 'react-native-drawer-layout';
25
27
 
26
28
  /**
27
29
  * Types
@@ -5,12 +5,10 @@ import {
5
5
  DrawerNavigationState,
6
6
  DrawerRouter,
7
7
  DrawerRouterOptions,
8
- DrawerStatus,
9
8
  ParamListBase,
10
9
  useNavigationBuilder,
11
10
  } from '@react-navigation/native';
12
11
  import * as React from 'react';
13
- import warnOnce from 'warn-once';
14
12
 
15
13
  import type {
16
14
  DrawerNavigationConfig,
@@ -31,80 +29,13 @@ type Props = DefaultNavigatorOptions<
31
29
  function DrawerNavigator({
32
30
  id,
33
31
  initialRouteName,
34
- defaultStatus: customDefaultStatus,
32
+ defaultStatus = 'closed',
35
33
  backBehavior,
36
34
  children,
37
35
  screenListeners,
38
36
  screenOptions,
39
- ...restWithDeprecated
37
+ ...rest
40
38
  }: Props) {
41
- const {
42
- // @ts-expect-error: openByDefault is deprecated
43
- openByDefault,
44
- // @ts-expect-error: lazy is deprecated
45
- lazy,
46
- // @ts-expect-error: drawerContentOptions is deprecated
47
- drawerContentOptions,
48
- ...rest
49
- } = restWithDeprecated;
50
-
51
- let defaultScreenOptions: DrawerNavigationOptions = {};
52
-
53
- if (drawerContentOptions) {
54
- Object.assign(defaultScreenOptions, {
55
- drawerPosition: drawerContentOptions.drawerPosition,
56
- drawerType: drawerContentOptions.drawerType,
57
- swipeEdgeWidth: drawerContentOptions.edgeWidth,
58
- drawerHideStatusBarOnOpen: drawerContentOptions.hideStatusBar,
59
- keyboardDismissMode: drawerContentOptions.keyboardDismissMode,
60
- swipeMinDistance: drawerContentOptions.minSwipeDistance,
61
- overlayColor: drawerContentOptions.overlayColor,
62
- drawerStatusBarAnimation: drawerContentOptions.statusBarAnimation,
63
- gestureHandlerProps: drawerContentOptions.gestureHandlerProps,
64
- });
65
-
66
- (
67
- Object.keys(defaultScreenOptions) as (keyof DrawerNavigationOptions)[]
68
- ).forEach((key) => {
69
- if (defaultScreenOptions[key] === undefined) {
70
- // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
71
- delete defaultScreenOptions[key];
72
- }
73
- });
74
-
75
- warnOnce(
76
- drawerContentOptions,
77
- `Drawer Navigator: 'drawerContentOptions' is deprecated. Migrate the options to 'screenOptions' instead.\n\nPlace the following in 'screenOptions' in your code to keep current behavior:\n\n${JSON.stringify(
78
- defaultScreenOptions,
79
- null,
80
- 2
81
- )}\n\nSee https://reactnavigation.org/docs/drawer-navigator#options for more details.`
82
- );
83
- }
84
-
85
- if (typeof lazy === 'boolean') {
86
- defaultScreenOptions.lazy = lazy;
87
-
88
- warnOnce(
89
- true,
90
- `Drawer Navigator: 'lazy' in props is deprecated. Move it to 'screenOptions' instead.\n\nSee https://reactnavigation.org/docs/drawer-navigator/#lazy for more details.`
91
- );
92
- }
93
-
94
- if (typeof openByDefault === 'boolean') {
95
- warnOnce(
96
- true,
97
- `Drawer Navigator: 'openByDefault' is deprecated. Use 'defaultStatus' and set it to 'open' or 'closed' instead.\n\nSee https://reactnavigation.org/docs/drawer-navigator/#defaultstatus for more details.`
98
- );
99
- }
100
-
101
- const defaultStatus: DrawerStatus =
102
- customDefaultStatus !== undefined
103
- ? customDefaultStatus
104
- : openByDefault
105
- ? 'open'
106
- : 'closed';
107
-
108
39
  const { state, descriptors, navigation, NavigationContent } =
109
40
  useNavigationBuilder<
110
41
  DrawerNavigationState<ParamListBase>,
@@ -120,7 +51,6 @@ function DrawerNavigator({
120
51
  children,
121
52
  screenListeners,
122
53
  screenOptions,
123
- defaultScreenOptions,
124
54
  });
125
55
 
126
56
  return (
package/src/types.tsx CHANGED
@@ -38,7 +38,7 @@ export type DrawerNavigationConfig = {
38
38
  /**
39
39
  * Whether to use the legacy implementation based on Reanimated 1.
40
40
  * The new implementation based on Reanimated 2 will perform better,
41
- * but you need additional configuration and need to use Hermes with Flipper to debug.
41
+ * but it's not possible to use Chrome remote debugger.
42
42
  *
43
43
  * This defaults to `true` if Reanimated 2 is not configured.
44
44
  *
@@ -172,8 +172,9 @@ export type DrawerNavigationOptions = HeaderOptions & {
172
172
  overlayColor?: string;
173
173
 
174
174
  /**
175
- * Screen readers will read this string when the user presses on the overlay adjacent to an opened drawer. Defaults to "Close drawer".
176
- * **/
175
+ * Accessibility label for the overlay. This is read by the screen reader when the user taps the overlay.
176
+ * Defaults to "Close drawer".
177
+ */
177
178
  overlayAccessibilityLabel?: string;
178
179
 
179
180
  /**
@@ -1,5 +1,5 @@
1
1
  import { PlatformPressable } from '@react-navigation/elements';
2
- import { Link, useTheme } from '@react-navigation/native';
2
+ import { CommonActions, Link, Route, useTheme } from '@react-navigation/native';
3
3
  import Color from 'color';
4
4
  import * as React from 'react';
5
5
  import {
@@ -13,6 +13,14 @@ import {
13
13
  } from 'react-native';
14
14
 
15
15
  type Props = {
16
+ /**
17
+ * The route object which should be specified by the drawer item.
18
+ */
19
+ route: Route<string>;
20
+ /**
21
+ * The `href` to use for the anchor tag on web
22
+ */
23
+ href?: string;
16
24
  /**
17
25
  * The label text of the item.
18
26
  */
@@ -27,10 +35,6 @@ type Props = {
27
35
  size: number;
28
36
  color: string;
29
37
  }) => React.ReactNode;
30
- /**
31
- * URL to use for the link to the tab.
32
- */
33
- to?: string;
34
38
  /**
35
39
  * Whether to highlight the drawer item as active.
36
40
  */
@@ -93,29 +97,32 @@ type Props = {
93
97
  };
94
98
 
95
99
  const LinkPressable = ({
100
+ route,
101
+ href,
96
102
  children,
97
103
  style,
98
104
  onPress,
99
105
  onLongPress,
100
106
  onPressIn,
101
107
  onPressOut,
102
- to,
103
108
  accessibilityRole,
104
109
  ...rest
105
110
  }: Omit<React.ComponentProps<typeof PlatformPressable>, 'style'> & {
106
111
  style: StyleProp<ViewStyle>;
107
112
  } & {
108
- to?: string;
113
+ route: Route<string>;
114
+ href?: string;
109
115
  children: React.ReactNode;
110
116
  onPress?: () => void;
111
117
  }) => {
112
- if (Platform.OS === 'web' && to) {
118
+ if (Platform.OS === 'web') {
113
119
  // React Native Web doesn't forward `onClick` if we use `TouchableWithoutFeedback`.
114
120
  // We need to use `onClick` to be able to prevent default browser handling of links.
115
121
  return (
116
122
  <Link
117
123
  {...rest}
118
- to={to}
124
+ href={href}
125
+ action={CommonActions.navigate(route.name, route.params)}
119
126
  style={[styles.button, style]}
120
127
  onPress={(e: any) => {
121
128
  if (
@@ -155,10 +162,11 @@ export default function DrawerItem(props: Props) {
155
162
  const { colors } = useTheme();
156
163
 
157
164
  const {
165
+ route,
166
+ href,
158
167
  icon,
159
168
  label,
160
169
  labelStyle,
161
- to,
162
170
  focused = false,
163
171
  allowFontScaling,
164
172
  activeTintColor = colors.primary,
@@ -197,7 +205,8 @@ export default function DrawerItem(props: Props) {
197
205
  accessibilityState={{ selected: focused }}
198
206
  pressColor={pressColor}
199
207
  pressOpacity={pressOpacity}
200
- to={to}
208
+ route={route}
209
+ href={href}
201
210
  >
202
211
  <React.Fragment>
203
212
  {iconNode}
@@ -3,7 +3,7 @@ import {
3
3
  DrawerActions,
4
4
  DrawerNavigationState,
5
5
  ParamListBase,
6
- useLinkBuilder,
6
+ useLinkTools,
7
7
  } from '@react-navigation/native';
8
8
  import * as React from 'react';
9
9
 
@@ -24,7 +24,7 @@ export default function DrawerItemList({
24
24
  navigation,
25
25
  descriptors,
26
26
  }: Props) {
27
- const buildLink = useLinkBuilder();
27
+ const { buildHref } = useLinkTools();
28
28
 
29
29
  const focusedRoute = state.routes[state.index];
30
30
  const focusedDescriptor = descriptors[focusedRoute.key];
@@ -51,7 +51,7 @@ export default function DrawerItemList({
51
51
  navigation.dispatch({
52
52
  ...(focused
53
53
  ? DrawerActions.closeDrawer()
54
- : CommonActions.navigate({ name: route.name, merge: true })),
54
+ : CommonActions.navigate(route)),
55
55
  target: state.key,
56
56
  });
57
57
  }
@@ -69,6 +69,8 @@ export default function DrawerItemList({
69
69
  return (
70
70
  <DrawerItem
71
71
  key={route.key}
72
+ route={route}
73
+ href={buildHref(route.name, route.params)}
72
74
  label={
73
75
  drawerLabel !== undefined
74
76
  ? drawerLabel
@@ -85,7 +87,6 @@ export default function DrawerItemList({
85
87
  allowFontScaling={drawerAllowFontScaling}
86
88
  labelStyle={drawerLabelStyle}
87
89
  style={drawerItemStyle}
88
- to={buildLink(route.name, route.params)}
89
90
  onPress={onPress}
90
91
  />
91
92
  );
@@ -12,14 +12,8 @@ import {
12
12
  useTheme,
13
13
  } from '@react-navigation/native';
14
14
  import * as React from 'react';
15
- import {
16
- BackHandler,
17
- I18nManager,
18
- Platform,
19
- StyleSheet,
20
- View,
21
- } from 'react-native';
22
- import * as Reanimated from 'react-native-reanimated';
15
+ import { BackHandler, I18nManager, Platform, StyleSheet } from 'react-native';
16
+ import { Drawer } from 'react-native-drawer-layout';
23
17
  import { useSafeAreaFrame } from 'react-native-safe-area-context';
24
18
 
25
19
  import type {
@@ -29,14 +23,12 @@ import type {
29
23
  DrawerNavigationConfig,
30
24
  DrawerNavigationHelpers,
31
25
  DrawerNavigationProp,
32
- DrawerProps,
33
26
  } from '../types';
34
27
  import DrawerPositionContext from '../utils/DrawerPositionContext';
35
28
  import DrawerStatusContext from '../utils/DrawerStatusContext';
36
29
  import getDrawerStatusFromState from '../utils/getDrawerStatusFromState';
37
30
  import DrawerContent from './DrawerContent';
38
31
  import DrawerToggleButton from './DrawerToggleButton';
39
- import { GestureHandlerRootView } from './GestureHandler';
40
32
  import { MaybeScreen, MaybeScreenContainer } from './ScreenFallback';
41
33
 
42
34
  type Props = DrawerNavigationConfig & {
@@ -46,29 +38,6 @@ type Props = DrawerNavigationConfig & {
46
38
  descriptors: DrawerDescriptorMap;
47
39
  };
48
40
 
49
- const getDefaultDrawerWidth = ({
50
- height,
51
- width,
52
- }: {
53
- height: number;
54
- width: number;
55
- }) => {
56
- /*
57
- * Default drawer width is screen width - header height
58
- * with a max width of 280 on mobile and 320 on tablet
59
- * https://material.io/components/navigation-drawer
60
- */
61
- const smallerAxisSize = Math.min(height, width);
62
- const isLandscape = width > height;
63
- const isTablet = smallerAxisSize >= 600;
64
- const appBarHeight = Platform.OS === 'ios' ? (isLandscape ? 32 : 44) : 56;
65
- const maxWidth = isTablet ? 320 : 280;
66
-
67
- return Math.min(smallerAxisSize - appBarHeight, maxWidth);
68
- };
69
-
70
- const GestureHandlerWrapper = GestureHandlerRootView ?? View;
71
-
72
41
  function DrawerViewBase({
73
42
  state,
74
43
  navigation,
@@ -80,39 +49,22 @@ function DrawerViewBase({
80
49
  detachInactiveScreens = Platform.OS === 'web' ||
81
50
  Platform.OS === 'android' ||
82
51
  Platform.OS === 'ios',
83
- // Reanimated 2 is not configured
84
- // @ts-expect-error: the type definitions are incomplete
85
- useLegacyImplementation = !Reanimated.isConfigured?.(),
86
52
  }: Props) {
87
- // Reanimated v3 dropped legacy v1 syntax
88
- const legacyImplemenationNotAvailable =
89
- require('react-native-reanimated').abs === undefined;
90
-
91
- if (useLegacyImplementation && legacyImplemenationNotAvailable) {
92
- throw new Error(
93
- 'The `useLegacyImplementation` prop is not available with Reanimated 3 as it no longer includes support for Reanimated 1 legacy API. Remove the `useLegacyImplementation` prop from `Drawer.Navigator` to be able to use it.'
94
- );
95
- }
96
-
97
- const Drawer: React.ComponentType<DrawerProps> = useLegacyImplementation
98
- ? require('./legacy/Drawer').default
99
- : require('./modern/Drawer').default;
100
-
101
53
  const focusedRouteKey = state.routes[state.index].key;
102
54
  const {
103
- drawerHideStatusBarOnOpen = false,
55
+ drawerHideStatusBarOnOpen,
104
56
  drawerPosition = I18nManager.getConstants().isRTL ? 'right' : 'left',
105
- drawerStatusBarAnimation = 'slide',
57
+ drawerStatusBarAnimation,
106
58
  drawerStyle,
107
- drawerType = Platform.select({ ios: 'slide', default: 'front' }),
59
+ drawerType,
108
60
  gestureHandlerProps,
109
- keyboardDismissMode = 'on-drag',
61
+ keyboardDismissMode,
110
62
  overlayColor = 'rgba(0, 0, 0, 0.5)',
111
- swipeEdgeWidth = 32,
63
+ swipeEdgeWidth,
112
64
  swipeEnabled = Platform.OS !== 'web' &&
113
65
  Platform.OS !== 'windows' &&
114
66
  Platform.OS !== 'macos',
115
- swipeMinDistance = 60,
67
+ swipeMinDistance,
116
68
  overlayAccessibilityLabel,
117
69
  } = descriptors[focusedRouteKey].options;
118
70
 
@@ -288,11 +240,11 @@ function DrawerViewBase({
288
240
  open={drawerStatus !== 'closed'}
289
241
  onOpen={handleDrawerOpen}
290
242
  onClose={handleDrawerClose}
243
+ layout={dimensions}
291
244
  gestureHandlerProps={gestureHandlerProps}
292
245
  swipeEnabled={swipeEnabled}
293
246
  swipeEdgeWidth={swipeEdgeWidth}
294
- swipeVelocityThreshold={500}
295
- swipeDistanceThreshold={swipeMinDistance}
247
+ swipeMinDistance={swipeMinDistance}
296
248
  hideStatusBarOnOpen={drawerHideStatusBarOnOpen}
297
249
  statusBarAnimation={drawerStatusBarAnimation}
298
250
  keyboardDismissMode={keyboardDismissMode}
@@ -300,10 +252,7 @@ function DrawerViewBase({
300
252
  overlayAccessibilityLabel={overlayAccessibilityLabel}
301
253
  drawerPosition={drawerPosition}
302
254
  drawerStyle={[
303
- {
304
- width: getDefaultDrawerWidth(dimensions),
305
- backgroundColor: colors.card,
306
- },
255
+ { backgroundColor: colors.card },
307
256
  drawerType === 'permanent' &&
308
257
  (drawerPosition === 'left'
309
258
  ? {
@@ -318,9 +267,9 @@ function DrawerViewBase({
318
267
  ]}
319
268
  overlayStyle={{ backgroundColor: overlayColor }}
320
269
  renderDrawerContent={renderDrawerContent}
321
- renderSceneContent={renderSceneContent}
322
- dimensions={dimensions}
323
- />
270
+ >
271
+ {renderSceneContent()}
272
+ </Drawer>
324
273
  </DrawerStatusContext.Provider>
325
274
  );
326
275
  }
@@ -328,9 +277,7 @@ function DrawerViewBase({
328
277
  export default function DrawerView({ navigation, ...rest }: Props) {
329
278
  return (
330
279
  <SafeAreaProviderCompat>
331
- <GestureHandlerWrapper style={styles.content}>
332
- <DrawerViewBase navigation={navigation} {...rest} />
333
- </GestureHandlerWrapper>
280
+ <DrawerViewBase navigation={navigation} {...rest} />
334
281
  </SafeAreaProviderCompat>
335
282
  );
336
283
  }
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var React = _interopRequireWildcard(require("react"));
8
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
- var _default = /*#__PURE__*/React.createContext(null);
11
- exports.default = _default;
12
- //# sourceMappingURL=DrawerGestureContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","createContext"],"sourceRoot":"../../src","sources":["DrawerGestureContext.tsx"],"mappings":";;;;;;AAAA;AAA+B;AAAA;AAAA,4BAEhBA,KAAK,CAACC,aAAa,CAA8B,IAAI,CAAC;AAAA"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var React = _interopRequireWildcard(require("react"));
8
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
9
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
- var _default = /*#__PURE__*/React.createContext(undefined);
11
- exports.default = _default;
12
- //# sourceMappingURL=DrawerProgressContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","createContext","undefined"],"sourceRoot":"../../src","sources":["DrawerProgressContext.tsx"],"mappings":";;;;;;AAAA;AAA+B;AAAA;AAAA,4BAGhBA,KAAK,CAACC,aAAa,CAEhCC,SAAS,CAAC;AAAA"}
@@ -1,19 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = useDrawerProgress;
7
- var React = _interopRequireWildcard(require("react"));
8
- var _DrawerProgressContext = _interopRequireDefault(require("./DrawerProgressContext"));
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
- function useDrawerProgress() {
13
- const progress = React.useContext(_DrawerProgressContext.default);
14
- if (progress === undefined) {
15
- throw new Error("Couldn't find a drawer. Is your component inside a drawer navigator?");
16
- }
17
- return progress;
18
- }
19
- //# sourceMappingURL=useDrawerProgress.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useDrawerProgress","progress","React","useContext","DrawerProgressContext","undefined","Error"],"sourceRoot":"../../src","sources":["useDrawerProgress.tsx"],"mappings":";;;;;;AAAA;AAGA;AAA4D;AAAA;AAAA;AAE7C,SAASA,iBAAiB,GAEf;EACxB,MAAMC,QAAQ,GAAGC,KAAK,CAACC,UAAU,CAACC,8BAAqB,CAAC;EAExD,IAAIH,QAAQ,KAAKI,SAAS,EAAE;IAC1B,MAAM,IAAIC,KAAK,CACb,sEAAsE,CACvE;EACH;EAEA,OAAOL,QAAQ;AACjB"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _GestureHandlerNative = require("./GestureHandlerNative");
7
- Object.keys(_GestureHandlerNative).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _GestureHandlerNative[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _GestureHandlerNative[key];
14
- }
15
- });
16
- });
17
- //# sourceMappingURL=GestureHandler.android.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sourceRoot":"../../src","sources":["GestureHandler.android.tsx"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _GestureHandlerNative = require("./GestureHandlerNative");
7
- Object.keys(_GestureHandlerNative).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _GestureHandlerNative[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _GestureHandlerNative[key];
14
- }
15
- });
16
- });
17
- //# sourceMappingURL=GestureHandler.ios.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sourceRoot":"../../src","sources":["GestureHandler.ios.tsx"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.TapGestureHandler = exports.PanGestureHandler = exports.GestureState = exports.GestureHandlerRootView = void 0;
7
- var React = _interopRequireWildcard(require("react"));
8
- var _reactNative = require("react-native");
9
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
11
- const Dummy = _ref => {
12
- let {
13
- children
14
- } = _ref;
15
- return /*#__PURE__*/React.createElement(React.Fragment, null, children);
16
- };
17
- const PanGestureHandler = Dummy;
18
- exports.PanGestureHandler = PanGestureHandler;
19
- const TapGestureHandler = Dummy;
20
- exports.TapGestureHandler = TapGestureHandler;
21
- const GestureHandlerRootView = _reactNative.View;
22
- exports.GestureHandlerRootView = GestureHandlerRootView;
23
- const GestureState = {
24
- UNDETERMINED: 0,
25
- FAILED: 1,
26
- BEGAN: 2,
27
- CANCELLED: 3,
28
- ACTIVE: 4,
29
- END: 5
30
- };
31
- exports.GestureState = GestureState;
32
- //# sourceMappingURL=GestureHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["Dummy","children","PanGestureHandler","TapGestureHandler","GestureHandlerRootView","View","GestureState","UNDETERMINED","FAILED","BEGAN","CANCELLED","ACTIVE","END"],"sourceRoot":"../../src","sources":["GestureHandler.tsx"],"mappings":";;;;;;AAAA;AACA;AAAoC;AAAA;AAMpC,MAAMA,KAAU,GAAG;EAAA,IAAC;IAAEC;EAAwC,CAAC;EAAA,oBAC7D,0CAAGA,QAAQ,CAAI;AAAA,CAChB;AAEM,MAAMC,iBAAiB,GAC5BF,KAAyD;AAAC;AAErD,MAAMG,iBAAiB,GAC5BH,KAAyD;AAAC;AAErD,MAAMI,sBAAsB,GAAGC,iBAAI;AAAC;AAEpC,MAAMC,YAAY,GAAG;EAC1BC,YAAY,EAAE,CAAC;EACfC,MAAM,EAAE,CAAC;EACTC,KAAK,EAAE,CAAC;EACRC,SAAS,EAAE,CAAC;EACZC,MAAM,EAAE,CAAC;EACTC,GAAG,EAAE;AACP,CAAC;AAAC"}
@@ -1,37 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "GestureHandlerRootView", {
7
- enumerable: true,
8
- get: function () {
9
- return _reactNativeGestureHandler.GestureHandlerRootView;
10
- }
11
- });
12
- Object.defineProperty(exports, "GestureState", {
13
- enumerable: true,
14
- get: function () {
15
- return _reactNativeGestureHandler.State;
16
- }
17
- });
18
- exports.PanGestureHandler = PanGestureHandler;
19
- Object.defineProperty(exports, "TapGestureHandler", {
20
- enumerable: true,
21
- get: function () {
22
- return _reactNativeGestureHandler.TapGestureHandler;
23
- }
24
- });
25
- var React = _interopRequireWildcard(require("react"));
26
- var _reactNativeGestureHandler = require("react-native-gesture-handler");
27
- var _DrawerGestureContext = _interopRequireDefault(require("../utils/DrawerGestureContext"));
28
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
30
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
- function PanGestureHandler(props) {
32
- const gestureRef = React.useRef(null);
33
- return /*#__PURE__*/React.createElement(_DrawerGestureContext.default.Provider, {
34
- value: gestureRef
35
- }, /*#__PURE__*/React.createElement(_reactNativeGestureHandler.PanGestureHandler, props));
36
- }
37
- //# sourceMappingURL=GestureHandlerNative.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["PanGestureHandler","props","gestureRef","React","useRef"],"sourceRoot":"../../src","sources":["GestureHandlerNative.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAKA;AAAiE;AAAA;AAAA;AAE1D,SAASA,iBAAiB,CAACC,KAAkC,EAAE;EACpE,MAAMC,UAAU,GAAGC,KAAK,CAACC,MAAM,CAA0B,IAAI,CAAC;EAE9D,oBACE,oBAAC,6BAAoB,CAAC,QAAQ;IAAC,KAAK,EAAEF;EAAW,gBAC/C,oBAAC,4CAAuB,EAAKD,KAAK,CAAI,CACR;AAEpC"}