@react-navigation/bottom-tabs 8.0.0-alpha.0 → 8.0.0-alpha.2
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/views/BottomTabViewNativeImpl.js +72 -19
- package/lib/module/views/BottomTabViewNativeImpl.js.map +1 -1
- package/lib/module/views/TabBarIcon.js +38 -10
- package/lib/module/views/TabBarIcon.js.map +1 -1
- package/lib/typescript/src/types.d.ts +31 -9
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/views/BottomTabViewNativeImpl.d.ts.map +1 -1
- package/lib/typescript/src/views/TabBarIcon.d.ts +1 -1
- package/lib/typescript/src/views/TabBarIcon.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/types.tsx +34 -12
- package/src/views/BottomTabViewNativeImpl.tsx +102 -32
- package/src/views/TabBarIcon.tsx +35 -16
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import { getLabel } from '@react-navigation/elements';
|
|
4
4
|
import { Color, Lazy, SafeAreaProviderCompat } from '@react-navigation/elements/internal';
|
|
5
|
-
import { CommonActions, StackActions, useTheme } from '@react-navigation/native';
|
|
5
|
+
import { CommonActions, MaterialSymbol, NavigationMetaContext, StackActions, useTheme } from '@react-navigation/native';
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import { Animated, Platform, PlatformColor } from 'react-native';
|
|
8
|
-
import {
|
|
8
|
+
import { Tabs } from 'react-native-screens';
|
|
9
9
|
import { BottomTabAnimationContext } from "../utils/BottomTabAnimationContext.js";
|
|
10
10
|
import { BottomTabBarHeightContext } from "../utils/BottomTabBarHeightContext.js";
|
|
11
11
|
import { useTabBarPosition } from "../utils/useTabBarPosition.js";
|
|
@@ -15,6 +15,9 @@ const ICON_SIZE = Platform.select({
|
|
|
15
15
|
ios: 25,
|
|
16
16
|
default: 24
|
|
17
17
|
});
|
|
18
|
+
const meta = {
|
|
19
|
+
type: 'native-tabs'
|
|
20
|
+
};
|
|
18
21
|
export function BottomTabViewNative({
|
|
19
22
|
state,
|
|
20
23
|
navigation,
|
|
@@ -84,19 +87,21 @@ export function BottomTabViewNative({
|
|
|
84
87
|
descriptors,
|
|
85
88
|
navigation
|
|
86
89
|
}) : null;
|
|
90
|
+
const tabBarControllerMode = currentOptions.tabBarControllerMode === 'auto' ? 'automatic' : currentOptions.tabBarControllerMode;
|
|
91
|
+
const tabBarMinimizeBehavior = currentOptions.tabBarMinimizeBehavior === 'auto' ? 'automatic' : currentOptions.tabBarMinimizeBehavior === 'none' ? 'never' : currentOptions.tabBarMinimizeBehavior;
|
|
87
92
|
const bottomAccessory = currentOptions.bottomAccessory;
|
|
88
93
|
return /*#__PURE__*/_jsxs(SafeAreaProviderCompat, {
|
|
89
94
|
style: {
|
|
90
95
|
flexDirection: tabBarPosition === 'left' || tabBarPosition === 'right' ? 'row' : 'column'
|
|
91
96
|
},
|
|
92
|
-
children: [tabBarPosition === 'top' || tabBarPosition === 'left' ? tabBarElement : null, /*#__PURE__*/_jsx(
|
|
97
|
+
children: [tabBarPosition === 'top' || tabBarPosition === 'left' ? tabBarElement : null, /*#__PURE__*/_jsx(Tabs.Host, {
|
|
93
98
|
tabBarHidden: hasCustomTabBar,
|
|
94
99
|
bottomAccessory: bottomAccessory ? environment => bottomAccessory({
|
|
95
100
|
placement: environment
|
|
96
101
|
}) : undefined,
|
|
97
102
|
tabBarItemLabelVisibilityMode: currentOptions?.tabBarLabelVisibilityMode,
|
|
98
|
-
tabBarControllerMode:
|
|
99
|
-
tabBarMinimizeBehavior:
|
|
103
|
+
tabBarControllerMode: tabBarControllerMode,
|
|
104
|
+
tabBarMinimizeBehavior: tabBarMinimizeBehavior,
|
|
100
105
|
tabBarTintColor: activeTintColor,
|
|
101
106
|
tabBarItemIconColor: inactiveTintColor,
|
|
102
107
|
tabBarItemIconColorActive: activeTintColor,
|
|
@@ -193,7 +198,7 @@ export function BottomTabViewNative({
|
|
|
193
198
|
};
|
|
194
199
|
const icon = getIcon(false);
|
|
195
200
|
const selectedIcon = getIcon(true);
|
|
196
|
-
return /*#__PURE__*/_jsx(
|
|
201
|
+
return /*#__PURE__*/_jsx(Tabs.Screen, {
|
|
197
202
|
onWillAppear: () => onTransitionStart({
|
|
198
203
|
route
|
|
199
204
|
}),
|
|
@@ -209,7 +214,12 @@ export function BottomTabViewNative({
|
|
|
209
214
|
systemItem: tabBarSystemItem,
|
|
210
215
|
isFocused: isFocused,
|
|
211
216
|
title: tabTitle,
|
|
212
|
-
scrollEdgeEffects:
|
|
217
|
+
scrollEdgeEffects: {
|
|
218
|
+
top: scrollEdgeEffects?.top === 'auto' ? 'automatic' : scrollEdgeEffects?.top,
|
|
219
|
+
bottom: scrollEdgeEffects?.bottom === 'auto' ? 'automatic' : scrollEdgeEffects?.bottom,
|
|
220
|
+
left: scrollEdgeEffects?.left === 'auto' ? 'automatic' : scrollEdgeEffects?.left,
|
|
221
|
+
right: scrollEdgeEffects?.right === 'auto' ? 'automatic' : scrollEdgeEffects?.right
|
|
222
|
+
}
|
|
213
223
|
// FIXME: if this is not provided, ScrollView on lazy tabs glitches on iOS 18
|
|
214
224
|
// For now we provide an empty object before adding proper support
|
|
215
225
|
,
|
|
@@ -228,6 +238,12 @@ export function BottomTabViewNative({
|
|
|
228
238
|
normal: tabItemAppearance
|
|
229
239
|
}
|
|
230
240
|
},
|
|
241
|
+
specialEffects: {
|
|
242
|
+
repeatedTabSelection: {
|
|
243
|
+
popToRoot: true,
|
|
244
|
+
scrollToTop: true
|
|
245
|
+
}
|
|
246
|
+
},
|
|
231
247
|
experimental_userInterfaceStyle: dark ? 'dark' : 'light',
|
|
232
248
|
children: /*#__PURE__*/_jsx(Lazy, {
|
|
233
249
|
enabled: lazy,
|
|
@@ -242,7 +258,10 @@ export function BottomTabViewNative({
|
|
|
242
258
|
isFocused: isFocused,
|
|
243
259
|
children: /*#__PURE__*/_jsx(BottomTabBarHeightContext.Provider, {
|
|
244
260
|
value: 0,
|
|
245
|
-
children:
|
|
261
|
+
children: /*#__PURE__*/_jsx(NavigationMetaContext.Provider, {
|
|
262
|
+
value: meta,
|
|
263
|
+
children: render()
|
|
264
|
+
})
|
|
246
265
|
})
|
|
247
266
|
})
|
|
248
267
|
})
|
|
@@ -278,16 +297,50 @@ function AnimatedScreenContent({
|
|
|
278
297
|
});
|
|
279
298
|
}
|
|
280
299
|
function getPlatformIcon(icon) {
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
300
|
+
switch (icon.type) {
|
|
301
|
+
case 'sfSymbol':
|
|
302
|
+
return {
|
|
303
|
+
ios: icon,
|
|
304
|
+
android: undefined,
|
|
305
|
+
shared: undefined
|
|
306
|
+
};
|
|
307
|
+
case 'materialSymbol':
|
|
308
|
+
return {
|
|
309
|
+
ios: undefined,
|
|
310
|
+
android: {
|
|
311
|
+
type: 'imageSource',
|
|
312
|
+
imageSource: MaterialSymbol.getImageSource({
|
|
313
|
+
name: icon.name
|
|
314
|
+
})
|
|
315
|
+
},
|
|
316
|
+
shared: undefined
|
|
317
|
+
};
|
|
318
|
+
case 'image':
|
|
319
|
+
return {
|
|
320
|
+
ios: icon.tinted === false ? {
|
|
321
|
+
type: 'imageSource',
|
|
322
|
+
imageSource: icon.source
|
|
323
|
+
} : {
|
|
324
|
+
type: 'templateSource',
|
|
325
|
+
templateSource: icon.source
|
|
326
|
+
},
|
|
327
|
+
android: undefined,
|
|
328
|
+
shared: {
|
|
329
|
+
type: 'imageSource',
|
|
330
|
+
imageSource: icon.source
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
case 'drawableResource':
|
|
334
|
+
return {
|
|
335
|
+
ios: undefined,
|
|
336
|
+
android: icon,
|
|
337
|
+
shared: undefined
|
|
338
|
+
};
|
|
339
|
+
default:
|
|
340
|
+
{
|
|
341
|
+
const _exhaustiveCheck = icon;
|
|
342
|
+
return _exhaustiveCheck;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
292
345
|
}
|
|
293
346
|
//# sourceMappingURL=BottomTabViewNativeImpl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getLabel","Color","Lazy","SafeAreaProviderCompat","CommonActions","StackActions","useTheme","React","Animated","Platform","PlatformColor","BottomTabs","BottomTabsScreen","BottomTabAnimationContext","BottomTabBarHeightContext","useTabBarPosition","ScreenContent","jsx","_jsx","jsxs","_jsxs","ICON_SIZE","select","ios","default","BottomTabViewNative","state","navigation","descriptors","tabBar","dark","colors","fonts","focusedRouteKey","routes","index","key","previousRouteKeyRef","useRef","useEffect","previousRouteKey","current","options","popToTopOnBlur","prevRoute","find","route","type","popToTopAction","popToTop","target","dispatch","currentOptions","fontFamily","medium","regular","fontWeight","fontSize","fontStyle","tabBarLabelStyle","activeTintColor","tabBarActiveTintColor","primary","inactiveTintColor","tabBarInactiveTintColor","text","activeIndicatorColor","tabBarActiveIndicatorColor","alpha","string","onTransitionStart","emit","onTransitionEnd","tabBarPosition","hasCustomTabBar","tabBarElement","bottomAccessory","style","flexDirection","children","tabBarHidden","environment","placement","undefined","tabBarItemLabelVisibilityMode","tabBarLabelVisibilityMode","tabBarControllerMode","tabBarMinimizeBehavior","tabBarTintColor","tabBarItemIconColor","tabBarItemIconColorActive","tabBarItemTitleFontColor","tabBarItemTitleFontColorActive","tabBarItemTitleFontFamily","tabBarItemTitleFontWeight","tabBarItemTitleFontSize","tabBarItemTitleFontSizeActive","tabBarItemTitleFontStyle","tabBarBackgroundColor","tabBarStyle","backgroundColor","card","tabBarItemActiveIndicatorColor","tabBarItemActiveIndicatorEnabled","tabBarActiveIndicatorEnabled","tabBarItemRippleColor","tabBarRippleColor","experimentalControlNavigationStateInJS","onNativeFocusChange","e","nativeEvent","tabKey","event","canPreventDefault","defaultPrevented","Error","isFocused","findIndex","r","navigate","name","params","map","render","isPreloaded","preloadedRouteKeys","includes","title","lazy","tabBarLabel","tabBarBadgeStyle","tabBarIcon","tabBarBadge","tabBarSystemItem","tabBarBlurEffect","sceneStyle","scrollEdgeEffects","shadowColor","tabBarShadowColor","tabTitle","OS","label","tabItemAppearance","badgeBackgroundColor","notification","badgeTextColor","color","isLight","getIcon","selected","result","focused","size","isValidElement","getPlatformIcon","icon","selectedIcon","onWillAppear","onDidAppear","shared","tabBarItemBadgeBackgroundColor","tabBarItemBadgeTextColor","badgeValue","toString","systemItem","scrollEdgeAppearance","standardAppearance","stacked","normal","inline","compactInline","experimental_userInterfaceStyle","enabled","visible","AnimatedScreenContent","Provider","value","progress","useState","Value","useLayoutEffect","setValue","interpolationProps","useMemo","tinted","templateSource","source","android","imageSource"],"sourceRoot":"../../../src","sources":["views/BottomTabViewNativeImpl.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["getLabel","Color","Lazy","SafeAreaProviderCompat","CommonActions","MaterialSymbol","NavigationMetaContext","StackActions","useTheme","React","Animated","Platform","PlatformColor","Tabs","BottomTabAnimationContext","BottomTabBarHeightContext","useTabBarPosition","ScreenContent","jsx","_jsx","jsxs","_jsxs","ICON_SIZE","select","ios","default","meta","type","BottomTabViewNative","state","navigation","descriptors","tabBar","dark","colors","fonts","focusedRouteKey","routes","index","key","previousRouteKeyRef","useRef","useEffect","previousRouteKey","current","options","popToTopOnBlur","prevRoute","find","route","popToTopAction","popToTop","target","dispatch","currentOptions","fontFamily","medium","regular","fontWeight","fontSize","fontStyle","tabBarLabelStyle","activeTintColor","tabBarActiveTintColor","primary","inactiveTintColor","tabBarInactiveTintColor","text","activeIndicatorColor","tabBarActiveIndicatorColor","alpha","string","onTransitionStart","emit","onTransitionEnd","tabBarPosition","hasCustomTabBar","tabBarElement","tabBarControllerMode","tabBarMinimizeBehavior","bottomAccessory","style","flexDirection","children","Host","tabBarHidden","environment","placement","undefined","tabBarItemLabelVisibilityMode","tabBarLabelVisibilityMode","tabBarTintColor","tabBarItemIconColor","tabBarItemIconColorActive","tabBarItemTitleFontColor","tabBarItemTitleFontColorActive","tabBarItemTitleFontFamily","tabBarItemTitleFontWeight","tabBarItemTitleFontSize","tabBarItemTitleFontSizeActive","tabBarItemTitleFontStyle","tabBarBackgroundColor","tabBarStyle","backgroundColor","card","tabBarItemActiveIndicatorColor","tabBarItemActiveIndicatorEnabled","tabBarActiveIndicatorEnabled","tabBarItemRippleColor","tabBarRippleColor","experimentalControlNavigationStateInJS","onNativeFocusChange","e","nativeEvent","tabKey","event","canPreventDefault","defaultPrevented","Error","isFocused","findIndex","r","navigate","name","params","map","render","isPreloaded","preloadedRouteKeys","includes","title","lazy","tabBarLabel","tabBarBadgeStyle","tabBarIcon","tabBarBadge","tabBarSystemItem","tabBarBlurEffect","sceneStyle","scrollEdgeEffects","shadowColor","tabBarShadowColor","tabTitle","OS","label","tabItemAppearance","badgeBackgroundColor","notification","badgeTextColor","color","isLight","getIcon","selected","result","focused","size","isValidElement","getPlatformIcon","icon","selectedIcon","Screen","onWillAppear","onDidAppear","shared","tabBarItemBadgeBackgroundColor","tabBarItemBadgeTextColor","badgeValue","toString","systemItem","top","bottom","left","right","scrollEdgeAppearance","standardAppearance","stacked","normal","inline","compactInline","specialEffects","repeatedTabSelection","popToRoot","scrollToTop","experimental_userInterfaceStyle","enabled","visible","AnimatedScreenContent","Provider","value","progress","useState","Value","useLayoutEffect","setValue","interpolationProps","useMemo","android","imageSource","getImageSource","tinted","source","templateSource","_exhaustiveCheck"],"sourceRoot":"../../../src","sources":["views/BottomTabViewNativeImpl.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { Badge } from '@react-navigation/elements';
|
|
4
4
|
import { MissingIcon } from '@react-navigation/elements/internal';
|
|
5
|
+
import { MaterialSymbol, SFSymbol } from '@react-navigation/native';
|
|
5
6
|
import React from 'react';
|
|
6
7
|
import { Image, StyleSheet, View } from 'react-native';
|
|
7
8
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -82,17 +83,44 @@ function renderIcon({
|
|
|
82
83
|
return iconValue;
|
|
83
84
|
}
|
|
84
85
|
if (typeof iconValue === 'object' && iconValue != null && 'type' in iconValue) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
86
|
+
switch (iconValue.type) {
|
|
87
|
+
case 'image':
|
|
88
|
+
return /*#__PURE__*/_jsx(Image, {
|
|
89
|
+
source: iconValue.source,
|
|
90
|
+
style: {
|
|
91
|
+
width: size,
|
|
92
|
+
height: size,
|
|
93
|
+
tintColor: iconValue.tinted === false ? undefined : color
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
case 'drawableResource':
|
|
97
|
+
return /*#__PURE__*/_jsx(Image, {
|
|
98
|
+
source: {
|
|
99
|
+
uri: iconValue.name
|
|
100
|
+
},
|
|
101
|
+
style: {
|
|
102
|
+
width: size,
|
|
103
|
+
height: size,
|
|
104
|
+
tintColor: iconValue.tinted === false ? undefined : color
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
case 'sfSymbol':
|
|
108
|
+
return /*#__PURE__*/_jsx(SFSymbol, {
|
|
109
|
+
name: iconValue.name,
|
|
110
|
+
size: size,
|
|
111
|
+
color: color
|
|
112
|
+
});
|
|
113
|
+
case 'materialSymbol':
|
|
114
|
+
return /*#__PURE__*/_jsx(MaterialSymbol, {
|
|
115
|
+
name: iconValue.name,
|
|
116
|
+
size: size,
|
|
117
|
+
color: color
|
|
118
|
+
});
|
|
119
|
+
default:
|
|
120
|
+
{
|
|
121
|
+
const _exhaustiveCheck = iconValue;
|
|
122
|
+
return _exhaustiveCheck;
|
|
92
123
|
}
|
|
93
|
-
});
|
|
94
|
-
} else {
|
|
95
|
-
throw new Error(`Icon type '${iconValue.type}' is only supported with native tab bar.`);
|
|
96
124
|
}
|
|
97
125
|
}
|
|
98
126
|
return /*#__PURE__*/_jsx(MissingIcon, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Badge","MissingIcon","React","Image","StyleSheet","View","jsx","_jsx","jsxs","_jsxs","ICON_SIZE_WIDE","ICON_SIZE_WIDE_COMPACT","ICON_SIZE_TALL","ICON_SIZE_TALL_COMPACT","ICON_SIZE_ROUND","ICON_SIZE_ROUND_COMPACT","ICON_SIZE_MATERIAL","TabBarIcon","route","_","variant","size","badge","badgeStyle","activeOpacity","inactiveOpacity","activeTintColor","inactiveTintColor","icon","allowFontScaling","style","iconSize","styles","wrapperMaterial","wrapperUikitCompact","wrapperUikit","children","opacity","minWidth","renderIcon","focused","color","visible","iconValue","isValidElement","type","source","width","height","tintColor","tinted","undefined","
|
|
1
|
+
{"version":3,"names":["Badge","MissingIcon","MaterialSymbol","SFSymbol","React","Image","StyleSheet","View","jsx","_jsx","jsxs","_jsxs","ICON_SIZE_WIDE","ICON_SIZE_WIDE_COMPACT","ICON_SIZE_TALL","ICON_SIZE_TALL_COMPACT","ICON_SIZE_ROUND","ICON_SIZE_ROUND_COMPACT","ICON_SIZE_MATERIAL","TabBarIcon","route","_","variant","size","badge","badgeStyle","activeOpacity","inactiveOpacity","activeTintColor","inactiveTintColor","icon","allowFontScaling","style","iconSize","styles","wrapperMaterial","wrapperUikitCompact","wrapperUikit","children","opacity","minWidth","renderIcon","focused","color","visible","iconValue","isValidElement","type","source","width","height","tintColor","tinted","undefined","uri","name","_exhaustiveCheck","create","position","alignSelf","alignItems","justifyContent","end","top"],"sourceRoot":"../../../src","sources":["views/TabBarIcon.tsx"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,4BAA4B;AAClD,SAASC,WAAW,QAAQ,qCAAqC;AACjE,SAASC,cAAc,EAAcC,QAAQ,QAAQ,0BAA0B;AAC/E,OAAOC,KAAK,MAAM,OAAO;AACzB,SAEEC,KAAK,EAELC,UAAU,EAEVC,IAAI,QAEC,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAyBtB;AACA;AACA;AACA;AACA,MAAMC,cAAc,GAAG,EAAE;AACzB,MAAMC,sBAAsB,GAAG,EAAE;AACjC,MAAMC,cAAc,GAAG,EAAE;AACzB,MAAMC,sBAAsB,GAAG,EAAE;AACjC,MAAMC,eAAe,GAAG,EAAE;AAC1B,MAAMC,uBAAuB,GAAG,EAAE;AAClC,MAAMC,kBAAkB,GAAG,EAAE;AAE7B,OAAO,SAASC,UAAUA,CAAC;EACzBC,KAAK,EAAEC,CAAC;EACRC,OAAO;EACPC,IAAI;EACJC,KAAK;EACLC,UAAU;EACVC,aAAa;EACbC,eAAe;EACfC,eAAe;EACfC,iBAAiB;EACjBC,IAAI;EACJC,gBAAgB;EAChBC;AACe,CAAC,EAAE;EAClB,MAAMC,QAAQ,GACZX,OAAO,KAAK,UAAU,GAClBJ,kBAAkB,GAClBK,IAAI,KAAK,SAAS,GAChBN,uBAAuB,GACvBD,eAAe;;EAEvB;EACA;EACA,oBACEL,KAAA,CAACJ,IAAI;IACHyB,KAAK,EAAE,CACLV,OAAO,KAAK,UAAU,GAClBY,MAAM,CAACC,eAAe,GACtBZ,IAAI,KAAK,SAAS,GAChBW,MAAM,CAACE,mBAAmB,GAC1BF,MAAM,CAACG,YAAY,EACzBL,KAAK,CACL;IAAAM,QAAA,gBAEF7B,IAAA,CAACF,IAAI;MACHyB,KAAK,EAAE,CACLE,MAAM,CAACJ,IAAI,EACX;QACES,OAAO,EAAEb,aAAa;QACtB;QACAc,QAAQ,EAAEP;MACZ,CAAC,CACD;MAAAK,QAAA,EAEDG,UAAU,CAAC;QACVC,OAAO,EAAE,IAAI;QACbnB,IAAI,EAAEU,QAAQ;QACdU,KAAK,EAAEf,eAAe;QACtBE;MACF,CAAC;IAAC,CACE,CAAC,eACPrB,IAAA,CAACF,IAAI;MAACyB,KAAK,EAAE,CAACE,MAAM,CAACJ,IAAI,EAAE;QAAES,OAAO,EAAEZ;MAAgB,CAAC,CAAE;MAAAW,QAAA,EACtDG,UAAU,CAAC;QACVC,OAAO,EAAE,KAAK;QACdnB,IAAI,EAAEU,QAAQ;QACdU,KAAK,EAAEd,iBAAiB;QACxBC;MACF,CAAC;IAAC,CACE,CAAC,eACPrB,IAAA,CAACT,KAAK;MACJ4C,OAAO,EAAEpB,KAAK,IAAI,IAAK;MACvBD,IAAI,EAAEU,QAAQ,GAAG,IAAK;MACtBF,gBAAgB,EAAEA,gBAAiB;MACnCC,KAAK,EAAE,CAACE,MAAM,CAACV,KAAK,EAAEC,UAAU,CAAE;MAAAa,QAAA,EAEjCd;IAAK,CACD,CAAC;EAAA,CACJ,CAAC;AAEX;AAEA,SAASiB,UAAUA,CAAC;EAClBC,OAAO;EACPnB,IAAI;EACJoB,KAAK;EACLb;AAMF,CAAC,EAAE;EACD,MAAMe,SAAS,GACb,OAAOf,IAAI,KAAK,UAAU,GAAGA,IAAI,CAAC;IAAEY,OAAO;IAAEnB,IAAI;IAAEoB;EAAM,CAAC,CAAC,GAAGb,IAAI;EAEpE,iBAAI1B,KAAK,CAAC0C,cAAc,CAACD,SAAS,CAAC,EAAE;IACnC,OAAOA,SAAS;EAClB;EAEA,IACE,OAAOA,SAAS,KAAK,QAAQ,IAC7BA,SAAS,IAAI,IAAI,IACjB,MAAM,IAAIA,SAAS,EACnB;IACA,QAAQA,SAAS,CAACE,IAAI;MACpB,KAAK,OAAO;QACV,oBACEtC,IAAA,CAACJ,KAAK;UACJ2C,MAAM,EAAEH,SAAS,CAACG,MAAO;UACzBhB,KAAK,EAAE;YACLiB,KAAK,EAAE1B,IAAI;YACX2B,MAAM,EAAE3B,IAAI;YACZ4B,SAAS,EAAEN,SAAS,CAACO,MAAM,KAAK,KAAK,GAAGC,SAAS,GAAGV;UACtD;QAAE,CACH,CAAC;MAEN,KAAK,kBAAkB;QACrB,oBACElC,IAAA,CAACJ,KAAK;UACJ2C,MAAM,EAAE;YAAEM,GAAG,EAAET,SAAS,CAACU;UAAK,CAAE;UAChCvB,KAAK,EAAE;YACLiB,KAAK,EAAE1B,IAAI;YACX2B,MAAM,EAAE3B,IAAI;YACZ4B,SAAS,EAAEN,SAAS,CAACO,MAAM,KAAK,KAAK,GAAGC,SAAS,GAAGV;UACtD;QAAE,CACH,CAAC;MAEN,KAAK,UAAU;QACb,oBAAOlC,IAAA,CAACN,QAAQ;UAACoD,IAAI,EAAEV,SAAS,CAACU,IAAK;UAAChC,IAAI,EAAEA,IAAK;UAACoB,KAAK,EAAEA;QAAM,CAAE,CAAC;MACrE,KAAK,gBAAgB;QACnB,oBACElC,IAAA,CAACP,cAAc;UAACqD,IAAI,EAAEV,SAAS,CAACU,IAAK;UAAChC,IAAI,EAAEA,IAAK;UAACoB,KAAK,EAAEA;QAAM,CAAE,CAAC;MAEtE;QAAS;UACP,MAAMa,gBAAuB,GAAGX,SAAS;UAEzC,OAAOW,gBAAgB;QACzB;IACF;EACF;EAEA,oBAAO/C,IAAA,CAACR,WAAW;IAAC0C,KAAK,EAAEA,KAAM;IAACpB,IAAI,EAAEA;EAAK,CAAE,CAAC;AAClD;AAEA,MAAMW,MAAM,GAAG5B,UAAU,CAACmD,MAAM,CAAC;EAC/B3B,IAAI,EAAE;IACJ;IACA;IACA;IACA4B,QAAQ,EAAE,UAAU;IACpBC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBX,MAAM,EAAE,MAAM;IACdD,KAAK,EAAE;EACT,CAAC;EACDZ,YAAY,EAAE;IACZY,KAAK,EAAErC,cAAc;IACrBsC,MAAM,EAAEpC;EACV,CAAC;EACDsB,mBAAmB,EAAE;IACnBa,KAAK,EAAEpC,sBAAsB;IAC7BqC,MAAM,EAAEnC;EACV,CAAC;EACDoB,eAAe,EAAE;IACfc,KAAK,EAAE/B,kBAAkB;IACzBgC,MAAM,EAAEhC;EACV,CAAC;EACDM,KAAK,EAAE;IACLkC,QAAQ,EAAE,UAAU;IACpBI,GAAG,EAAE,CAAC,CAAC;IACPC,GAAG,EAAE,CAAC;EACR;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { HeaderOptions, PlatformPressable } from '@react-navigation/elements';
|
|
2
|
-
import type { DefaultNavigatorOptions, Descriptor, NavigationHelpers, NavigationProp, ParamListBase, RouteProp, TabActionHelpers, TabNavigationState, TabRouterOptions, Theme } from '@react-navigation/native';
|
|
2
|
+
import type { DefaultNavigatorOptions, Descriptor, MaterialSymbolProps, NavigationHelpers, NavigationProp, ParamListBase, RouteProp, TabActionHelpers, TabNavigationState, TabRouterOptions, Theme } from '@react-navigation/native';
|
|
3
3
|
import type * as React from 'react';
|
|
4
4
|
import type { Animated, ColorValue, GestureResponderEvent, ImageSourcePropType, StyleProp, TextStyle, ViewStyle } from 'react-native';
|
|
5
|
-
import type {
|
|
5
|
+
import type { TabBarItemLabelVisibilityMode, TabsScreenBlurEffect, TabsSystemItem } from 'react-native-screens';
|
|
6
6
|
import type { SFSymbol } from 'sf-symbols-typescript';
|
|
7
7
|
export type Variant = 'uikit' | 'material';
|
|
8
8
|
export type BottomTabNavigationEventMap = {
|
|
@@ -86,6 +86,18 @@ type IconIOSSfSymbol = {
|
|
|
86
86
|
*/
|
|
87
87
|
name: SFSymbol;
|
|
88
88
|
};
|
|
89
|
+
type IconMaterialSymbol = {
|
|
90
|
+
/**
|
|
91
|
+
* - `materialSymbol` - Use a Material Symbol as the icon on Android.
|
|
92
|
+
*/
|
|
93
|
+
type: 'materialSymbol';
|
|
94
|
+
/**
|
|
95
|
+
* Name of the Material Symbol to use as the icon.
|
|
96
|
+
*
|
|
97
|
+
* @platform android
|
|
98
|
+
*/
|
|
99
|
+
name: MaterialSymbolProps['name'];
|
|
100
|
+
};
|
|
89
101
|
type IconAndroidDrawable = {
|
|
90
102
|
/**
|
|
91
103
|
* - `drawableResource` - Use a drawable resource as the icon on Android.
|
|
@@ -97,9 +109,18 @@ type IconAndroidDrawable = {
|
|
|
97
109
|
* @platform android
|
|
98
110
|
*/
|
|
99
111
|
name: string;
|
|
112
|
+
/**
|
|
113
|
+
* Whether to apply tint color to the icon.
|
|
114
|
+
* Only supported with custom implementation.
|
|
115
|
+
*
|
|
116
|
+
* Defaults to `true`.
|
|
117
|
+
*
|
|
118
|
+
* @platform android
|
|
119
|
+
*/
|
|
120
|
+
tinted?: boolean;
|
|
100
121
|
};
|
|
101
122
|
type IconIOS = IconIOSSfSymbol | IconImage;
|
|
102
|
-
type IconAndroid = IconAndroidDrawable | IconImage;
|
|
123
|
+
type IconAndroid = IconMaterialSymbol | IconAndroidDrawable | IconImage;
|
|
103
124
|
export type BottomTabIcon = IconIOS | IconAndroid;
|
|
104
125
|
type BottomTabCustomOptions = {
|
|
105
126
|
/**
|
|
@@ -234,6 +255,7 @@ type BottomTabCustomOptions = {
|
|
|
234
255
|
*/
|
|
235
256
|
tabBarButton?: (props: BottomTabBarButtonProps) => React.ReactNode;
|
|
236
257
|
};
|
|
258
|
+
type ScrollEdgeEffect = 'auto' | 'hard' | 'soft' | 'hidden';
|
|
237
259
|
type BottomTabNativeOptions = {
|
|
238
260
|
/**
|
|
239
261
|
* Uses iOS built-in tab bar items with standard iOS styling and localized titles.
|
|
@@ -245,7 +267,7 @@ type BottomTabNativeOptions = {
|
|
|
245
267
|
*
|
|
246
268
|
* @platform ios
|
|
247
269
|
*/
|
|
248
|
-
tabBarSystemItem?:
|
|
270
|
+
tabBarSystemItem?: TabsSystemItem;
|
|
249
271
|
/**
|
|
250
272
|
* Blur effect applied to the tab bar when tab screen is selected.
|
|
251
273
|
*
|
|
@@ -266,14 +288,14 @@ type BottomTabNativeOptions = {
|
|
|
266
288
|
*
|
|
267
289
|
* @platform ios
|
|
268
290
|
*/
|
|
269
|
-
tabBarBlurEffect?:
|
|
291
|
+
tabBarBlurEffect?: TabsScreenBlurEffect;
|
|
270
292
|
/**
|
|
271
293
|
* Minimize behavior for the tab bar.
|
|
272
294
|
*
|
|
273
295
|
* The following values are currently supported:
|
|
274
296
|
*
|
|
275
297
|
* - `auto` - resolves to the system default minimize behavior
|
|
276
|
-
* - `
|
|
298
|
+
* - `none` - the tab bar does not minimize
|
|
277
299
|
* - `onScrollDown` - the tab bar minimizes when scrolling down and
|
|
278
300
|
* expands when scrolling back up
|
|
279
301
|
* - `onScrollUp` - the tab bar minimizes when scrolling up and expands
|
|
@@ -288,7 +310,7 @@ type BottomTabNativeOptions = {
|
|
|
288
310
|
*
|
|
289
311
|
* @platform ios
|
|
290
312
|
*/
|
|
291
|
-
tabBarMinimizeBehavior?:
|
|
313
|
+
tabBarMinimizeBehavior?: 'auto' | 'none' | 'onScrollDown' | 'onScrollUp';
|
|
292
314
|
/**
|
|
293
315
|
* Background color of the active indicator.
|
|
294
316
|
*
|
|
@@ -336,7 +358,7 @@ type BottomTabNativeOptions = {
|
|
|
336
358
|
*
|
|
337
359
|
* Edge effects can be configured for each edge separately. The following values are currently supported:
|
|
338
360
|
*
|
|
339
|
-
* - `
|
|
361
|
+
* - `auto` - the automatic scroll edge effect style,
|
|
340
362
|
* - `hard` - a scroll edge effect with a hard cutoff and dividing line,
|
|
341
363
|
* - `soft` - a soft-edged scroll edge effect,
|
|
342
364
|
* - `hidden` - no scroll edge effect.
|
|
@@ -452,7 +474,7 @@ export type BottomTabNavigationOptions = {
|
|
|
452
474
|
* Supported on iOS 18 and above with `native` implementation.
|
|
453
475
|
* Not supported on tvOS.
|
|
454
476
|
*/
|
|
455
|
-
tabBarControllerMode?:
|
|
477
|
+
tabBarControllerMode?: 'auto' | 'tabBar' | 'tabSidebar';
|
|
456
478
|
/**
|
|
457
479
|
* Style object for the tab bar container.
|
|
458
480
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AACpC,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,mBAAmB,EACnB,SAAS,EACT,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomTabViewNativeImpl.d.ts","sourceRoot":"","sources":["../../../../src/views/BottomTabViewNativeImpl.tsx"],"names":[],"mappings":"AAMA,OAAO,
|
|
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;AASlC,OAAO,KAAK,EACV,sBAAsB,EAEtB,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;AAWF,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,UAAU,EACV,WAAW,EACX,MAAM,GACP,EAAE,KAAK,2CAwUP"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Route } from '@react-navigation/native';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { type ColorValue, type StyleProp, type TextStyle, type ViewStyle } from 'react-native';
|
|
4
4
|
import type { BottomTabIcon } from '../types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabBarIcon.d.ts","sourceRoot":"","sources":["../../../../src/views/TabBarIcon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"TabBarIcon.d.ts","sourceRoot":"","sources":["../../../../src/views/TabBarIcon.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAkB,KAAK,KAAK,EAAY,MAAM,0BAA0B,CAAC;AAChF,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,KAAK,UAAU,EAEf,KAAK,SAAS,EAEd,KAAK,SAAS,EAEd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACrB,OAAO,EAAE,OAAO,GAAG,UAAU,CAAC;IAC9B,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,UAAU,CAAC;IAC5B,iBAAiB,EAAE,UAAU,CAAC;IAC9B,IAAI,EACA,aAAa,GACb,CAAC,CAAC,KAAK,EAAE;QACP,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,UAAU,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;KACd,KAAK,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC7B,CAAC;AAcF,wBAAgB,UAAU,CAAC,EACzB,KAAK,EAAE,CAAC,EACR,OAAO,EACP,IAAI,EACJ,KAAK,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,IAAI,EACJ,gBAAgB,EAChB,KAAK,GACN,EAAE,eAAe,2CAwDjB"}
|
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.2",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-native-component",
|
|
7
7
|
"react-component",
|
|
@@ -41,13 +41,13 @@
|
|
|
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.2",
|
|
45
45
|
"color": "^4.2.3",
|
|
46
|
-
"sf-symbols-typescript": "^2.
|
|
46
|
+
"sf-symbols-typescript": "^2.2.0"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@jest/globals": "^30.0.0",
|
|
50
|
-
"@react-navigation/native": "^8.0.0-alpha.
|
|
50
|
+
"@react-navigation/native": "^8.0.0-alpha.2",
|
|
51
51
|
"@testing-library/react-native": "^13.2.1",
|
|
52
52
|
"@types/color": "^4.2.0",
|
|
53
53
|
"@types/react": "~19.1.10",
|
|
@@ -56,12 +56,12 @@
|
|
|
56
56
|
"react-native": "0.81.4",
|
|
57
57
|
"react-native-builder-bob": "^0.40.12",
|
|
58
58
|
"react-native-safe-area-context": "~5.6.0",
|
|
59
|
-
"react-native-screens": "^4.
|
|
59
|
+
"react-native-screens": "^4.20.0",
|
|
60
60
|
"react-test-renderer": "19.1.0",
|
|
61
61
|
"typescript": "^5.9.2"
|
|
62
62
|
},
|
|
63
63
|
"peerDependencies": {
|
|
64
|
-
"@react-navigation/native": "^8.0.0-alpha.
|
|
64
|
+
"@react-navigation/native": "^8.0.0-alpha.2",
|
|
65
65
|
"react": ">= 19.0.0",
|
|
66
66
|
"react-native": "*",
|
|
67
67
|
"react-native-safe-area-context": ">= 5.5.0",
|
|
@@ -85,5 +85,5 @@
|
|
|
85
85
|
]
|
|
86
86
|
]
|
|
87
87
|
},
|
|
88
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "9664da8fff3bd7ed575bf12ddfcc47b3a42be997"
|
|
89
89
|
}
|
package/src/types.tsx
CHANGED
|
@@ -5,6 +5,7 @@ import type {
|
|
|
5
5
|
import type {
|
|
6
6
|
DefaultNavigatorOptions,
|
|
7
7
|
Descriptor,
|
|
8
|
+
MaterialSymbolProps,
|
|
8
9
|
NavigationHelpers,
|
|
9
10
|
NavigationProp,
|
|
10
11
|
ParamListBase,
|
|
@@ -25,12 +26,9 @@ import type {
|
|
|
25
26
|
ViewStyle,
|
|
26
27
|
} from 'react-native';
|
|
27
28
|
import type {
|
|
28
|
-
BottomTabsScreenBlurEffect,
|
|
29
|
-
BottomTabsSystemItem,
|
|
30
|
-
ScrollEdgeEffect,
|
|
31
|
-
TabBarControllerMode,
|
|
32
29
|
TabBarItemLabelVisibilityMode,
|
|
33
|
-
|
|
30
|
+
TabsScreenBlurEffect,
|
|
31
|
+
TabsSystemItem,
|
|
34
32
|
} from 'react-native-screens';
|
|
35
33
|
import type { SFSymbol } from 'sf-symbols-typescript';
|
|
36
34
|
|
|
@@ -148,6 +146,19 @@ type IconIOSSfSymbol = {
|
|
|
148
146
|
name: SFSymbol;
|
|
149
147
|
};
|
|
150
148
|
|
|
149
|
+
type IconMaterialSymbol = {
|
|
150
|
+
/**
|
|
151
|
+
* - `materialSymbol` - Use a Material Symbol as the icon on Android.
|
|
152
|
+
*/
|
|
153
|
+
type: 'materialSymbol';
|
|
154
|
+
/**
|
|
155
|
+
* Name of the Material Symbol to use as the icon.
|
|
156
|
+
*
|
|
157
|
+
* @platform android
|
|
158
|
+
*/
|
|
159
|
+
name: MaterialSymbolProps['name'];
|
|
160
|
+
};
|
|
161
|
+
|
|
151
162
|
type IconAndroidDrawable = {
|
|
152
163
|
/**
|
|
153
164
|
* - `drawableResource` - Use a drawable resource as the icon on Android.
|
|
@@ -159,11 +170,20 @@ type IconAndroidDrawable = {
|
|
|
159
170
|
* @platform android
|
|
160
171
|
*/
|
|
161
172
|
name: string;
|
|
173
|
+
/**
|
|
174
|
+
* Whether to apply tint color to the icon.
|
|
175
|
+
* Only supported with custom implementation.
|
|
176
|
+
*
|
|
177
|
+
* Defaults to `true`.
|
|
178
|
+
*
|
|
179
|
+
* @platform android
|
|
180
|
+
*/
|
|
181
|
+
tinted?: boolean;
|
|
162
182
|
};
|
|
163
183
|
|
|
164
184
|
type IconIOS = IconIOSSfSymbol | IconImage;
|
|
165
185
|
|
|
166
|
-
type IconAndroid = IconAndroidDrawable | IconImage;
|
|
186
|
+
type IconAndroid = IconMaterialSymbol | IconAndroidDrawable | IconImage;
|
|
167
187
|
|
|
168
188
|
export type BottomTabIcon = IconIOS | IconAndroid;
|
|
169
189
|
|
|
@@ -318,6 +338,8 @@ type BottomTabCustomOptions = {
|
|
|
318
338
|
tabBarButton?: (props: BottomTabBarButtonProps) => React.ReactNode;
|
|
319
339
|
};
|
|
320
340
|
|
|
341
|
+
type ScrollEdgeEffect = 'auto' | 'hard' | 'soft' | 'hidden';
|
|
342
|
+
|
|
321
343
|
type BottomTabNativeOptions = {
|
|
322
344
|
/**
|
|
323
345
|
* Uses iOS built-in tab bar items with standard iOS styling and localized titles.
|
|
@@ -329,7 +351,7 @@ type BottomTabNativeOptions = {
|
|
|
329
351
|
*
|
|
330
352
|
* @platform ios
|
|
331
353
|
*/
|
|
332
|
-
tabBarSystemItem?:
|
|
354
|
+
tabBarSystemItem?: TabsSystemItem;
|
|
333
355
|
|
|
334
356
|
/**
|
|
335
357
|
* Blur effect applied to the tab bar when tab screen is selected.
|
|
@@ -351,7 +373,7 @@ type BottomTabNativeOptions = {
|
|
|
351
373
|
*
|
|
352
374
|
* @platform ios
|
|
353
375
|
*/
|
|
354
|
-
tabBarBlurEffect?:
|
|
376
|
+
tabBarBlurEffect?: TabsScreenBlurEffect;
|
|
355
377
|
|
|
356
378
|
/**
|
|
357
379
|
* Minimize behavior for the tab bar.
|
|
@@ -359,7 +381,7 @@ type BottomTabNativeOptions = {
|
|
|
359
381
|
* The following values are currently supported:
|
|
360
382
|
*
|
|
361
383
|
* - `auto` - resolves to the system default minimize behavior
|
|
362
|
-
* - `
|
|
384
|
+
* - `none` - the tab bar does not minimize
|
|
363
385
|
* - `onScrollDown` - the tab bar minimizes when scrolling down and
|
|
364
386
|
* expands when scrolling back up
|
|
365
387
|
* - `onScrollUp` - the tab bar minimizes when scrolling up and expands
|
|
@@ -374,7 +396,7 @@ type BottomTabNativeOptions = {
|
|
|
374
396
|
*
|
|
375
397
|
* @platform ios
|
|
376
398
|
*/
|
|
377
|
-
tabBarMinimizeBehavior?:
|
|
399
|
+
tabBarMinimizeBehavior?: 'auto' | 'none' | 'onScrollDown' | 'onScrollUp';
|
|
378
400
|
|
|
379
401
|
/**
|
|
380
402
|
* Background color of the active indicator.
|
|
@@ -426,7 +448,7 @@ type BottomTabNativeOptions = {
|
|
|
426
448
|
*
|
|
427
449
|
* Edge effects can be configured for each edge separately. The following values are currently supported:
|
|
428
450
|
*
|
|
429
|
-
* - `
|
|
451
|
+
* - `auto` - the automatic scroll edge effect style,
|
|
430
452
|
* - `hard` - a scroll edge effect with a hard cutoff and dividing line,
|
|
431
453
|
* - `soft` - a soft-edged scroll edge effect,
|
|
432
454
|
* - `hidden` - no scroll edge effect.
|
|
@@ -558,7 +580,7 @@ export type BottomTabNavigationOptions = {
|
|
|
558
580
|
* Supported on iOS 18 and above with `native` implementation.
|
|
559
581
|
* Not supported on tvOS.
|
|
560
582
|
*/
|
|
561
|
-
tabBarControllerMode?:
|
|
583
|
+
tabBarControllerMode?: 'auto' | 'tabBar' | 'tabSidebar';
|
|
562
584
|
|
|
563
585
|
/**
|
|
564
586
|
* Style object for the tab bar container.
|
|
@@ -6,6 +6,8 @@ import {
|
|
|
6
6
|
} from '@react-navigation/elements/internal';
|
|
7
7
|
import {
|
|
8
8
|
CommonActions,
|
|
9
|
+
MaterialSymbol,
|
|
10
|
+
NavigationMetaContext,
|
|
9
11
|
type ParamListBase,
|
|
10
12
|
type Route,
|
|
11
13
|
StackActions,
|
|
@@ -15,10 +17,9 @@ import {
|
|
|
15
17
|
import * as React from 'react';
|
|
16
18
|
import { Animated, Platform, PlatformColor } from 'react-native';
|
|
17
19
|
import {
|
|
18
|
-
BottomTabs,
|
|
19
|
-
BottomTabsScreen,
|
|
20
|
-
type BottomTabsScreenItemStateAppearance,
|
|
21
20
|
type PlatformIcon,
|
|
21
|
+
Tabs,
|
|
22
|
+
type TabsScreenItemStateAppearance,
|
|
22
23
|
} from 'react-native-screens';
|
|
23
24
|
|
|
24
25
|
import type {
|
|
@@ -43,6 +44,10 @@ const ICON_SIZE = Platform.select({
|
|
|
43
44
|
default: 24,
|
|
44
45
|
});
|
|
45
46
|
|
|
47
|
+
const meta = {
|
|
48
|
+
type: 'native-tabs',
|
|
49
|
+
};
|
|
50
|
+
|
|
46
51
|
export function BottomTabViewNative({
|
|
47
52
|
state,
|
|
48
53
|
navigation,
|
|
@@ -128,6 +133,18 @@ export function BottomTabViewNative({
|
|
|
128
133
|
})
|
|
129
134
|
: null;
|
|
130
135
|
|
|
136
|
+
const tabBarControllerMode =
|
|
137
|
+
currentOptions.tabBarControllerMode === 'auto'
|
|
138
|
+
? 'automatic'
|
|
139
|
+
: currentOptions.tabBarControllerMode;
|
|
140
|
+
|
|
141
|
+
const tabBarMinimizeBehavior =
|
|
142
|
+
currentOptions.tabBarMinimizeBehavior === 'auto'
|
|
143
|
+
? 'automatic'
|
|
144
|
+
: currentOptions.tabBarMinimizeBehavior === 'none'
|
|
145
|
+
? 'never'
|
|
146
|
+
: currentOptions.tabBarMinimizeBehavior;
|
|
147
|
+
|
|
131
148
|
const bottomAccessory = currentOptions.bottomAccessory;
|
|
132
149
|
|
|
133
150
|
return (
|
|
@@ -142,7 +159,7 @@ export function BottomTabViewNative({
|
|
|
142
159
|
{tabBarPosition === 'top' || tabBarPosition === 'left'
|
|
143
160
|
? tabBarElement
|
|
144
161
|
: null}
|
|
145
|
-
<
|
|
162
|
+
<Tabs.Host
|
|
146
163
|
tabBarHidden={hasCustomTabBar}
|
|
147
164
|
bottomAccessory={
|
|
148
165
|
bottomAccessory
|
|
@@ -152,8 +169,8 @@ export function BottomTabViewNative({
|
|
|
152
169
|
tabBarItemLabelVisibilityMode={
|
|
153
170
|
currentOptions?.tabBarLabelVisibilityMode
|
|
154
171
|
}
|
|
155
|
-
tabBarControllerMode={
|
|
156
|
-
tabBarMinimizeBehavior={
|
|
172
|
+
tabBarControllerMode={tabBarControllerMode}
|
|
173
|
+
tabBarMinimizeBehavior={tabBarMinimizeBehavior}
|
|
157
174
|
tabBarTintColor={activeTintColor}
|
|
158
175
|
tabBarItemIconColor={inactiveTintColor}
|
|
159
176
|
tabBarItemIconColorActive={activeTintColor}
|
|
@@ -235,7 +252,7 @@ export function BottomTabViewNative({
|
|
|
235
252
|
? tabBarLabel
|
|
236
253
|
: getLabel({ label: tabBarLabel, title }, route.name);
|
|
237
254
|
|
|
238
|
-
const tabItemAppearance:
|
|
255
|
+
const tabItemAppearance: TabsScreenItemStateAppearance = {
|
|
239
256
|
tabBarItemTitleFontFamily: fontFamily,
|
|
240
257
|
tabBarItemTitleFontSize: fontSize,
|
|
241
258
|
tabBarItemTitleFontWeight: fontWeight,
|
|
@@ -282,7 +299,7 @@ export function BottomTabViewNative({
|
|
|
282
299
|
const selectedIcon = getIcon(true);
|
|
283
300
|
|
|
284
301
|
return (
|
|
285
|
-
<
|
|
302
|
+
<Tabs.Screen
|
|
286
303
|
onWillAppear={() => onTransitionStart({ route })}
|
|
287
304
|
onDidAppear={() => onTransitionEnd({ route })}
|
|
288
305
|
key={route.key}
|
|
@@ -295,7 +312,24 @@ export function BottomTabViewNative({
|
|
|
295
312
|
systemItem={tabBarSystemItem}
|
|
296
313
|
isFocused={isFocused}
|
|
297
314
|
title={tabTitle}
|
|
298
|
-
scrollEdgeEffects={
|
|
315
|
+
scrollEdgeEffects={{
|
|
316
|
+
top:
|
|
317
|
+
scrollEdgeEffects?.top === 'auto'
|
|
318
|
+
? 'automatic'
|
|
319
|
+
: scrollEdgeEffects?.top,
|
|
320
|
+
bottom:
|
|
321
|
+
scrollEdgeEffects?.bottom === 'auto'
|
|
322
|
+
? 'automatic'
|
|
323
|
+
: scrollEdgeEffects?.bottom,
|
|
324
|
+
left:
|
|
325
|
+
scrollEdgeEffects?.left === 'auto'
|
|
326
|
+
? 'automatic'
|
|
327
|
+
: scrollEdgeEffects?.left,
|
|
328
|
+
right:
|
|
329
|
+
scrollEdgeEffects?.right === 'auto'
|
|
330
|
+
? 'automatic'
|
|
331
|
+
: scrollEdgeEffects?.right,
|
|
332
|
+
}}
|
|
299
333
|
// FIXME: if this is not provided, ScrollView on lazy tabs glitches on iOS 18
|
|
300
334
|
// For now we provide an empty object before adding proper support
|
|
301
335
|
scrollEdgeAppearance={{}}
|
|
@@ -313,6 +347,12 @@ export function BottomTabViewNative({
|
|
|
313
347
|
normal: tabItemAppearance,
|
|
314
348
|
},
|
|
315
349
|
}}
|
|
350
|
+
specialEffects={{
|
|
351
|
+
repeatedTabSelection: {
|
|
352
|
+
popToRoot: true,
|
|
353
|
+
scrollToTop: true,
|
|
354
|
+
},
|
|
355
|
+
}}
|
|
316
356
|
experimental_userInterfaceStyle={dark ? 'dark' : 'light'}
|
|
317
357
|
>
|
|
318
358
|
<Lazy enabled={lazy} visible={isFocused || isPreloaded}>
|
|
@@ -325,22 +365,23 @@ export function BottomTabViewNative({
|
|
|
325
365
|
>
|
|
326
366
|
<AnimatedScreenContent isFocused={isFocused}>
|
|
327
367
|
<BottomTabBarHeightContext.Provider value={0}>
|
|
328
|
-
{
|
|
368
|
+
<NavigationMetaContext.Provider value={meta}>
|
|
369
|
+
{render()}
|
|
370
|
+
</NavigationMetaContext.Provider>
|
|
329
371
|
</BottomTabBarHeightContext.Provider>
|
|
330
372
|
</AnimatedScreenContent>
|
|
331
373
|
</ScreenContent>
|
|
332
374
|
</Lazy>
|
|
333
|
-
</
|
|
375
|
+
</Tabs.Screen>
|
|
334
376
|
);
|
|
335
377
|
})}
|
|
336
|
-
</
|
|
378
|
+
</Tabs.Host>
|
|
337
379
|
{tabBarPosition === 'bottom' || tabBarPosition === 'right'
|
|
338
380
|
? tabBarElement
|
|
339
381
|
: null}
|
|
340
382
|
</SafeAreaProviderCompat>
|
|
341
383
|
);
|
|
342
384
|
}
|
|
343
|
-
|
|
344
385
|
function AnimatedScreenContent({
|
|
345
386
|
isFocused,
|
|
346
387
|
children,
|
|
@@ -375,23 +416,52 @@ function AnimatedScreenContent({
|
|
|
375
416
|
}
|
|
376
417
|
|
|
377
418
|
function getPlatformIcon(icon: BottomTabIcon): PlatformIcon {
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
:
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
419
|
+
switch (icon.type) {
|
|
420
|
+
case 'sfSymbol':
|
|
421
|
+
return {
|
|
422
|
+
ios: icon,
|
|
423
|
+
android: undefined,
|
|
424
|
+
shared: undefined,
|
|
425
|
+
};
|
|
426
|
+
case 'materialSymbol':
|
|
427
|
+
return {
|
|
428
|
+
ios: undefined,
|
|
429
|
+
android: {
|
|
430
|
+
type: 'imageSource',
|
|
431
|
+
imageSource: MaterialSymbol.getImageSource({
|
|
432
|
+
name: icon.name,
|
|
433
|
+
}),
|
|
434
|
+
},
|
|
435
|
+
shared: undefined,
|
|
436
|
+
};
|
|
437
|
+
case 'image':
|
|
438
|
+
return {
|
|
439
|
+
ios:
|
|
440
|
+
icon.tinted === false
|
|
441
|
+
? {
|
|
442
|
+
type: 'imageSource',
|
|
443
|
+
imageSource: icon.source,
|
|
444
|
+
}
|
|
445
|
+
: {
|
|
446
|
+
type: 'templateSource',
|
|
447
|
+
templateSource: icon.source,
|
|
448
|
+
},
|
|
449
|
+
android: undefined,
|
|
450
|
+
shared: {
|
|
451
|
+
type: 'imageSource',
|
|
452
|
+
imageSource: icon.source,
|
|
453
|
+
},
|
|
454
|
+
};
|
|
455
|
+
case 'drawableResource':
|
|
456
|
+
return {
|
|
457
|
+
ios: undefined,
|
|
458
|
+
android: icon,
|
|
459
|
+
shared: undefined,
|
|
460
|
+
};
|
|
461
|
+
default: {
|
|
462
|
+
const _exhaustiveCheck: never = icon;
|
|
463
|
+
|
|
464
|
+
return _exhaustiveCheck;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
397
467
|
}
|
package/src/views/TabBarIcon.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Badge } from '@react-navigation/elements';
|
|
2
2
|
import { MissingIcon } from '@react-navigation/elements/internal';
|
|
3
|
-
import type
|
|
3
|
+
import { MaterialSymbol, type Route, SFSymbol } from '@react-navigation/native';
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import {
|
|
6
6
|
type ColorValue,
|
|
@@ -141,21 +141,40 @@ function renderIcon({
|
|
|
141
141
|
iconValue != null &&
|
|
142
142
|
'type' in iconValue
|
|
143
143
|
) {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
144
|
+
switch (iconValue.type) {
|
|
145
|
+
case 'image':
|
|
146
|
+
return (
|
|
147
|
+
<Image
|
|
148
|
+
source={iconValue.source}
|
|
149
|
+
style={{
|
|
150
|
+
width: size,
|
|
151
|
+
height: size,
|
|
152
|
+
tintColor: iconValue.tinted === false ? undefined : color,
|
|
153
|
+
}}
|
|
154
|
+
/>
|
|
155
|
+
);
|
|
156
|
+
case 'drawableResource':
|
|
157
|
+
return (
|
|
158
|
+
<Image
|
|
159
|
+
source={{ uri: iconValue.name }}
|
|
160
|
+
style={{
|
|
161
|
+
width: size,
|
|
162
|
+
height: size,
|
|
163
|
+
tintColor: iconValue.tinted === false ? undefined : color,
|
|
164
|
+
}}
|
|
165
|
+
/>
|
|
166
|
+
);
|
|
167
|
+
case 'sfSymbol':
|
|
168
|
+
return <SFSymbol name={iconValue.name} size={size} color={color} />;
|
|
169
|
+
case 'materialSymbol':
|
|
170
|
+
return (
|
|
171
|
+
<MaterialSymbol name={iconValue.name} size={size} color={color} />
|
|
172
|
+
);
|
|
173
|
+
default: {
|
|
174
|
+
const _exhaustiveCheck: never = iconValue;
|
|
175
|
+
|
|
176
|
+
return _exhaustiveCheck;
|
|
177
|
+
}
|
|
159
178
|
}
|
|
160
179
|
}
|
|
161
180
|
|