@react-navigation/bottom-tabs 7.0.0-alpha.13 → 7.0.0-alpha.14
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/commonjs/views/BottomTabView.js +15 -5
- package/lib/commonjs/views/BottomTabView.js.map +1 -1
- package/lib/module/views/BottomTabView.js +15 -5
- package/lib/module/views/BottomTabView.js.map +1 -1
- package/lib/typescript/src/views/BottomTabView.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/views/BottomTabView.tsx +23 -6
|
@@ -29,7 +29,7 @@ const NAMED_TRANSITIONS_PRESETS = {
|
|
|
29
29
|
transitionSpec: {
|
|
30
30
|
animation: 'timing',
|
|
31
31
|
config: {
|
|
32
|
-
duration:
|
|
32
|
+
duration: 0
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
}
|
|
@@ -64,8 +64,11 @@ function BottomTabView(props) {
|
|
|
64
64
|
// Set the current tab to be loaded if it was not loaded before
|
|
65
65
|
setLoaded([...loaded, focusedRouteKey]);
|
|
66
66
|
}
|
|
67
|
+
const previousRouteKeyRef = React.useRef(focusedRouteKey);
|
|
67
68
|
const tabAnims = (0, _useAnimatedHashMap.useAnimatedHashMap)(state);
|
|
68
69
|
React.useEffect(() => {
|
|
70
|
+
const previousRouteKey = previousRouteKeyRef.current;
|
|
71
|
+
previousRouteKeyRef.current = focusedRouteKey;
|
|
69
72
|
const animateToIndex = () => {
|
|
70
73
|
_reactNative.Animated.parallel(state.routes.map((route, index) => {
|
|
71
74
|
const {
|
|
@@ -73,18 +76,25 @@ function BottomTabView(props) {
|
|
|
73
76
|
} = descriptors[route.key];
|
|
74
77
|
const {
|
|
75
78
|
animation = 'none',
|
|
76
|
-
transitionSpec = NAMED_TRANSITIONS_PRESETS[animation].transitionSpec
|
|
79
|
+
transitionSpec = NAMED_TRANSITIONS_PRESETS[animation].transitionSpec
|
|
77
80
|
} = options;
|
|
81
|
+
let spec = transitionSpec;
|
|
82
|
+
if (route.key !== previousRouteKey && route.key !== focusedRouteKey) {
|
|
83
|
+
// Don't animate if the screen is not previous one or new one
|
|
84
|
+
// This will avoid flicker for screens not involved in the transition
|
|
85
|
+
spec = NAMED_TRANSITIONS_PRESETS.none.transitionSpec;
|
|
86
|
+
}
|
|
87
|
+
spec = spec ?? NAMED_TRANSITIONS_PRESETS.none.transitionSpec;
|
|
78
88
|
const toValue = index === state.index ? 0 : index >= state.index ? 1 : -1;
|
|
79
|
-
return _reactNative.Animated[
|
|
80
|
-
...
|
|
89
|
+
return _reactNative.Animated[spec.animation](tabAnims[route.key], {
|
|
90
|
+
...spec.config,
|
|
81
91
|
toValue,
|
|
82
92
|
useNativeDriver: true
|
|
83
93
|
});
|
|
84
94
|
}).filter(Boolean)).start();
|
|
85
95
|
};
|
|
86
96
|
animateToIndex();
|
|
87
|
-
}, [descriptors, state.index, state.routes, tabAnims]);
|
|
97
|
+
}, [descriptors, focusedRouteKey, state.index, state.routes, tabAnims]);
|
|
88
98
|
const dimensions = _elements.SafeAreaProviderCompat.initialMetrics.frame;
|
|
89
99
|
const [tabBarHeight, setTabBarHeight] = React.useState(() => (0, _BottomTabBar.getTabBarHeight)({
|
|
90
100
|
state,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_elements","require","React","_interopRequireWildcard","_reactNative","_reactNativeSafeAreaContext","_TransitionPresets","_BottomTabBarHeightCallbackContext","_BottomTabBarHeightContext","_useAnimatedHashMap","_BottomTabBar","_ScreenFallback","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","EPSILON","STATE_INACTIVE","STATE_TRANSITIONING_OR_BELOW_TOP","STATE_ON_TOP","NAMED_TRANSITIONS_PRESETS","fade","FadeTransition","shifting","ShiftingTransition","none","sceneStyleInterpolator","undefined","transitionSpec","animation","config","duration","hasAnimation","options","BottomTabView","props","tabBar","createElement","BottomTabBar","state","navigation","descriptors","safeAreaInsets","detachInactiveScreens","Platform","OS","sceneContainerStyle","focusedRouteKey","routes","index","loaded","setLoaded","useState","includes","tabAnims","useAnimatedHashMap","useEffect","animateToIndex","Animated","parallel","map","route","toValue","useNativeDriver","filter","Boolean","start","dimensions","SafeAreaProviderCompat","initialMetrics","frame","tabBarHeight","setTabBarHeight","getTabBarHeight","layout","width","height","insets","style","tabBarStyle","renderTabBar","SafeAreaInsetsContext","Consumer","top","right","bottom","left","hasTwoStates","some","tabBarPosition","styles","BottomTabBarHeightCallbackContext","Provider","value","MaybeScreenContainer","enabled","screens","descriptor","lazy","unmountOnBlur","isFocused","preloadedRouteKeys","freezeOnBlur","header","_ref","Header","title","getHeaderTitle","name","headerShown","headerStatusBarHeight","headerTransparent","sceneStyle","current","progress","animationEnabled","activityState","interpolate","inputRange","outputRange","extrapolate","MaybeScreen","StyleSheet","absoluteFill","zIndex","active","BottomTabBarHeightContext","Screen","focused","render","create","flexDirection","flex","overflow"],"sourceRoot":"../../../src","sources":["views/BottomTabView.tsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_elements","require","React","_interopRequireWildcard","_reactNative","_reactNativeSafeAreaContext","_TransitionPresets","_BottomTabBarHeightCallbackContext","_BottomTabBarHeightContext","_useAnimatedHashMap","_BottomTabBar","_ScreenFallback","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","EPSILON","STATE_INACTIVE","STATE_TRANSITIONING_OR_BELOW_TOP","STATE_ON_TOP","NAMED_TRANSITIONS_PRESETS","fade","FadeTransition","shifting","ShiftingTransition","none","sceneStyleInterpolator","undefined","transitionSpec","animation","config","duration","hasAnimation","options","BottomTabView","props","tabBar","createElement","BottomTabBar","state","navigation","descriptors","safeAreaInsets","detachInactiveScreens","Platform","OS","sceneContainerStyle","focusedRouteKey","routes","index","loaded","setLoaded","useState","includes","previousRouteKeyRef","useRef","tabAnims","useAnimatedHashMap","useEffect","previousRouteKey","current","animateToIndex","Animated","parallel","map","route","spec","toValue","useNativeDriver","filter","Boolean","start","dimensions","SafeAreaProviderCompat","initialMetrics","frame","tabBarHeight","setTabBarHeight","getTabBarHeight","layout","width","height","insets","style","tabBarStyle","renderTabBar","SafeAreaInsetsContext","Consumer","top","right","bottom","left","hasTwoStates","some","tabBarPosition","styles","BottomTabBarHeightCallbackContext","Provider","value","MaybeScreenContainer","enabled","screens","descriptor","lazy","unmountOnBlur","isFocused","preloadedRouteKeys","freezeOnBlur","header","_ref","Header","title","getHeaderTitle","name","headerShown","headerStatusBarHeight","headerTransparent","sceneStyle","progress","animationEnabled","activityState","interpolate","inputRange","outputRange","extrapolate","MaybeScreen","StyleSheet","absoluteFill","zIndex","active","BottomTabBarHeightContext","Screen","focused","render","create","flexDirection","flex","overflow"],"sourceRoot":"../../../src","sources":["views/BottomTabView.tsx"],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ const NAMED_TRANSITIONS_PRESETS = {
|
|
|
21
21
|
transitionSpec: {
|
|
22
22
|
animation: 'timing',
|
|
23
23
|
config: {
|
|
24
|
-
duration:
|
|
24
|
+
duration: 0
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
}
|
|
@@ -56,8 +56,11 @@ export function BottomTabView(props) {
|
|
|
56
56
|
// Set the current tab to be loaded if it was not loaded before
|
|
57
57
|
setLoaded([...loaded, focusedRouteKey]);
|
|
58
58
|
}
|
|
59
|
+
const previousRouteKeyRef = React.useRef(focusedRouteKey);
|
|
59
60
|
const tabAnims = useAnimatedHashMap(state);
|
|
60
61
|
React.useEffect(() => {
|
|
62
|
+
const previousRouteKey = previousRouteKeyRef.current;
|
|
63
|
+
previousRouteKeyRef.current = focusedRouteKey;
|
|
61
64
|
const animateToIndex = () => {
|
|
62
65
|
Animated.parallel(state.routes.map((route, index) => {
|
|
63
66
|
const {
|
|
@@ -65,18 +68,25 @@ export function BottomTabView(props) {
|
|
|
65
68
|
} = descriptors[route.key];
|
|
66
69
|
const {
|
|
67
70
|
animation = 'none',
|
|
68
|
-
transitionSpec = NAMED_TRANSITIONS_PRESETS[animation].transitionSpec
|
|
71
|
+
transitionSpec = NAMED_TRANSITIONS_PRESETS[animation].transitionSpec
|
|
69
72
|
} = options;
|
|
73
|
+
let spec = transitionSpec;
|
|
74
|
+
if (route.key !== previousRouteKey && route.key !== focusedRouteKey) {
|
|
75
|
+
// Don't animate if the screen is not previous one or new one
|
|
76
|
+
// This will avoid flicker for screens not involved in the transition
|
|
77
|
+
spec = NAMED_TRANSITIONS_PRESETS.none.transitionSpec;
|
|
78
|
+
}
|
|
79
|
+
spec = spec ?? NAMED_TRANSITIONS_PRESETS.none.transitionSpec;
|
|
70
80
|
const toValue = index === state.index ? 0 : index >= state.index ? 1 : -1;
|
|
71
|
-
return Animated[
|
|
72
|
-
...
|
|
81
|
+
return Animated[spec.animation](tabAnims[route.key], {
|
|
82
|
+
...spec.config,
|
|
73
83
|
toValue,
|
|
74
84
|
useNativeDriver: true
|
|
75
85
|
});
|
|
76
86
|
}).filter(Boolean)).start();
|
|
77
87
|
};
|
|
78
88
|
animateToIndex();
|
|
79
|
-
}, [descriptors, state.index, state.routes, tabAnims]);
|
|
89
|
+
}, [descriptors, focusedRouteKey, state.index, state.routes, tabAnims]);
|
|
80
90
|
const dimensions = SafeAreaProviderCompat.initialMetrics.frame;
|
|
81
91
|
const [tabBarHeight, setTabBarHeight] = React.useState(() => getTabBarHeight({
|
|
82
92
|
state,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getHeaderTitle","Header","SafeAreaProviderCompat","Screen","React","Animated","Platform","StyleSheet","SafeAreaInsetsContext","FadeTransition","ShiftingTransition","BottomTabBarHeightCallbackContext","BottomTabBarHeightContext","useAnimatedHashMap","BottomTabBar","getTabBarHeight","MaybeScreen","MaybeScreenContainer","EPSILON","STATE_INACTIVE","STATE_TRANSITIONING_OR_BELOW_TOP","STATE_ON_TOP","NAMED_TRANSITIONS_PRESETS","fade","shifting","none","sceneStyleInterpolator","undefined","transitionSpec","animation","config","duration","hasAnimation","options","BottomTabView","props","tabBar","createElement","state","navigation","descriptors","safeAreaInsets","detachInactiveScreens","OS","sceneContainerStyle","focusedRouteKey","routes","index","key","loaded","setLoaded","useState","includes","tabAnims","useEffect","animateToIndex","parallel","map","route","toValue","useNativeDriver","filter","Boolean","start","dimensions","initialMetrics","frame","tabBarHeight","setTabBarHeight","layout","width","height","insets","style","tabBarStyle","renderTabBar","Consumer","top","right","bottom","left","hasTwoStates","some","tabBarPosition","styles","Provider","value","enabled","screens","descriptor","lazy","unmountOnBlur","isFocused","preloadedRouteKeys","freezeOnBlur","header","_ref","_extends","title","name","headerShown","headerStatusBarHeight","headerTransparent","sceneStyle","
|
|
1
|
+
{"version":3,"names":["getHeaderTitle","Header","SafeAreaProviderCompat","Screen","React","Animated","Platform","StyleSheet","SafeAreaInsetsContext","FadeTransition","ShiftingTransition","BottomTabBarHeightCallbackContext","BottomTabBarHeightContext","useAnimatedHashMap","BottomTabBar","getTabBarHeight","MaybeScreen","MaybeScreenContainer","EPSILON","STATE_INACTIVE","STATE_TRANSITIONING_OR_BELOW_TOP","STATE_ON_TOP","NAMED_TRANSITIONS_PRESETS","fade","shifting","none","sceneStyleInterpolator","undefined","transitionSpec","animation","config","duration","hasAnimation","options","BottomTabView","props","tabBar","createElement","state","navigation","descriptors","safeAreaInsets","detachInactiveScreens","OS","sceneContainerStyle","focusedRouteKey","routes","index","key","loaded","setLoaded","useState","includes","previousRouteKeyRef","useRef","tabAnims","useEffect","previousRouteKey","current","animateToIndex","parallel","map","route","spec","toValue","useNativeDriver","filter","Boolean","start","dimensions","initialMetrics","frame","tabBarHeight","setTabBarHeight","layout","width","height","insets","style","tabBarStyle","renderTabBar","Consumer","top","right","bottom","left","hasTwoStates","some","tabBarPosition","styles","Provider","value","enabled","screens","descriptor","lazy","unmountOnBlur","isFocused","preloadedRouteKeys","freezeOnBlur","header","_ref","_extends","title","name","headerShown","headerStatusBarHeight","headerTransparent","sceneStyle","progress","animationEnabled","activityState","interpolate","inputRange","outputRange","extrapolate","absoluteFill","zIndex","active","focused","render","create","flexDirection","flex","overflow"],"sourceRoot":"../../../src","sources":["views/BottomTabView.tsx"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomTabView.d.ts","sourceRoot":"","sources":["../../../../src/views/BottomTabView.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAEV,sBAAsB,EAEtB,yBAAyB,EACzB,0BAA0B,EAG3B,MAAM,UAAU,CAAC;AAOlB,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;AA6BF,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"BottomTabView.d.ts","sourceRoot":"","sources":["../../../../src/views/BottomTabView.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,KAAK,EAEV,sBAAsB,EAEtB,yBAAyB,EACzB,0BAA0B,EAG3B,MAAM,UAAU,CAAC;AAOlB,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;AA6BF,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,qBA+OzC"}
|
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": "7.0.0-alpha.
|
|
4
|
+
"version": "7.0.0-alpha.14",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-native-component",
|
|
7
7
|
"react-component",
|
|
@@ -73,5 +73,5 @@
|
|
|
73
73
|
]
|
|
74
74
|
]
|
|
75
75
|
},
|
|
76
|
-
"gitHead": "
|
|
76
|
+
"gitHead": "41e512edadf02033756a0c07750a8faedc12250a"
|
|
77
77
|
}
|
|
@@ -49,7 +49,7 @@ const NAMED_TRANSITIONS_PRESETS = {
|
|
|
49
49
|
sceneStyleInterpolator: undefined,
|
|
50
50
|
transitionSpec: {
|
|
51
51
|
animation: 'timing',
|
|
52
|
-
config: { duration:
|
|
52
|
+
config: { duration: 0 },
|
|
53
53
|
},
|
|
54
54
|
},
|
|
55
55
|
} as const;
|
|
@@ -89,9 +89,14 @@ export function BottomTabView(props: Props) {
|
|
|
89
89
|
setLoaded([...loaded, focusedRouteKey]);
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
+
const previousRouteKeyRef = React.useRef(focusedRouteKey);
|
|
92
93
|
const tabAnims = useAnimatedHashMap(state);
|
|
93
94
|
|
|
94
95
|
React.useEffect(() => {
|
|
96
|
+
const previousRouteKey = previousRouteKeyRef.current;
|
|
97
|
+
|
|
98
|
+
previousRouteKeyRef.current = focusedRouteKey;
|
|
99
|
+
|
|
95
100
|
const animateToIndex = () => {
|
|
96
101
|
Animated.parallel(
|
|
97
102
|
state.routes
|
|
@@ -100,15 +105,27 @@ export function BottomTabView(props: Props) {
|
|
|
100
105
|
const {
|
|
101
106
|
animation = 'none',
|
|
102
107
|
transitionSpec = NAMED_TRANSITIONS_PRESETS[animation]
|
|
103
|
-
.transitionSpec
|
|
104
|
-
NAMED_TRANSITIONS_PRESETS.none.transitionSpec,
|
|
108
|
+
.transitionSpec,
|
|
105
109
|
} = options;
|
|
106
110
|
|
|
111
|
+
let spec = transitionSpec;
|
|
112
|
+
|
|
113
|
+
if (
|
|
114
|
+
route.key !== previousRouteKey &&
|
|
115
|
+
route.key !== focusedRouteKey
|
|
116
|
+
) {
|
|
117
|
+
// Don't animate if the screen is not previous one or new one
|
|
118
|
+
// This will avoid flicker for screens not involved in the transition
|
|
119
|
+
spec = NAMED_TRANSITIONS_PRESETS.none.transitionSpec;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
spec = spec ?? NAMED_TRANSITIONS_PRESETS.none.transitionSpec;
|
|
123
|
+
|
|
107
124
|
const toValue =
|
|
108
125
|
index === state.index ? 0 : index >= state.index ? 1 : -1;
|
|
109
126
|
|
|
110
|
-
return Animated[
|
|
111
|
-
...
|
|
127
|
+
return Animated[spec.animation](tabAnims[route.key], {
|
|
128
|
+
...spec.config,
|
|
112
129
|
toValue,
|
|
113
130
|
useNativeDriver: true,
|
|
114
131
|
});
|
|
@@ -118,7 +135,7 @@ export function BottomTabView(props: Props) {
|
|
|
118
135
|
};
|
|
119
136
|
|
|
120
137
|
animateToIndex();
|
|
121
|
-
}, [descriptors, state.index, state.routes, tabAnims]);
|
|
138
|
+
}, [descriptors, focusedRouteKey, state.index, state.routes, tabAnims]);
|
|
122
139
|
|
|
123
140
|
const dimensions = SafeAreaProviderCompat.initialMetrics.frame;
|
|
124
141
|
const [tabBarHeight, setTabBarHeight] = React.useState(() =>
|