@react-navigation/bottom-tabs 6.0.9 → 6.3.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 (43) hide show
  1. package/lib/commonjs/index.js +6 -6
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/navigators/createBottomTabNavigator.js +12 -9
  4. package/lib/commonjs/navigators/createBottomTabNavigator.js.map +1 -1
  5. package/lib/commonjs/views/Badge.js +23 -20
  6. package/lib/commonjs/views/Badge.js.map +1 -1
  7. package/lib/commonjs/views/BottomTabBar.js +39 -31
  8. package/lib/commonjs/views/BottomTabBar.js.map +1 -1
  9. package/lib/commonjs/views/BottomTabItem.js +65 -57
  10. package/lib/commonjs/views/BottomTabItem.js.map +1 -1
  11. package/lib/commonjs/views/BottomTabView.js +11 -7
  12. package/lib/commonjs/views/BottomTabView.js.map +1 -1
  13. package/lib/commonjs/views/ScreenFallback.js +13 -9
  14. package/lib/commonjs/views/ScreenFallback.js.map +1 -1
  15. package/lib/commonjs/views/TabBarIcon.js +13 -12
  16. package/lib/commonjs/views/TabBarIcon.js.map +1 -1
  17. package/lib/module/index.js.map +1 -1
  18. package/lib/module/navigators/createBottomTabNavigator.js +12 -9
  19. package/lib/module/navigators/createBottomTabNavigator.js.map +1 -1
  20. package/lib/module/views/Badge.js +23 -20
  21. package/lib/module/views/Badge.js.map +1 -1
  22. package/lib/module/views/BottomTabBar.js +39 -31
  23. package/lib/module/views/BottomTabBar.js.map +1 -1
  24. package/lib/module/views/BottomTabItem.js +65 -57
  25. package/lib/module/views/BottomTabItem.js.map +1 -1
  26. package/lib/module/views/BottomTabView.js +11 -7
  27. package/lib/module/views/BottomTabView.js.map +1 -1
  28. package/lib/module/views/ScreenFallback.js +13 -9
  29. package/lib/module/views/ScreenFallback.js.map +1 -1
  30. package/lib/module/views/TabBarIcon.js +13 -12
  31. package/lib/module/views/TabBarIcon.js.map +1 -1
  32. package/lib/typescript/src/index.d.ts +1 -1
  33. package/lib/typescript/src/navigators/createBottomTabNavigator.d.ts +1 -1
  34. package/lib/typescript/src/types.d.ts +3 -3
  35. package/lib/typescript/src/views/Badge.d.ts +1 -1
  36. package/lib/typescript/src/views/ScreenFallback.d.ts +1 -0
  37. package/package.json +8 -8
  38. package/src/index.tsx +1 -0
  39. package/src/navigators/createBottomTabNavigator.tsx +2 -0
  40. package/src/types.tsx +6 -3
  41. package/src/views/Badge.tsx +12 -12
  42. package/src/views/BottomTabView.tsx +1 -0
  43. package/src/views/ScreenFallback.tsx +1 -0
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": "6.0.9",
4
+ "version": "6.3.0",
5
5
  "keywords": [
6
6
  "react-native-component",
7
7
  "react-component",
@@ -36,22 +36,22 @@
36
36
  "clean": "del lib"
37
37
  },
38
38
  "dependencies": {
39
- "@react-navigation/elements": "^1.2.1",
39
+ "@react-navigation/elements": "^1.3.2",
40
40
  "color": "^3.1.3",
41
41
  "warn-once": "^0.1.0"
42
42
  },
43
43
  "devDependencies": {
44
- "@react-navigation/native": "^6.0.6",
44
+ "@react-navigation/native": "^6.0.9",
45
45
  "@testing-library/react-native": "^7.2.0",
46
46
  "@types/color": "^3.0.1",
47
47
  "@types/react": "^17.0.9",
48
48
  "@types/react-native": "~0.64.9",
49
49
  "del-cli": "^3.0.1",
50
- "react": "~16.13.1",
51
- "react-native": "~0.63.4",
50
+ "react": "17.0.1",
51
+ "react-native": "~0.64.3",
52
52
  "react-native-builder-bob": "^0.18.1",
53
- "react-native-safe-area-context": "~3.2.0",
54
- "react-native-screens": "~3.8.0",
53
+ "react-native-safe-area-context": "3.3.2",
54
+ "react-native-screens": "~3.10.1",
55
55
  "typescript": "^4.3.2"
56
56
  },
57
57
  "peerDependencies": {
@@ -75,5 +75,5 @@
75
75
  ]
76
76
  ]
77
77
  },
78
- "gitHead": "e77a5ab9d342a03cd8e20b54938700dfd4e23f42"
78
+ "gitHead": "c5ef6b5e88426e658123ea8590da583314b9001e"
79
79
  }
