@react-navigation/bottom-tabs 8.0.0-alpha.28 → 8.0.0-alpha.29
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/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/navigators/createBottomTabNavigator.js +1 -1
- package/lib/module/navigators/createBottomTabNavigator.js.map +1 -1
- package/lib/module/views/BottomTabBar.js +1 -1
- package/lib/module/views/BottomTabBar.js.map +1 -1
- package/lib/module/views/{BottomTabViewCommon.js → BottomTabView.js} +1 -1
- package/lib/module/views/BottomTabView.js.map +1 -0
- package/lib/module/views/BottomTabViewNativeImpl.js +213 -97
- package/lib/module/views/BottomTabViewNativeImpl.js.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +11 -34
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/views/BottomTabBar.d.ts.map +1 -1
- package/lib/typescript/src/views/{BottomTabViewCommon.d.ts → BottomTabView.d.ts} +1 -1
- package/lib/typescript/src/views/BottomTabView.d.ts.map +1 -0
- package/lib/typescript/src/views/BottomTabViewNativeImpl.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/index.tsx +1 -1
- package/src/navigators/createBottomTabNavigator.tsx +1 -1
- package/src/types.tsx +12 -36
- package/src/views/BottomTabBar.tsx +5 -1
- package/src/views/BottomTabViewNativeImpl.tsx +294 -136
- package/lib/module/views/BottomTabViewCommon.js.map +0 -1
- package/lib/typescript/src/views/BottomTabViewCommon.d.ts.map +0 -1
- /package/src/views/{BottomTabViewCommon.tsx → BottomTabView.tsx} +0 -0
|
@@ -3,13 +3,14 @@ import type { Screen } from '@react-navigation/elements/internal';
|
|
|
3
3
|
import type { DefaultNavigatorOptions, Descriptor, NavigationHelpers, NavigationProp, ParamListBase, RouteProp, TabActionHelpers, TabNavigationState, TabRouterOptions, Theme } from '@react-navigation/native';
|
|
4
4
|
import type * as React from 'react';
|
|
5
5
|
import type { Animated, ColorValue, GestureResponderEvent, StyleProp, TextStyle, ViewStyle } from 'react-native';
|
|
6
|
-
import type { TabBarItemLabelVisibilityMode, TabsScreenBlurEffect,
|
|
6
|
+
import type { TabBarItemLabelVisibilityMode, TabsScreenBlurEffect, TabsScreenSystemItem } from 'react-native-screens';
|
|
7
7
|
export type Variant = 'uikit' | 'material';
|
|
8
8
|
export type BottomTabNavigationEventMap = {
|
|
9
9
|
/**
|
|
10
10
|
* Event which fires on tapping on the tab in the tab bar.
|
|
11
11
|
*
|
|
12
12
|
* Preventing default is only supported with `custom` implementation.
|
|
13
|
+
* Use `tabBarSelectionEnabled: false` option with `native` implementation.
|
|
13
14
|
*/
|
|
14
15
|
tabPress: {
|
|
15
16
|
data: undefined;
|
|
@@ -176,7 +177,6 @@ type BottomTabCustomOptions = {
|
|
|
176
177
|
*/
|
|
177
178
|
tabBarButton?: (props: BottomTabBarButtonProps) => React.ReactNode;
|
|
178
179
|
};
|
|
179
|
-
type ScrollEdgeEffect = 'auto' | 'hard' | 'soft' | 'hidden';
|
|
180
180
|
type BottomTabNativeOptions = {
|
|
181
181
|
/**
|
|
182
182
|
* Uses iOS built-in tab bar items with standard iOS styling and localized titles.
|
|
@@ -188,7 +188,7 @@ type BottomTabNativeOptions = {
|
|
|
188
188
|
*
|
|
189
189
|
* @platform ios
|
|
190
190
|
*/
|
|
191
|
-
tabBarSystemItem?:
|
|
191
|
+
tabBarSystemItem?: TabsScreenSystemItem;
|
|
192
192
|
/**
|
|
193
193
|
* Blur effect applied to the tab bar when tab screen is selected.
|
|
194
194
|
*
|
|
@@ -267,37 +267,6 @@ type BottomTabNativeOptions = {
|
|
|
267
267
|
bottomAccessory?: (options: {
|
|
268
268
|
placement: 'regular' | 'inline';
|
|
269
269
|
}) => React.ReactNode;
|
|
270
|
-
/**
|
|
271
|
-
* Configures the scroll edge effect for the _content ScrollView_ (the ScrollView that is present in first descendants chain of the Screen).
|
|
272
|
-
* Depending on values set, it will blur the scrolling content below certain UI elements (header items, search bar)
|
|
273
|
-
* for the specified edge of the ScrollView.
|
|
274
|
-
*
|
|
275
|
-
* When set in nested containers, i.e. Native Stack inside Native Bottom Tabs, or the other way around,
|
|
276
|
-
* the ScrollView will use only the innermost one's config.
|
|
277
|
-
*
|
|
278
|
-
* **Note:** Using both `headerBlurEffect` and `scrollEdgeEffects` (>= iOS 26) simultaneously may cause overlapping effects.
|
|
279
|
-
*
|
|
280
|
-
* Edge effects can be configured for each edge separately. The following values are currently supported:
|
|
281
|
-
*
|
|
282
|
-
* - `auto` - the automatic scroll edge effect style,
|
|
283
|
-
* - `hard` - a scroll edge effect with a hard cutoff and dividing line,
|
|
284
|
-
* - `soft` - a soft-edged scroll edge effect,
|
|
285
|
-
* - `hidden` - no scroll edge effect.
|
|
286
|
-
*
|
|
287
|
-
* Defaults to `automatic` for each edge.
|
|
288
|
-
*
|
|
289
|
-
* Available starting from iOS 26.
|
|
290
|
-
*
|
|
291
|
-
* Only supported with `native` implementation.
|
|
292
|
-
*
|
|
293
|
-
* @platform ios
|
|
294
|
-
*/
|
|
295
|
-
scrollEdgeEffects?: {
|
|
296
|
-
bottom?: ScrollEdgeEffect;
|
|
297
|
-
left?: ScrollEdgeEffect;
|
|
298
|
-
right?: ScrollEdgeEffect;
|
|
299
|
-
top?: ScrollEdgeEffect;
|
|
300
|
-
};
|
|
301
270
|
/**
|
|
302
271
|
* Specifies whether `contentInsetAdjustmentBehavior` of the `ScrollView`
|
|
303
272
|
* in the screen is automatically adjusted.
|
|
@@ -451,6 +420,14 @@ export type BottomTabNavigationOptions = {
|
|
|
451
420
|
*/
|
|
452
421
|
display?: 'flex' | 'none';
|
|
453
422
|
};
|
|
423
|
+
/**
|
|
424
|
+
* Whether this tab can be selected.
|
|
425
|
+
* When `false`, tapping on the tab in tab bar won't select the tab.
|
|
426
|
+
* Custom behavior can be implemented by listening to `tabPress` event.
|
|
427
|
+
*
|
|
428
|
+
* Defaults to `true`.
|
|
429
|
+
*/
|
|
430
|
+
tabBarSelectionEnabled?: boolean;
|
|
454
431
|
/**
|
|
455
432
|
* Whether this screens should render the first time it's accessed. Defaults to `true`.
|
|
456
433
|
* Set it to `false` if you want to render the screen on initial render.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,IAAI,EACJ,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EACV,uBAAuB,EACvB,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,KAAK,EACN,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,qBAAqB,EACrB,SAAS,EACT,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,6BAA6B,EAC7B,oBAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomTabBar.d.ts","sourceRoot":"","sources":["../../../../src/views/BottomTabBar.tsx"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,QAAQ,EAGR,KAAK,SAAS,EAGd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,UAAU,EAEhB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAM1E,KAAK,KAAK,GAAG,iBAAiB,GAAG;IAC/B,KAAK,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;CAC1D,CAAC;AAUF,KAAK,OAAO,GAAG;IACb,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACzC,WAAW,EAAE,sBAAsB,CAAC;CACrC,CAAC;AA+EF,eAAO,MAAM,eAAe,GAAI,oDAM7B,OAAO,GAAG;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,KAAK,EAAE,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC;CACrE,WAoBA,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"BottomTabBar.d.ts","sourceRoot":"","sources":["../../../../src/views/BottomTabBar.tsx"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,QAAQ,EAGR,KAAK,SAAS,EAGd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,UAAU,EAEhB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAM1E,KAAK,KAAK,GAAG,iBAAiB,GAAG;IAC/B,KAAK,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;CAC1D,CAAC;AAUF,KAAK,OAAO,GAAG;IACb,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACzC,WAAW,EAAE,sBAAsB,CAAC;CACrC,CAAC;AA+EF,eAAO,MAAM,eAAe,GAAI,oDAM7B,OAAO,GAAG;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,KAAK,EAAE,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC;CACrE,WAoBA,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,2CAwV5E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomTabView.d.ts","sourceRoot":"","sources":["../../../../src/views/BottomTabView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,UAAU,CAAC;AAIlB,KAAK,KAAK,GAAG,yBAAyB,GAAG;IACvC,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACzC,UAAU,EAAE,0BAA0B,CAAC;IACvC,WAAW,EAAE,sBAAsB,CAAC;CACrC,CAAC;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,2CAMzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomTabViewNativeImpl.d.ts","sourceRoot":"","sources":["../../../../src/views/BottomTabViewNativeImpl.tsx"],"names":[],"mappings":"AAMA,OAAO,EAIL,KAAK,aAAa,EAGlB,KAAK,kBAAkB,EAExB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"BottomTabViewNativeImpl.d.ts","sourceRoot":"","sources":["../../../../src/views/BottomTabViewNativeImpl.tsx"],"names":[],"mappings":"AAMA,OAAO,EAIL,KAAK,aAAa,EAGlB,KAAK,kBAAkB,EAExB,MAAM,0BAA0B,CAAC;AAsBlC,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC3B,MAAM,UAAU,CAAC;AAMlB,KAAK,KAAK,GAAG,yBAAyB,GAAG;IACvC,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACzC,UAAU,EAAE,0BAA0B,CAAC;IACvC,WAAW,EAAE,sBAAsB,CAAC;CACrC,CAAC;AAoEF,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,UAAU,EACV,WAAW,EACX,MAAM,GACP,EAAE,KAAK,2CAmiBP"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-navigation/bottom-tabs",
|
|
3
3
|
"description": "Bottom tab navigator following iOS design guidelines",
|
|
4
|
-
"version": "8.0.0-alpha.
|
|
4
|
+
"version": "8.0.0-alpha.29",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-native-component",
|
|
7
7
|
"react-component",
|
|
@@ -41,11 +41,11 @@
|
|
|
41
41
|
"clean": "del lib"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@react-navigation/elements": "^3.0.0-alpha.
|
|
44
|
+
"@react-navigation/elements": "^3.0.0-alpha.27"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@jest/globals": "^30.3.0",
|
|
48
|
-
"@react-navigation/native": "^8.0.0-alpha.
|
|
48
|
+
"@react-navigation/native": "^8.0.0-alpha.24",
|
|
49
49
|
"@testing-library/react-native": "^13.3.3",
|
|
50
50
|
"@types/react": "~19.2.2",
|
|
51
51
|
"del-cli": "^7.0.0",
|
|
@@ -53,16 +53,16 @@
|
|
|
53
53
|
"react-native": "0.83.4",
|
|
54
54
|
"react-native-builder-bob": "^0.41.0",
|
|
55
55
|
"react-native-safe-area-context": "~5.6.2",
|
|
56
|
-
"react-native-screens": "^4.
|
|
56
|
+
"react-native-screens": "^4.25.0",
|
|
57
57
|
"react-test-renderer": "19.2.0",
|
|
58
58
|
"typescript": "^6.0.2"
|
|
59
59
|
},
|
|
60
60
|
"peerDependencies": {
|
|
61
|
-
"@react-navigation/native": "^8.0.0-alpha.
|
|
61
|
+
"@react-navigation/native": "^8.0.0-alpha.24",
|
|
62
62
|
"react": ">= 19.2.0",
|
|
63
63
|
"react-native": "*",
|
|
64
64
|
"react-native-safe-area-context": ">= 5.5.0",
|
|
65
|
-
"react-native-screens": ">= 4.
|
|
65
|
+
"react-native-screens": ">= 4.25.0"
|
|
66
66
|
},
|
|
67
67
|
"react-native-builder-bob": {
|
|
68
68
|
"source": "src",
|
|
@@ -82,5 +82,5 @@
|
|
|
82
82
|
]
|
|
83
83
|
]
|
|
84
84
|
},
|
|
85
|
-
"gitHead": "
|
|
85
|
+
"gitHead": "1b05e3c8a213b37fbc79515e23bed3ce9cd65044"
|
|
86
86
|
}
|
package/src/index.tsx
CHANGED
|
@@ -15,7 +15,7 @@ import type {
|
|
|
15
15
|
BottomTabNavigationOptions,
|
|
16
16
|
BottomTabNavigatorProps,
|
|
17
17
|
} from '../types';
|
|
18
|
-
import { BottomTabView } from '../views/
|
|
18
|
+
import { BottomTabView } from '../views/BottomTabView';
|
|
19
19
|
|
|
20
20
|
function BottomTabNavigator({
|
|
21
21
|
initialRouteName,
|
package/src/types.tsx
CHANGED
|
@@ -28,7 +28,7 @@ import type {
|
|
|
28
28
|
import type {
|
|
29
29
|
TabBarItemLabelVisibilityMode,
|
|
30
30
|
TabsScreenBlurEffect,
|
|
31
|
-
|
|
31
|
+
TabsScreenSystemItem,
|
|
32
32
|
} from 'react-native-screens';
|
|
33
33
|
|
|
34
34
|
export type Variant = 'uikit' | 'material';
|
|
@@ -38,6 +38,7 @@ export type BottomTabNavigationEventMap = {
|
|
|
38
38
|
* Event which fires on tapping on the tab in the tab bar.
|
|
39
39
|
*
|
|
40
40
|
* Preventing default is only supported with `custom` implementation.
|
|
41
|
+
* Use `tabBarSelectionEnabled: false` option with `native` implementation.
|
|
41
42
|
*/
|
|
42
43
|
tabPress: { data: undefined; canPreventDefault: true };
|
|
43
44
|
/**
|
|
@@ -249,8 +250,6 @@ type BottomTabCustomOptions = {
|
|
|
249
250
|
tabBarButton?: (props: BottomTabBarButtonProps) => React.ReactNode;
|
|
250
251
|
};
|
|
251
252
|
|
|
252
|
-
type ScrollEdgeEffect = 'auto' | 'hard' | 'soft' | 'hidden';
|
|
253
|
-
|
|
254
253
|
type BottomTabNativeOptions = {
|
|
255
254
|
/**
|
|
256
255
|
* Uses iOS built-in tab bar items with standard iOS styling and localized titles.
|
|
@@ -262,7 +261,7 @@ type BottomTabNativeOptions = {
|
|
|
262
261
|
*
|
|
263
262
|
* @platform ios
|
|
264
263
|
*/
|
|
265
|
-
tabBarSystemItem?:
|
|
264
|
+
tabBarSystemItem?: TabsScreenSystemItem;
|
|
266
265
|
|
|
267
266
|
/**
|
|
268
267
|
* Blur effect applied to the tab bar when tab screen is selected.
|
|
@@ -347,38 +346,6 @@ type BottomTabNativeOptions = {
|
|
|
347
346
|
placement: 'regular' | 'inline';
|
|
348
347
|
}) => React.ReactNode;
|
|
349
348
|
|
|
350
|
-
/**
|
|
351
|
-
* Configures the scroll edge effect for the _content ScrollView_ (the ScrollView that is present in first descendants chain of the Screen).
|
|
352
|
-
* Depending on values set, it will blur the scrolling content below certain UI elements (header items, search bar)
|
|
353
|
-
* for the specified edge of the ScrollView.
|
|
354
|
-
*
|
|
355
|
-
* When set in nested containers, i.e. Native Stack inside Native Bottom Tabs, or the other way around,
|
|
356
|
-
* the ScrollView will use only the innermost one's config.
|
|
357
|
-
*
|
|
358
|
-
* **Note:** Using both `headerBlurEffect` and `scrollEdgeEffects` (>= iOS 26) simultaneously may cause overlapping effects.
|
|
359
|
-
*
|
|
360
|
-
* Edge effects can be configured for each edge separately. The following values are currently supported:
|
|
361
|
-
*
|
|
362
|
-
* - `auto` - the automatic scroll edge effect style,
|
|
363
|
-
* - `hard` - a scroll edge effect with a hard cutoff and dividing line,
|
|
364
|
-
* - `soft` - a soft-edged scroll edge effect,
|
|
365
|
-
* - `hidden` - no scroll edge effect.
|
|
366
|
-
*
|
|
367
|
-
* Defaults to `automatic` for each edge.
|
|
368
|
-
*
|
|
369
|
-
* Available starting from iOS 26.
|
|
370
|
-
*
|
|
371
|
-
* Only supported with `native` implementation.
|
|
372
|
-
*
|
|
373
|
-
* @platform ios
|
|
374
|
-
*/
|
|
375
|
-
scrollEdgeEffects?: {
|
|
376
|
-
bottom?: ScrollEdgeEffect;
|
|
377
|
-
left?: ScrollEdgeEffect;
|
|
378
|
-
right?: ScrollEdgeEffect;
|
|
379
|
-
top?: ScrollEdgeEffect;
|
|
380
|
-
};
|
|
381
|
-
|
|
382
349
|
/**
|
|
383
350
|
* Specifies whether `contentInsetAdjustmentBehavior` of the `ScrollView`
|
|
384
351
|
* in the screen is automatically adjusted.
|
|
@@ -552,6 +519,15 @@ export type BottomTabNavigationOptions = {
|
|
|
552
519
|
display?: 'flex' | 'none';
|
|
553
520
|
};
|
|
554
521
|
|
|
522
|
+
/**
|
|
523
|
+
* Whether this tab can be selected.
|
|
524
|
+
* When `false`, tapping on the tab in tab bar won't select the tab.
|
|
525
|
+
* Custom behavior can be implemented by listening to `tabPress` event.
|
|
526
|
+
*
|
|
527
|
+
* Defaults to `true`.
|
|
528
|
+
*/
|
|
529
|
+
tabBarSelectionEnabled?: boolean;
|
|
530
|
+
|
|
555
531
|
/**
|
|
556
532
|
* Whether this screens should render the first time it's accessed. Defaults to `true`.
|
|
557
533
|
* Set it to `false` if you want to render the screen on initial render.
|
|
@@ -415,7 +415,11 @@ export function BottomTabBar({ state, navigation, descriptors, style }: Props) {
|
|
|
415
415
|
canPreventDefault: true,
|
|
416
416
|
});
|
|
417
417
|
|
|
418
|
-
if (
|
|
418
|
+
if (
|
|
419
|
+
!focused &&
|
|
420
|
+
!event.defaultPrevented &&
|
|
421
|
+
options.tabBarSelectionEnabled !== false
|
|
422
|
+
) {
|
|
419
423
|
navigation.dispatch({
|
|
420
424
|
...CommonActions.navigate(route),
|
|
421
425
|
target: state.key,
|