@react-navigation/bottom-tabs 8.0.0-alpha.3 → 8.0.0-alpha.30
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 +4 -25
- package/lib/module/navigators/createBottomTabNavigator.js.map +1 -1
- package/lib/module/utils/useBottomTabAnimation.js +1 -1
- package/lib/module/utils/useBottomTabAnimation.js.map +1 -1
- package/lib/module/utils/useBottomTabBarHeight.js +1 -1
- package/lib/module/utils/useBottomTabBarHeight.js.map +1 -1
- package/lib/module/views/BottomTabBar.js +14 -11
- package/lib/module/views/BottomTabBar.js.map +1 -1
- package/lib/module/views/BottomTabItem.js +1 -1
- package/lib/module/views/BottomTabItem.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/BottomTabViewCustom.js +64 -66
- package/lib/module/views/BottomTabViewCustom.js.map +1 -1
- package/lib/module/views/BottomTabViewNativeImpl.js +299 -100
- package/lib/module/views/BottomTabViewNativeImpl.js.map +1 -1
- package/lib/module/views/ScreenContent.js.map +1 -1
- package/lib/module/views/TabBarIcon.js +5 -14
- package/lib/module/views/TabBarIcon.js.map +1 -1
- package/lib/typescript/src/index.d.ts +3 -3
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/navigators/createBottomTabNavigator.d.ts +8 -14
- package/lib/typescript/src/navigators/createBottomTabNavigator.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +56 -108
- 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/BottomTabItem.d.ts +16 -16
- package/lib/typescript/src/views/BottomTabItem.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/BottomTabViewCustom.d.ts +1 -1
- package/lib/typescript/src/views/BottomTabViewCustom.d.ts.map +1 -1
- package/lib/typescript/src/views/BottomTabViewNativeImpl.d.ts.map +1 -1
- package/lib/typescript/src/views/ScreenContent.d.ts +2 -2
- package/lib/typescript/src/views/ScreenContent.d.ts.map +1 -1
- package/lib/typescript/src/views/TabBarIcon.d.ts +6 -6
- package/lib/typescript/src/views/TabBarIcon.d.ts.map +1 -1
- package/package.json +18 -21
- package/src/index.tsx +2 -2
- package/src/navigators/createBottomTabNavigator.tsx +10 -75
- package/src/types.tsx +56 -116
- package/src/utils/useBottomTabAnimation.tsx +1 -1
- package/src/utils/useBottomTabBarHeight.tsx +1 -1
- package/src/views/BottomTabBar.tsx +24 -12
- package/src/views/BottomTabItem.tsx +17 -19
- package/src/views/BottomTabViewCustom.tsx +119 -117
- package/src/views/BottomTabViewNativeImpl.tsx +447 -151
- package/src/views/ScreenContent.tsx +1 -2
- package/src/views/TabBarIcon.tsx +17 -24
- 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
|
@@ -2,7 +2,6 @@ import { getHeaderTitle, Header } from '@react-navigation/elements';
|
|
|
2
2
|
import { Screen } from '@react-navigation/elements/internal';
|
|
3
3
|
import type { ParamListBase, Route } from '@react-navigation/native';
|
|
4
4
|
import * as React from 'react';
|
|
5
|
-
import { type StyleProp, type ViewStyle } from 'react-native';
|
|
6
5
|
|
|
7
6
|
import type {
|
|
8
7
|
BottomTabNavigationOptions,
|
|
@@ -21,7 +20,7 @@ export function ScreenContent({
|
|
|
21
20
|
route: Route<string>;
|
|
22
21
|
navigation: BottomTabNavigationProp<ParamListBase>;
|
|
23
22
|
options: BottomTabNavigationOptions;
|
|
24
|
-
style?:
|
|
23
|
+
style?: React.ComponentProps<typeof Screen>['style'];
|
|
25
24
|
children: React.ReactNode;
|
|
26
25
|
}) {
|
|
27
26
|
const {
|
package/src/views/TabBarIcon.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Badge } from '@react-navigation/elements';
|
|
1
|
+
import { Badge, type Icon } from '@react-navigation/elements';
|
|
2
2
|
import { MissingIcon } from '@react-navigation/elements/internal';
|
|
3
3
|
import { MaterialSymbol, type Route, SFSymbol } from '@react-navigation/native';
|
|
4
4
|
import React from 'react';
|
|
@@ -12,26 +12,24 @@ import {
|
|
|
12
12
|
type ViewStyle,
|
|
13
13
|
} from 'react-native';
|
|
14
14
|
|
|
15
|
-
import type { BottomTabIcon } from '../types';
|
|
16
|
-
|
|
17
15
|
export type TabBarIconProps = {
|
|
18
16
|
route: Route<string>;
|
|
19
17
|
variant: 'uikit' | 'material';
|
|
20
18
|
size: 'compact' | 'regular';
|
|
21
|
-
badge?: string | number;
|
|
22
|
-
badgeStyle?: StyleProp<TextStyle
|
|
19
|
+
badge?: string | number | undefined;
|
|
20
|
+
badgeStyle?: StyleProp<TextStyle> | undefined;
|
|
23
21
|
activeOpacity: number;
|
|
24
22
|
inactiveOpacity: number;
|
|
25
23
|
activeTintColor: ColorValue;
|
|
26
24
|
inactiveTintColor: ColorValue;
|
|
27
25
|
icon:
|
|
28
|
-
|
|
|
26
|
+
| Icon
|
|
29
27
|
| ((props: {
|
|
30
28
|
focused: boolean;
|
|
31
29
|
color: ColorValue;
|
|
32
30
|
size: number;
|
|
33
|
-
}) =>
|
|
34
|
-
allowFontScaling?: boolean;
|
|
31
|
+
}) => Icon | React.ReactNode);
|
|
32
|
+
allowFontScaling?: boolean | undefined;
|
|
35
33
|
style: StyleProp<ViewStyle>;
|
|
36
34
|
};
|
|
37
35
|
|
|
@@ -43,8 +41,8 @@ const ICON_SIZE_WIDE = 31;
|
|
|
43
41
|
const ICON_SIZE_WIDE_COMPACT = 23;
|
|
44
42
|
const ICON_SIZE_TALL = 28;
|
|
45
43
|
const ICON_SIZE_TALL_COMPACT = 20;
|
|
46
|
-
const
|
|
47
|
-
const
|
|
44
|
+
const ICON_SIZE_SQUARE = 23;
|
|
45
|
+
const ICON_SIZE_SQUARE_COMPACT = 17;
|
|
48
46
|
const ICON_SIZE_MATERIAL = 24;
|
|
49
47
|
|
|
50
48
|
export function TabBarIcon({
|
|
@@ -65,8 +63,8 @@ export function TabBarIcon({
|
|
|
65
63
|
variant === 'material'
|
|
66
64
|
? ICON_SIZE_MATERIAL
|
|
67
65
|
: size === 'compact'
|
|
68
|
-
?
|
|
69
|
-
:
|
|
66
|
+
? ICON_SIZE_SQUARE_COMPACT
|
|
67
|
+
: ICON_SIZE_SQUARE;
|
|
70
68
|
|
|
71
69
|
// We render the icon twice at the same position on top of each other:
|
|
72
70
|
// active and inactive one, so we can fade between them.
|
|
@@ -153,22 +151,17 @@ function renderIcon({
|
|
|
153
151
|
}}
|
|
154
152
|
/>
|
|
155
153
|
);
|
|
156
|
-
case 'resource':
|
|
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
154
|
case 'sfSymbol':
|
|
168
155
|
return <SFSymbol name={iconValue.name} size={size} color={color} />;
|
|
169
156
|
case 'materialSymbol':
|
|
170
157
|
return (
|
|
171
|
-
<MaterialSymbol
|
|
158
|
+
<MaterialSymbol
|
|
159
|
+
name={iconValue.name}
|
|
160
|
+
variant={iconValue.variant}
|
|
161
|
+
weight={iconValue.weight}
|
|
162
|
+
size={size}
|
|
163
|
+
color={color}
|
|
164
|
+
/>
|
|
172
165
|
);
|
|
173
166
|
default: {
|
|
174
167
|
const _exhaustiveCheck: never = iconValue;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["BottomTabViewCustom","BottomTabViewNative","jsx","_jsx","BottomTabView","props","implementation"],"sourceRoot":"../../../src","sources":["views/BottomTabViewCommon.tsx"],"mappings":";;AAUA,SAASA,mBAAmB,QAAQ,0BAAuB;AAC3D,SAASC,mBAAmB,QAAQ,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ5D,OAAO,SAASC,aAAaA,CAACC,KAAY,EAAE;EAC1C,IAAIA,KAAK,CAACC,cAAc,KAAK,QAAQ,EAAE;IACrC,oBAAOH,IAAA,CAACH,mBAAmB;MAAA,GAAKK;IAAK,CAAG,CAAC;EAC3C;EAEA,oBAAOF,IAAA,CAACF,mBAAmB;IAAA,GAAKI;EAAK,CAAG,CAAC;AAC3C","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BottomTabViewCommon.d.ts","sourceRoot":"","sources":["../../../../src/views/BottomTabViewCommon.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"}
|
|
File without changes
|