package/src/index.tsx CHANGED
@@ -22,6 +22,7 @@ export type {
22
22
  BottomTabBarButtonProps,
23
23
  BottomTabBarProps,
24
24
  BottomTabHeaderProps,
25
+ BottomTabNavigationEventMap,
25
26
  BottomTabNavigationOptions,
26
27
  BottomTabNavigationProp,
27
28
  BottomTabScreenProps,
@@ -28,6 +28,7 @@ type Props = DefaultNavigatorOptions<
28
28
  BottomTabNavigationConfig;
29
29
 
30
30
  function BottomTabNavigator({
31
+ id,
31
32
  initialRouteName,
32
33
  backBehavior,
33
34
  children,
@@ -103,6 +104,7 @@ function BottomTabNavigator({
103
104
  BottomTabNavigationOptions,
104
105
  BottomTabNavigationEventMap
105
106
  >(TabRouter, {
107
+ id,
106
108
  initialRouteName,
107
109
  backBehavior,
108
110
  children,
package/src/types.tsx CHANGED
@@ -42,10 +42,12 @@ export type BottomTabNavigationHelpers = NavigationHelpers<
42
42
 
43
43
  export type BottomTabNavigationProp<
44
44
  ParamList extends ParamListBase,
45
- RouteName extends keyof ParamList = keyof ParamList
45
+ RouteName extends keyof ParamList = keyof ParamList,
46
+ NavigatorID extends string | undefined = undefined
46
47
  > = NavigationProp<
47
48
  ParamList,
48
49
  RouteName,
50
+ NavigatorID,
49
51
  TabNavigationState<ParamList>,
50
52
  BottomTabNavigationOptions,
51
53
  BottomTabNavigationEventMap
@@ -54,9 +56,10 @@ export type BottomTabNavigationProp<
54
56
 
55
57
  export type BottomTabScreenProps<
56
58
  ParamList extends ParamListBase,
57
- RouteName extends keyof ParamList = keyof ParamList
59
+ RouteName extends keyof ParamList = keyof ParamList,
60
+ NavigatorID extends string | undefined = undefined
58
61
  > = {
59
- navigation: BottomTabNavigationProp<ParamList, RouteName>;
62
+ navigation: BottomTabNavigationProp<ParamList, RouteName, NavigatorID>;
60
63
  route: RouteProp<ParamList, RouteName>;
61
64
  };
62
65
 
@@ -23,14 +23,14 @@ type Props = {
23
23
  };
24
24
 
25
25
  export default function Badge({
26
- visible = true,
27
- size = 18,
28
26
  children,
29
27
  style,
28
+ visible = true,
29
+ size = 18,
30
30
  ...rest
31
31
  }: Props) {
32
32
  const [opacity] = React.useState(() => new Animated.Value(visible ? 1 : 0));
33
- const [rendered, setRendered] = React.useState(visible ? true : false);
33
+ const [rendered, setRendered] = React.useState(visible);
34
34
 
35
35
  const theme = useTheme();
36
36
 
@@ -52,12 +52,12 @@ export default function Badge({
52
52
  return () => opacity.stopAnimation();
53
53
  }, [opacity, rendered, visible]);
54
54
 
55
- if (visible && !rendered) {
56
- setRendered(true);
57
- }
58
-
59
- if (!visible && !rendered) {
60
- return null;
55
+ if (!rendered) {
56
+ if (visible) {
57
+ setRendered(true);
58
+ } else {
59
+ return null;
60
+ }
61
61
  }
62
62
 
63
63
  // @ts-expect-error: backgroundColor definitely exists
@@ -73,7 +73,6 @@ export default function Badge({
73
73
  numberOfLines={1}
74
74
  style={[
75
75
  {
76
- opacity,
77
76
  transform: [
78
77
  {
79
78
  scale: opacity.interpolate({
@@ -82,12 +81,13 @@ export default function Badge({
82
81
  }),
83
82
  },
84
83
  ],
85
- backgroundColor,
86
84
  color: textColor,
87
- fontSize,
88
85
  lineHeight: size - 1,
89
86
  height: size,
90
87
  minWidth: size,
88
+ opacity,
89
+ backgroundColor,
90
+ fontSize,
91
91
  borderRadius,
92
92
  },
93
93
  styles.container,
@@ -92,6 +92,7 @@ export default function BottomTabView(props: Props) {
92
92
  <SafeAreaProviderCompat>
93
93
  <MaybeScreenContainer
94
94
  enabled={detachInactiveScreens}
95
+ hasTwoStates
95
96
  style={styles.container}
96
97
  >
97
98
  {routes.map((route, index) => {
@@ -22,6 +22,7 @@ export const MaybeScreenContainer = ({
22
22
  ...rest
23
23
  }: ViewProps & {
24
24
  enabled: boolean;
25
+ hasTwoStates: boolean;
25
26
  children: React.ReactNode;
26
27
  }) => {
27
28
  if (Screens?.screensEnabled?.()) {