@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.
Files changed (54) hide show
  1. package/lib/module/index.js +1 -1
  2. package/lib/module/index.js.map +1 -1
  3. package/lib/module/navigators/createBottomTabNavigator.js +4 -25
  4. package/lib/module/navigators/createBottomTabNavigator.js.map +1 -1
  5. package/lib/module/utils/useBottomTabAnimation.js +1 -1
  6. package/lib/module/utils/useBottomTabAnimation.js.map +1 -1
  7. package/lib/module/utils/useBottomTabBarHeight.js +1 -1
  8. package/lib/module/utils/useBottomTabBarHeight.js.map +1 -1
  9. package/lib/module/views/BottomTabBar.js +14 -11
  10. package/lib/module/views/BottomTabBar.js.map +1 -1
  11. package/lib/module/views/BottomTabItem.js +1 -1
  12. package/lib/module/views/BottomTabItem.js.map +1 -1
  13. package/lib/module/views/{BottomTabViewCommon.js → BottomTabView.js} +1 -1
  14. package/lib/module/views/BottomTabView.js.map +1 -0
  15. package/lib/module/views/BottomTabViewCustom.js +64 -66
  16. package/lib/module/views/BottomTabViewCustom.js.map +1 -1
  17. package/lib/module/views/BottomTabViewNativeImpl.js +299 -100
  18. package/lib/module/views/BottomTabViewNativeImpl.js.map +1 -1
  19. package/lib/module/views/ScreenContent.js.map +1 -1
  20. package/lib/module/views/TabBarIcon.js +5 -14
  21. package/lib/module/views/TabBarIcon.js.map +1 -1
  22. package/lib/typescript/src/index.d.ts +3 -3
  23. package/lib/typescript/src/index.d.ts.map +1 -1
  24. package/lib/typescript/src/navigators/createBottomTabNavigator.d.ts +8 -14
  25. package/lib/typescript/src/navigators/createBottomTabNavigator.d.ts.map +1 -1
  26. package/lib/typescript/src/types.d.ts +56 -108
  27. package/lib/typescript/src/types.d.ts.map +1 -1
  28. package/lib/typescript/src/views/BottomTabBar.d.ts.map +1 -1
  29. package/lib/typescript/src/views/BottomTabItem.d.ts +16 -16
  30. package/lib/typescript/src/views/BottomTabItem.d.ts.map +1 -1
  31. package/lib/typescript/src/views/{BottomTabViewCommon.d.ts → BottomTabView.d.ts} +1 -1
  32. package/lib/typescript/src/views/BottomTabView.d.ts.map +1 -0
  33. package/lib/typescript/src/views/BottomTabViewCustom.d.ts +1 -1
  34. package/lib/typescript/src/views/BottomTabViewCustom.d.ts.map +1 -1
  35. package/lib/typescript/src/views/BottomTabViewNativeImpl.d.ts.map +1 -1
  36. package/lib/typescript/src/views/ScreenContent.d.ts +2 -2
  37. package/lib/typescript/src/views/ScreenContent.d.ts.map +1 -1
  38. package/lib/typescript/src/views/TabBarIcon.d.ts +6 -6
  39. package/lib/typescript/src/views/TabBarIcon.d.ts.map +1 -1
  40. package/package.json +18 -21
  41. package/src/index.tsx +2 -2
  42. package/src/navigators/createBottomTabNavigator.tsx +10 -75
  43. package/src/types.tsx +56 -116
  44. package/src/utils/useBottomTabAnimation.tsx +1 -1
  45. package/src/utils/useBottomTabBarHeight.tsx +1 -1
  46. package/src/views/BottomTabBar.tsx +24 -12
  47. package/src/views/BottomTabItem.tsx +17 -19
  48. package/src/views/BottomTabViewCustom.tsx +119 -117
  49. package/src/views/BottomTabViewNativeImpl.tsx +447 -151
  50. package/src/views/ScreenContent.tsx +1 -2
  51. package/src/views/TabBarIcon.tsx +17 -24
  52. package/lib/module/views/BottomTabViewCommon.js.map +0 -1
  53. package/lib/typescript/src/views/BottomTabViewCommon.d.ts.map +0 -1
  54. /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?: StyleProp<ViewStyle>;
23
+ style?: React.ComponentProps<typeof Screen>['style'];
25
24
  children: React.ReactNode;
26
25
  }) {
27
26
  const {
@@ -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
- | BottomTabIcon
26
+ | Icon
29
27
  | ((props: {
30
28
  focused: boolean;
31
29
  color: ColorValue;
32
30
  size: number;
33
- }) => BottomTabIcon | React.ReactNode);
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 ICON_SIZE_ROUND = 25;
47
- const ICON_SIZE_ROUND_COMPACT = 18;
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
- ? ICON_SIZE_ROUND_COMPACT
69
- : ICON_SIZE_ROUND;
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 name={iconValue.name} size={size} color={color} />
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"}