@react-navigation/bottom-tabs 7.0.0-alpha.1 → 7.0.0-alpha.3

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 (59) hide show
  1. package/lib/commonjs/TransitionConfigs/SceneStyleInterpolators.js +47 -0
  2. package/lib/commonjs/TransitionConfigs/SceneStyleInterpolators.js.map +1 -0
  3. package/lib/commonjs/TransitionConfigs/TransitionPresets.js +19 -0
  4. package/lib/commonjs/TransitionConfigs/TransitionPresets.js.map +1 -0
  5. package/lib/commonjs/TransitionConfigs/TransitionSpecs.js +24 -0
  6. package/lib/commonjs/TransitionConfigs/TransitionSpecs.js.map +1 -0
  7. package/lib/commonjs/index.js +9 -0
  8. package/lib/commonjs/index.js.map +1 -1
  9. package/lib/commonjs/utils/useAnimatedHashMap.js +31 -0
  10. package/lib/commonjs/utils/useAnimatedHashMap.js.map +1 -0
  11. package/lib/commonjs/views/BottomTabView.js +74 -4
  12. package/lib/commonjs/views/BottomTabView.js.map +1 -1
  13. package/lib/commonjs/views/ScreenFallback.js +6 -8
  14. package/lib/commonjs/views/ScreenFallback.js.map +1 -1
  15. package/lib/module/TransitionConfigs/SceneStyleInterpolators.js +40 -0
  16. package/lib/module/TransitionConfigs/SceneStyleInterpolators.js.map +1 -0
  17. package/lib/module/TransitionConfigs/TransitionPresets.js +11 -0
  18. package/lib/module/TransitionConfigs/TransitionPresets.js.map +1 -0
  19. package/lib/module/TransitionConfigs/TransitionSpecs.js +16 -0
  20. package/lib/module/TransitionConfigs/TransitionSpecs.js.map +1 -0
  21. package/lib/module/index.js +9 -0
  22. package/lib/module/index.js.map +1 -1
  23. package/lib/module/utils/useAnimatedHashMap.js +23 -0
  24. package/lib/module/utils/useAnimatedHashMap.js.map +1 -0
  25. package/lib/module/views/BottomTabView.js +75 -5
  26. package/lib/module/views/BottomTabView.js.map +1 -1
  27. package/lib/module/views/ScreenFallback.js +6 -8
  28. package/lib/module/views/ScreenFallback.js.map +1 -1
  29. package/lib/typescript/src/TransitionConfigs/SceneStyleInterpolators.d.ts +10 -0
  30. package/lib/typescript/src/TransitionConfigs/SceneStyleInterpolators.d.ts.map +1 -0
  31. package/lib/typescript/src/TransitionConfigs/TransitionPresets.d.ts +4 -0
  32. package/lib/typescript/src/TransitionConfigs/TransitionPresets.d.ts.map +1 -0
  33. package/lib/typescript/src/TransitionConfigs/TransitionSpecs.d.ts +4 -0
  34. package/lib/typescript/src/TransitionConfigs/TransitionSpecs.d.ts.map +1 -0
  35. package/lib/typescript/src/index.d.ts +7 -0
  36. package/lib/typescript/src/index.d.ts.map +1 -1
  37. package/lib/typescript/src/navigators/createBottomTabNavigator.d.ts +0 -1
  38. package/lib/typescript/src/navigators/createBottomTabNavigator.d.ts.map +1 -1
  39. package/lib/typescript/src/types.d.ts +50 -0
  40. package/lib/typescript/src/types.d.ts.map +1 -1
  41. package/lib/typescript/src/utils/useAnimatedHashMap.d.ts +4 -0
  42. package/lib/typescript/src/utils/useAnimatedHashMap.d.ts.map +1 -0
  43. package/lib/typescript/src/views/Badge.d.ts +0 -1
  44. package/lib/typescript/src/views/Badge.d.ts.map +1 -1
  45. package/lib/typescript/src/views/BottomTabBar.d.ts +0 -1
  46. package/lib/typescript/src/views/BottomTabBar.d.ts.map +1 -1
  47. package/lib/typescript/src/views/BottomTabView.d.ts +0 -1
  48. package/lib/typescript/src/views/BottomTabView.d.ts.map +1 -1
  49. package/lib/typescript/src/views/ScreenFallback.d.ts +4 -4
  50. package/lib/typescript/src/views/ScreenFallback.d.ts.map +1 -1
  51. package/package.json +10 -10
  52. package/src/TransitionConfigs/SceneStyleInterpolators.tsx +44 -0
  53. package/src/TransitionConfigs/TransitionPresets.tsx +13 -0
  54. package/src/TransitionConfigs/TransitionSpecs.tsx +19 -0
  55. package/src/index.tsx +9 -0
  56. package/src/types.tsx +70 -0
  57. package/src/utils/useAnimatedHashMap.tsx +25 -0
  58. package/src/views/BottomTabView.tsx +93 -6
  59. package/src/views/ScreenFallback.tsx +6 -13
@@ -1,12 +1,28 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
2
  import { getHeaderTitle, Header, SafeAreaProviderCompat, Screen } from '@react-navigation/elements';
3
3
  import * as React from 'react';
4
- import { Platform, StyleSheet } from 'react-native';
4
+ import { Animated, Platform, StyleSheet } from 'react-native';
5
5
  import { SafeAreaInsetsContext } from 'react-native-safe-area-context';
6
6
  import { BottomTabBarHeightCallbackContext } from '../utils/BottomTabBarHeightCallbackContext';
7
7
  import { BottomTabBarHeightContext } from '../utils/BottomTabBarHeightContext';
8
+ import { useAnimatedHashMap } from '../utils/useAnimatedHashMap';
8
9
  import { BottomTabBar, getTabBarHeight } from './BottomTabBar';
9
10
  import { MaybeScreen, MaybeScreenContainer } from './ScreenFallback';
11
+ var CompositeAnimation = Animated.CompositeAnimation;
12
+ const EPSILON = 1e-5;
13
+ const STATE_INACTIVE = 0;
14
+ const STATE_TRANSITIONING_OR_BELOW_TOP = 1;
15
+ const STATE_ON_TOP = 2;
16
+ const hasAnimation = options => {
17
+ const {
18
+ animationEnabled,
19
+ transitionSpec
20
+ } = options;
21
+ if (animationEnabled === false || !transitionSpec) {
22
+ return false;
23
+ }
24
+ return true;
25
+ };
10
26
  export function BottomTabView(props) {
11
27
  const {
12
28
  tabBar = props => /*#__PURE__*/React.createElement(BottomTabBar, props),
@@ -18,10 +34,43 @@ export function BottomTabView(props) {
18
34
  sceneContainerStyle
19
35
  } = props;
20
36
  const focusedRouteKey = state.routes[state.index].key;
37
+
38
+ /**
39
+ * List of loaded tabs, tabs will be loaded when navigated to.
40
+ */
21
41
  const [loaded, setLoaded] = React.useState([focusedRouteKey]);
22
42
  if (!loaded.includes(focusedRouteKey)) {
43
+ // Set the current tab to be loaded if it was not loaded before
23
44
  setLoaded([...loaded, focusedRouteKey]);
24
45
  }
46
+ const tabAnims = useAnimatedHashMap(state);
47
+ React.useEffect(() => {
48
+ const animateToIndex = () => {
49
+ Animated.parallel(state.routes.map((route, index) => {
50
+ const {
51
+ options
52
+ } = descriptors[route.key];
53
+ const {
54
+ transitionSpec
55
+ } = options;
56
+ const animationEnabled = hasAnimation(options);
57
+ const toValue = index === state.index ? 0 : index >= state.index ? 1 : -1;
58
+ if (!animationEnabled || !transitionSpec) {
59
+ return Animated.timing(tabAnims[route.key], {
60
+ toValue,
61
+ duration: 0,
62
+ useNativeDriver: true
63
+ });
64
+ }
65
+ return Animated[transitionSpec.animation](tabAnims[route.key], {
66
+ ...transitionSpec.config,
67
+ toValue,
68
+ useNativeDriver: true
69
+ });
70
+ }).filter(Boolean)).start();
71
+ };
72
+ animateToIndex();
73
+ }, [descriptors, state.index, state.routes, tabAnims]);
25
74
  const dimensions = SafeAreaProviderCompat.initialMetrics.frame;
26
75
  const [tabBarHeight, setTabBarHeight] = React.useState(() => getTabBarHeight({
27
76
  state,
@@ -53,15 +102,19 @@ export function BottomTabView(props) {
53
102
  const {
54
103
  routes
55
104
  } = state;
105
+
106
+ // If there is no animation, we only have 2 states: visible and invisible
107
+ const hasTwoStates = !routes.some(route => hasAnimation(descriptors[route.key].options));
56
108
  return /*#__PURE__*/React.createElement(SafeAreaProviderCompat, null, /*#__PURE__*/React.createElement(MaybeScreenContainer, {
57
109
  enabled: detachInactiveScreens,
58
- hasTwoStates: true,
110
+ hasTwoStates: hasTwoStates,
59
111
  style: styles.container
60
112
  }, routes.map((route, index) => {
61
113
  const descriptor = descriptors[route.key];
62
114
  const {
63
115
  lazy = true,
64
- unmountOnBlur
116
+ unmountOnBlur,
117
+ sceneStyleInterpolator
65
118
  } = descriptor.options;
66
119
  const isFocused = state.index === index;
67
120
  if (unmountOnBlur && !isFocused) {
@@ -87,12 +140,29 @@ export function BottomTabView(props) {
87
140
  headerStatusBarHeight,
88
141
  headerTransparent
89
142
  } = descriptor.options;
143
+ const {
144
+ sceneStyle
145
+ } = (sceneStyleInterpolator === null || sceneStyleInterpolator === void 0 ? void 0 : sceneStyleInterpolator({
146
+ current: tabAnims[route.key]
147
+ })) ?? {};
148
+ const animationEnabled = hasAnimation(descriptor.options);
149
+ const activityState = isFocused ? STATE_ON_TOP // the screen is on top after the transition
150
+ : animationEnabled // is animation is not enabled, immediately move to inactive state
151
+ ? tabAnims[route.key].interpolate({
152
+ inputRange: [0, 1 - EPSILON, 1],
153
+ outputRange: [STATE_TRANSITIONING_OR_BELOW_TOP,
154
+ // screen visible during transition
155
+ STATE_TRANSITIONING_OR_BELOW_TOP, STATE_INACTIVE // the screen is detached after transition
156
+ ],
157
+
158
+ extrapolate: 'extend'
159
+ }) : STATE_INACTIVE;
90
160
  return /*#__PURE__*/React.createElement(MaybeScreen, {
91
161
  key: route.key,
92
162
  style: [StyleSheet.absoluteFill, {
93
163
  zIndex: isFocused ? 0 : -1
94
164
  }],
95
- visible: isFocused,
165
+ active: activityState,
96
166
  enabled: detachInactiveScreens,
97
167
  freezeOnBlur: freezeOnBlur
98
168
  }, /*#__PURE__*/React.createElement(BottomTabBarHeightContext.Provider, {
@@ -110,7 +180,7 @@ export function BottomTabView(props) {
110
180
  navigation: descriptor.navigation,
111
181
  options: descriptor.options
112
182
  }),
113
- style: sceneContainerStyle
183
+ style: [sceneContainerStyle, animationEnabled && sceneStyle]
114
184
  }, descriptor.render())));
115
185
  })), /*#__PURE__*/React.createElement(BottomTabBarHeightCallbackContext.Provider, {
116
186
  value: setTabBarHeight
@@ -1 +1 @@
1
- {"version":3,"names":["getHeaderTitle","Header","SafeAreaProviderCompat","Screen","React","Platform","StyleSheet","SafeAreaInsetsContext","BottomTabBarHeightCallbackContext","BottomTabBarHeightContext","BottomTabBar","getTabBarHeight","MaybeScreen","MaybeScreenContainer","BottomTabView","props","tabBar","state","navigation","descriptors","safeAreaInsets","detachInactiveScreens","OS","sceneContainerStyle","focusedRouteKey","routes","index","key","loaded","setLoaded","useState","includes","dimensions","initialMetrics","frame","tabBarHeight","setTabBarHeight","layout","width","height","insets","style","options","tabBarStyle","renderTabBar","top","right","bottom","left","styles","container","map","route","descriptor","lazy","unmountOnBlur","isFocused","freezeOnBlur","header","name","headerShown","headerStatusBarHeight","headerTransparent","absoluteFill","zIndex","render","create","flex","overflow"],"sourceRoot":"../../../src","sources":["views/BottomTabView.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["getHeaderTitle","Header","SafeAreaProviderCompat","Screen","React","Animated","Platform","StyleSheet","SafeAreaInsetsContext","BottomTabBarHeightCallbackContext","BottomTabBarHeightContext","useAnimatedHashMap","BottomTabBar","getTabBarHeight","MaybeScreen","MaybeScreenContainer","CompositeAnimation","EPSILON","STATE_INACTIVE","STATE_TRANSITIONING_OR_BELOW_TOP","STATE_ON_TOP","hasAnimation","options","animationEnabled","transitionSpec","BottomTabView","props","tabBar","state","navigation","descriptors","safeAreaInsets","detachInactiveScreens","OS","sceneContainerStyle","focusedRouteKey","routes","index","key","loaded","setLoaded","useState","includes","tabAnims","useEffect","animateToIndex","parallel","map","route","toValue","timing","duration","useNativeDriver","animation","config","filter","Boolean","start","dimensions","initialMetrics","frame","tabBarHeight","setTabBarHeight","layout","width","height","insets","style","tabBarStyle","renderTabBar","top","right","bottom","left","hasTwoStates","some","styles","container","descriptor","lazy","unmountOnBlur","sceneStyleInterpolator","isFocused","freezeOnBlur","header","name","headerShown","headerStatusBarHeight","headerTransparent","sceneStyle","current","activityState","interpolate","inputRange","outputRange","extrapolate","absoluteFill","zIndex","render","create","flex","overflow"],"sourceRoot":"../../../src","sources":["views/BottomTabView.tsx"],"mappings":";AAAA,SACEA,cAAc,EACdC,MAAM,EACNC,sBAAsB,EACtBC,MAAM,QACD,4BAA4B;AAKnC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,UAAU,QAAQ,cAAc;AAC7D,SAASC,qBAAqB,QAAQ,gCAAgC;AAWtE,SAASC,iCAAiC,QAAQ,4CAA4C;AAC9F,SAASC,yBAAyB,QAAQ,oCAAoC;AAC9E,SAASC,kBAAkB,QAAQ,6BAA6B;AAChE,SAASC,YAAY,EAAEC,eAAe,QAAQ,gBAAgB;AAC9D,SAASC,WAAW,EAAEC,oBAAoB,QAAQ,kBAAkB;AAAC,IAC9DC,kBAAkB,GAAGX,QAAQ,CAACW,kBAAkB;AAQvD,MAAMC,OAAO,GAAG,IAAI;AACpB,MAAMC,cAAc,GAAG,CAAC;AACxB,MAAMC,gCAAgC,GAAG,CAAC;AAC1C,MAAMC,YAAY,GAAG,CAAC;AAEtB,MAAMC,YAAY,GAAIC,OAAmC,IAAK;EAC5D,MAAM;IAAEC,gBAAgB;IAAEC;EAAe,CAAC,GAAGF,OAAO;EAEpD,IAAIC,gBAAgB,KAAK,KAAK,IAAI,CAACC,cAAc,EAAE;IACjD,OAAO,KAAK;EACd;EAEA,OAAO,IAAI;AACb,CAAC;AAED,OAAO,SAASC,aAAa,CAACC,KAAY,EAAE;EAC1C,MAAM;IACJC,MAAM,GAAID,KAAwB,iBAAK,oBAAC,YAAY,EAAKA,KAAK,CAAI;IAClEE,KAAK;IACLC,UAAU;IACVC,WAAW;IACXC,cAAc;IACdC,qBAAqB,GAAG1B,QAAQ,CAAC2B,EAAE,KAAK,KAAK,IAC3C3B,QAAQ,CAAC2B,EAAE,KAAK,SAAS,IACzB3B,QAAQ,CAAC2B,EAAE,KAAK,KAAK;IACvBC;EACF,CAAC,GAAGR,KAAK;EACT,MAAMS,eAAe,GAAGP,KAAK,CAACQ,MAAM,CAACR,KAAK,CAACS,KAAK,CAAC,CAACC,GAAG;;EAErD;AACF;AACA;EACE,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGpC,KAAK,CAACqC,QAAQ,CAAC,CAACN,eAAe,CAAC,CAAC;EAE7D,IAAI,CAACI,MAAM,CAACG,QAAQ,CAACP,eAAe,CAAC,EAAE;IACrC;IACAK,SAAS,CAAC,CAAC,GAAGD,MAAM,EAAEJ,eAAe,CAAC,CAAC;EACzC;EAEA,MAAMQ,QAAQ,GAAGhC,kBAAkB,CAACiB,KAAK,CAAC;EAE1CxB,KAAK,CAACwC,SAAS,CAAC,MAAM;IACpB,MAAMC,cAAc,GAAG,MAAM;MAC3BxC,QAAQ,CAACyC,QAAQ,CACflB,KAAK,CAACQ,MAAM,CACTW,GAAG,CAAC,CAACC,KAAK,EAAEX,KAAK,KAAK;QACrB,MAAM;UAAEf;QAAQ,CAAC,GAAGQ,WAAW,CAACkB,KAAK,CAACV,GAAG,CAAC;QAC1C,MAAM;UAAEd;QAAe,CAAC,GAAGF,OAAO;QAElC,MAAMC,gBAAgB,GAAGF,YAAY,CAACC,OAAO,CAAC;QAE9C,MAAM2B,OAAO,GACXZ,KAAK,KAAKT,KAAK,CAACS,KAAK,GAAG,CAAC,GAAGA,KAAK,IAAIT,KAAK,CAACS,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAE3D,IAAI,CAACd,gBAAgB,IAAI,CAACC,cAAc,EAAE;UACxC,OAAOnB,QAAQ,CAAC6C,MAAM,CAACP,QAAQ,CAACK,KAAK,CAACV,GAAG,CAAC,EAAE;YAC1CW,OAAO;YACPE,QAAQ,EAAE,CAAC;YACXC,eAAe,EAAE;UACnB,CAAC,CAAC;QACJ;QAEA,OAAO/C,QAAQ,CAACmB,cAAc,CAAC6B,SAAS,CAAC,CAACV,QAAQ,CAACK,KAAK,CAACV,GAAG,CAAC,EAAE;UAC7D,GAAGd,cAAc,CAAC8B,MAAM;UACxBL,OAAO;UACPG,eAAe,EAAE;QACnB,CAAC,CAAC;MACJ,CAAC,CAAC,CACDG,MAAM,CAACC,OAAO,CAAC,CACnB,CAACC,KAAK,EAAE;IACX,CAAC;IAEDZ,cAAc,EAAE;EAClB,CAAC,EAAE,CAACf,WAAW,EAAEF,KAAK,CAACS,KAAK,EAAET,KAAK,CAACQ,MAAM,EAAEO,QAAQ,CAAC,CAAC;EAEtD,MAAMe,UAAU,GAAGxD,sBAAsB,CAACyD,cAAc,CAACC,KAAK;EAC9D,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG1D,KAAK,CAACqC,QAAQ,CAAC,MACrD5B,eAAe,CAAC;IACde,KAAK;IACLE,WAAW;IACX4B,UAAU;IACVK,MAAM,EAAE;MAAEC,KAAK,EAAEN,UAAU,CAACM,KAAK;MAAEC,MAAM,EAAE;IAAE,CAAC;IAC9CC,MAAM,EAAE;MACN,GAAGhE,sBAAsB,CAACyD,cAAc,CAACO,MAAM;MAC/C,GAAGxC,KAAK,CAACK;IACX,CAAC;IACDoC,KAAK,EAAErC,WAAW,CAACF,KAAK,CAACQ,MAAM,CAACR,KAAK,CAACS,KAAK,CAAC,CAACC,GAAG,CAAC,CAAChB,OAAO,CAAC8C;EAC5D,CAAC,CAAC,CACH;EAED,MAAMC,YAAY,GAAG,MAAM;IACzB,oBACE,oBAAC,qBAAqB,CAAC,QAAQ,QAC3BH,MAAM,IACNvC,MAAM,CAAC;MACLC,KAAK,EAAEA,KAAK;MACZE,WAAW,EAAEA,WAAW;MACxBD,UAAU,EAAEA,UAAU;MACtBqC,MAAM,EAAE;QACNI,GAAG,EAAE,CAAAvC,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEuC,GAAG,MAAIJ,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEI,GAAG,KAAI,CAAC;QAC5CC,KAAK,EAAE,CAAAxC,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEwC,KAAK,MAAIL,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEK,KAAK,KAAI,CAAC;QAClDC,MAAM,EAAE,CAAAzC,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEyC,MAAM,MAAIN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEM,MAAM,KAAI,CAAC;QACrDC,IAAI,EAAE,CAAA1C,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAE0C,IAAI,MAAIP,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEO,IAAI,KAAI;MAChD;IACF,CAAC,CAAC,CAE2B;EAErC,CAAC;EAED,MAAM;IAAErC;EAAO,CAAC,GAAGR,KAAK;;EAExB;EACA,MAAM8C,YAAY,GAAG,CAACtC,MAAM,CAACuC,IAAI,CAAE3B,KAAK,IACtC3B,YAAY,CAACS,WAAW,CAACkB,KAAK,CAACV,GAAG,CAAC,CAAChB,OAAO,CAAC,CAC7C;EAED,oBACE,oBAAC,sBAAsB,qBACrB,oBAAC,oBAAoB;IACnB,OAAO,EAAEU,qBAAsB;IAC/B,YAAY,EAAE0C,YAAa;IAC3B,KAAK,EAAEE,MAAM,CAACC;EAAU,GAEvBzC,MAAM,CAACW,GAAG,CAAC,CAACC,KAAK,EAAEX,KAAK,KAAK;IAC5B,MAAMyC,UAAU,GAAGhD,WAAW,CAACkB,KAAK,CAACV,GAAG,CAAC;IACzC,MAAM;MACJyC,IAAI,GAAG,IAAI;MACXC,aAAa;MACbC;IACF,CAAC,GAAGH,UAAU,CAACxD,OAAO;IACtB,MAAM4D,SAAS,GAAGtD,KAAK,CAACS,KAAK,KAAKA,KAAK;IAEvC,IAAI2C,aAAa,IAAI,CAACE,SAAS,EAAE;MAC/B,OAAO,IAAI;IACb;IAEA,IAAIH,IAAI,IAAI,CAACxC,MAAM,CAACG,QAAQ,CAACM,KAAK,CAACV,GAAG,CAAC,IAAI,CAAC4C,SAAS,EAAE;MACrD;MACA,OAAO,IAAI;IACb;IAEA,MAAM;MACJC,YAAY;MACZC,MAAM,GAAG;QAAA,IAAC;UAAErB,MAAM;UAAEzC;QAA8B,CAAC;QAAA,oBACjD,oBAAC,MAAM,eACDA,OAAO;UACX,MAAM,EAAEyC,MAAO;UACf,KAAK,EAAE/D,cAAc,CAACsB,OAAO,EAAE0B,KAAK,CAACqC,IAAI;QAAE,GAC3C;MAAA,CACH;MACDC,WAAW;MACXC,qBAAqB;MACrBC;IACF,CAAC,GAAGV,UAAU,CAACxD,OAAO;IAEtB,MAAM;MAAEmE;IAAW,CAAC,GAClB,CAAAR,sBAAsB,aAAtBA,sBAAsB,uBAAtBA,sBAAsB,CAAG;MACvBS,OAAO,EAAE/C,QAAQ,CAACK,KAAK,CAACV,GAAG;IAC7B,CAAC,CAAC,KAAI,CAAC,CAAC;IAEV,MAAMf,gBAAgB,GAAGF,YAAY,CAACyD,UAAU,CAACxD,OAAO,CAAC;IACzD,MAAMqE,aAAa,GAAGT,SAAS,GAC3B9D,YAAY,CAAC;IAAA,EACbG,gBAAgB,CAAC;IAAA,EACjBoB,QAAQ,CAACK,KAAK,CAACV,GAAG,CAAC,CAACsD,WAAW,CAAC;MAC9BC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG5E,OAAO,EAAE,CAAC,CAAC;MAC/B6E,WAAW,EAAE,CACX3E,gCAAgC;MAAE;MAClCA,gCAAgC,EAChCD,cAAc,CAAE;MAAA,CACjB;;MACD6E,WAAW,EAAE;IACf,CAAC,CAAC,GACF7E,cAAc;IAElB,oBACE,oBAAC,WAAW;MACV,GAAG,EAAE8B,KAAK,CAACV,GAAI;MACf,KAAK,EAAE,CAAC/B,UAAU,CAACyF,YAAY,EAAE;QAAEC,MAAM,EAAEf,SAAS,GAAG,CAAC,GAAG,CAAC;MAAE,CAAC,CAAE;MACjE,MAAM,EAAES,aAAc;MACtB,OAAO,EAAE3D,qBAAsB;MAC/B,YAAY,EAAEmD;IAAa,gBAE3B,oBAAC,yBAAyB,CAAC,QAAQ;MAAC,KAAK,EAAEtB;IAAa,gBACtD,oBAAC,MAAM;MACL,OAAO,EAAEqB,SAAU;MACnB,KAAK,EAAEJ,UAAU,CAAC9B,KAAM;MACxB,UAAU,EAAE8B,UAAU,CAACjD,UAAW;MAClC,WAAW,EAAEyD,WAAY;MACzB,qBAAqB,EAAEC,qBAAsB;MAC7C,iBAAiB,EAAEC,iBAAkB;MACrC,MAAM,EAAEJ,MAAM,CAAC;QACbrB,MAAM,EAAEL,UAAU;QAClBV,KAAK,EAAE8B,UAAU,CAAC9B,KAAK;QACvBnB,UAAU,EACRiD,UAAU,CAACjD,UAAoD;QACjEP,OAAO,EAAEwD,UAAU,CAACxD;MACtB,CAAC,CAAE;MACH,KAAK,EAAE,CAACY,mBAAmB,EAAEX,gBAAgB,IAAIkE,UAAU;IAAE,GAE5DX,UAAU,CAACoB,MAAM,EAAE,CACb,CAC0B,CACzB;EAElB,CAAC,CAAC,CACmB,eACvB,oBAAC,iCAAiC,CAAC,QAAQ;IAAC,KAAK,EAAEpC;EAAgB,GAChEO,YAAY,EAAE,CAC4B,CACtB;AAE7B;AAEA,MAAMO,MAAM,GAAGrE,UAAU,CAAC4F,MAAM,CAAC;EAC/BtB,SAAS,EAAE;IACTuB,IAAI,EAAE,CAAC;IACPC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC"}
@@ -1,5 +1,4 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
- import { ResourceSavingView } from '@react-navigation/elements';
3
2
  import * as React from 'react';
4
3
  import { View } from 'react-native';
5
4
  let Screens;
@@ -24,17 +23,16 @@ export const MaybeScreenContainer = _ref => {
24
23
  export function MaybeScreen(_ref2) {
25
24
  var _Screens2, _Screens2$screensEnab;
26
25
  let {
27
- visible,
28
- children,
26
+ enabled,
27
+ active,
29
28
  ...rest
30
29
  } = _ref2;
31
30
  if ((_Screens2 = Screens) !== null && _Screens2 !== void 0 && (_Screens2$screensEnab = _Screens2.screensEnabled) !== null && _Screens2$screensEnab !== void 0 && _Screens2$screensEnab.call(_Screens2)) {
32
31
  return /*#__PURE__*/React.createElement(Screens.Screen, _extends({
33
- activityState: visible ? 2 : 0
34
- }, rest), children);
32
+ enabled: enabled,
33
+ activityState: active
34
+ }, rest));
35
35
  }
36
- return /*#__PURE__*/React.createElement(ResourceSavingView, _extends({
37
- visible: visible
38
- }, rest), children);
36
+ return /*#__PURE__*/React.createElement(View, rest);
39
37
  }
40
38
  //# sourceMappingURL=ScreenFallback.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["ResourceSavingView","React","View","Screens","require","e","MaybeScreenContainer","enabled","rest","screensEnabled","MaybeScreen","visible","children"],"sourceRoot":"../../../src","sources":["views/ScreenFallback.tsx"],"mappings":";AAAA,SAASA,kBAAkB,QAAQ,4BAA4B;AAC/D,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAAoBC,IAAI,QAA8B,cAAc;AAUpE,IAAIC,OAA0D;AAE9D,IAAI;EACFA,OAAO,GAAGC,OAAO,CAAC,sBAAsB,CAAC;AAC3C,CAAC,CAAC,OAAOC,CAAC,EAAE;EACV;AAAA;AAGF,OAAO,MAAMC,oBAAoB,GAAG,QAO9B;EAAA;EAAA,IAP+B;IACnCC,OAAO;IACP,GAAGC;EAKL,CAAC;EACC,gBAAIL,OAAO,8DAAP,SAASM,cAAc,kDAAvB,oCAA2B,EAAE;IAC/B,oBAAO,oBAAC,OAAO,CAAC,eAAe;MAAC,OAAO,EAAEF;IAAQ,GAAKC,IAAI,EAAI;EAChE;EAEA,oBAAO,oBAAC,IAAI,EAAKA,IAAI,CAAI;AAC3B,CAAC;AAED,OAAO,SAASE,WAAW,QAAwC;EAAA;EAAA,IAAvC;IAAEC,OAAO;IAAEC,QAAQ;IAAE,GAAGJ;EAAY,CAAC;EAC/D,iBAAIL,OAAO,+DAAP,UAASM,cAAc,kDAAvB,qCAA2B,EAAE;IAC/B,oBACE,oBAAC,OAAO,CAAC,MAAM;MAAC,aAAa,EAAEE,OAAO,GAAG,CAAC,GAAG;IAAE,GAAKH,IAAI,GACrDI,QAAQ,CACM;EAErB;EAEA,oBACE,oBAAC,kBAAkB;IAAC,OAAO,EAAED;EAAQ,GAAKH,IAAI,GAC3CI,QAAQ,CACU;AAEzB"}
1
+ {"version":3,"names":["React","View","Screens","require","e","MaybeScreenContainer","enabled","rest","screensEnabled","MaybeScreen","active"],"sourceRoot":"../../../src","sources":["views/ScreenFallback.tsx"],"mappings":";AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAA8BC,IAAI,QAA8B,cAAc;AAU9E,IAAIC,OAA0D;AAE9D,IAAI;EACFA,OAAO,GAAGC,OAAO,CAAC,sBAAsB,CAAC;AAC3C,CAAC,CAAC,OAAOC,CAAC,EAAE;EACV;AAAA;AAGF,OAAO,MAAMC,oBAAoB,GAAG,QAO9B;EAAA;EAAA,IAP+B;IACnCC,OAAO;IACP,GAAGC;EAKL,CAAC;EACC,gBAAIL,OAAO,8DAAP,SAASM,cAAc,kDAAvB,oCAA2B,EAAE;IAC/B,oBAAO,oBAAC,OAAO,CAAC,eAAe;MAAC,OAAO,EAAEF;IAAQ,GAAKC,IAAI,EAAI;EAChE;EAEA,oBAAO,oBAAC,IAAI,EAAKA,IAAI,CAAI;AAC3B,CAAC;AAED,OAAO,SAASE,WAAW,QAAkD;EAAA;EAAA,IAAjD;IAAEH,OAAO;IAAEI,MAAM;IAAE,GAAGH;EAAwB,CAAC;EACzE,iBAAIL,OAAO,+DAAP,UAASM,cAAc,kDAAvB,qCAA2B,EAAE;IAC/B,oBACE,oBAAC,OAAO,CAAC,MAAM;MAAC,OAAO,EAAEF,OAAQ;MAAC,aAAa,EAAEI;IAAO,GAAKH,IAAI,EAAI;EAEzE;EAEA,oBAAO,oBAAC,IAAI,EAAKA,IAAI,CAAI;AAC3B"}
@@ -0,0 +1,10 @@
1
+ import type { BottomTabSceneInterpolatedStyle, BottomTabSceneInterpolationProps } from '../types';
2
+ /**
3
+ * Simple cross fade animation
4
+ */
5
+ export declare function forCrossFade({ current, }: BottomTabSceneInterpolationProps): BottomTabSceneInterpolatedStyle;
6
+ /**
7
+ * Animation where the screens slightly shift to left/right
8
+ */
9
+ export declare function forShifting({ current, }: BottomTabSceneInterpolationProps): BottomTabSceneInterpolatedStyle;
10
+ //# sourceMappingURL=SceneStyleInterpolators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneStyleInterpolators.d.ts","sourceRoot":"","sources":["../../../../src/TransitionConfigs/SceneStyleInterpolators.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,gCAAgC,EACjC,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAC3B,OAAO,GACR,EAAE,gCAAgC,GAAG,+BAA+B,CASpE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,GACR,EAAE,gCAAgC,GAAG,+BAA+B,CAiBpE"}
@@ -0,0 +1,4 @@
1
+ import type { BottomTabTransitionPreset } from '../types';
2
+ export declare const FadeTransition: BottomTabTransitionPreset;
3
+ export declare const ShiftingTransition: BottomTabTransitionPreset;
4
+ //# sourceMappingURL=TransitionPresets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransitionPresets.d.ts","sourceRoot":"","sources":["../../../../src/TransitionConfigs/TransitionPresets.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAI1D,eAAO,MAAM,cAAc,EAAE,yBAG5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,yBAGhC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { TransitionSpec } from '../types';
2
+ export declare const CrossFadeSpec: TransitionSpec;
3
+ export declare const ShiftingSpec: TransitionSpec;
4
+ //# sourceMappingURL=TransitionSpecs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransitionSpecs.d.ts","sourceRoot":"","sources":["../../../../src/TransitionConfigs/TransitionSpecs.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,eAAO,MAAM,aAAa,EAAE,cAM3B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,cAM1B,CAAC"}
@@ -1,3 +1,10 @@
1
+ import * as SceneStyleInterpolator from './TransitionConfigs/SceneStyleInterpolators';
2
+ import * as TransitionPresets from './TransitionConfigs/TransitionPresets';
3
+ import * as TransitionSpecs from './TransitionConfigs/TransitionSpecs';
4
+ /**
5
+ * Transition Presets
6
+ */
7
+ export { SceneStyleInterpolator, TransitionPresets, TransitionSpecs };
1
8
  /**
2
9
  * Navigators
3
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;GAEG;AACH,OAAO,EAAE,iCAAiC,EAAE,MAAM,2CAA2C,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE;;GAEG;AACH,YAAY,EACV,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,sBAAsB,MAAM,6CAA6C,CAAC;AACtF,OAAO,KAAK,iBAAiB,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,eAAe,MAAM,qCAAqC,CAAC;AAEvE;;GAEG;AACH,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC;AAEtE;;GAEG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD;;GAEG;AACH,OAAO,EAAE,iCAAiC,EAAE,MAAM,2CAA2C,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE;;GAEG;AACH,YAAY,EACV,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,2BAA2B,EAC3B,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { DefaultNavigatorOptions, ParamListBase, TabNavigationState, TabRouterOptions } from '@react-navigation/native';
3
2
  import type { BottomTabNavigationConfig, BottomTabNavigationEventMap, BottomTabNavigationOptions } from '../types';
4
3
  type Props = DefaultNavigatorOptions<ParamListBase, TabNavigationState<ParamListBase>, BottomTabNavigationOptions, BottomTabNavigationEventMap> & TabRouterOptions & BottomTabNavigationConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"createBottomTabNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigators/createBottomTabNavigator.tsx"],"names":[],"mappings":";AAAA,OAAO,EAEL,uBAAuB,EACvB,aAAa,EAEb,kBAAkB,EAElB,gBAAgB,EAEjB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,UAAU,CAAC;AAGlB,KAAK,KAAK,GAAG,uBAAuB,CAClC,aAAa,EACb,kBAAkB,CAAC,aAAa,CAAC,EACjC,0BAA0B,EAC1B,2BAA2B,CAC5B,GACC,gBAAgB,GAChB,yBAAyB,CAAC;AAE5B,iBAAS,kBAAkB,CAAC,EAC1B,EAAE,EACF,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,GAAG,IAAI,EACR,EAAE,KAAK,eA4BP;AAED,eAAO,MAAM,wBAAwB;;;;;CAKhB,CAAC"}
1
+ {"version":3,"file":"createBottomTabNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigators/createBottomTabNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,uBAAuB,EACvB,aAAa,EAEb,kBAAkB,EAElB,gBAAgB,EAEjB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EACV,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,EAC3B,MAAM,UAAU,CAAC;AAGlB,KAAK,KAAK,GAAG,uBAAuB,CAClC,aAAa,EACb,kBAAkB,CAAC,aAAa,CAAC,EACjC,0BAA0B,EAC1B,2BAA2B,CAC5B,GACC,gBAAgB,GAChB,yBAAyB,CAAC;AAE5B,iBAAS,kBAAkB,CAAC,EAC1B,EAAE,EACF,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,GAAG,IAAI,EACR,EAAE,KAAK,eA4BP;AAED,eAAO,MAAM,wBAAwB;;;;;CAKhB,CAAC"}
@@ -181,9 +181,59 @@ export type BottomTabNavigationOptions = HeaderOptions & {
181
181
  * Only supported on iOS and Android.
182
182
  */
183
183
  freezeOnBlur?: boolean;
184
+ /**
185
+ * Whether transition animations should be enabled when switching tabs.
186
+ * Defaults to `false`.
187
+ */
188
+ animationEnabled?: boolean;
189
+ /**
190
+ * Function which specifies interpolated styles for bottom-tab scenes.
191
+ */
192
+ sceneStyleInterpolator?: BottomTabSceneStyleInterpolator;
193
+ /**
194
+ * Object which specifies the animation type (timing or spring) and their options (such as duration for timing).
195
+ */
196
+ transitionSpec?: TransitionSpec;
184
197
  };
185
198
  export type BottomTabDescriptor = Descriptor<BottomTabNavigationOptions, BottomTabNavigationProp<ParamListBase>, RouteProp<ParamListBase>>;
186
199
  export type BottomTabDescriptorMap = Record<string, BottomTabDescriptor>;
200
+ export type BottomTabSceneInterpolationProps = {
201
+ /**
202
+ * Animated value for the current screen:
203
+ * - -1 if the index is lower than active tab,
204
+ * - 0 if they're active,
205
+ * - 1 if the index is higher than active tab
206
+ */
207
+ current: Animated.Value;
208
+ };
209
+ export type BottomTabSceneInterpolatedStyle = {
210
+ /**
211
+ * Interpolated style for the view representing the scene containing screen content.
212
+ */
213
+ sceneStyle: Animated.WithAnimatedValue<StyleProp<ViewStyle>>;
214
+ };
215
+ export type BottomTabSceneStyleInterpolator = (props: BottomTabSceneInterpolationProps) => BottomTabSceneInterpolatedStyle;
216
+ export type TransitionSpec = {
217
+ animation: 'timing';
218
+ config: Omit<Animated.TimingAnimationConfig, 'toValue' | keyof Animated.AnimationConfig>;
219
+ } | {
220
+ animation: 'spring';
221
+ config: Omit<Animated.SpringAnimationConfig, 'toValue' | keyof Animated.AnimationConfig>;
222
+ };
223
+ export type BottomTabTransitionPreset = {
224
+ /**
225
+ * Whether transition animations should be enabled when switching tabs.
226
+ */
227
+ animationEnabled?: boolean;
228
+ /**
229
+ * Function which specifies interpolated styles for bottom-tab scenes.
230
+ */
231
+ sceneStyleInterpolator?: BottomTabSceneStyleInterpolator;
232
+ /**
233
+ * Object which specifies the animation type (timing or spring) and their options (such as duration for timing).
234
+ */
235
+ transitionSpec?: TransitionSpec;
236
+ };
187
237
  export type BottomTabNavigationConfig = {
188
238
  /**
189
239
  * Function that returns a React element to display as the tab bar.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { NavigationState } from '@react-navigation/routers';
2
+ import { Animated } from 'react-native';
3
+ export declare function useAnimatedHashMap({ routes, index }: NavigationState): Record<string, Animated.Value>;
4
+ //# sourceMappingURL=useAnimatedHashMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAnimatedHashMap.d.ts","sourceRoot":"","sources":["../../../../src/utils/useAnimatedHashMap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,wBAAgB,kBAAkB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,eAAe,kCAoBpE"}
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { Animated, StyleProp, TextStyle } from 'react-native';
3
2
  type Props = {
4
3
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../../src/views/Badge.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAc,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1E,KAAK,KAAK,GAAG;IACX;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,wBAAgB,KAAK,CAAC,EACpB,QAAQ,EACR,KAAK,EACL,OAAc,EACd,IAAS,EACT,GAAG,IAAI,EACR,EAAE,KAAK,sBAuEP"}
1
+ {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../../src/views/Badge.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAc,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1E,KAAK,KAAK,GAAG;IACX;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,wBAAgB,KAAK,CAAC,EACpB,QAAQ,EACR,KAAK,EACL,OAAc,EACd,IAAS,EACT,GAAG,IAAI,EACR,EAAE,KAAK,sBAuEP"}
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { ParamListBase, TabNavigationState } from '@react-navigation/native';
3
2
  import { Animated, StyleProp, ViewStyle } from 'react-native';
4
3
  import { EdgeInsets } from 'react-native-safe-area-context';
@@ -1 +1 @@
1
- {"version":3,"file":"BottomTabBar.d.ts","sourceRoot":"","sources":["../../../../src/views/BottomTabBar.tsx"],"names":[],"mappings":";AACA,OAAO,EAIL,aAAa,EACb,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,QAAQ,EAGR,SAAS,EAGT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAoB,MAAM,gCAAgC,CAAC;AAE9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAK1E,KAAK,KAAK,GAAG,iBAAiB,GAAG;IAC/B,KAAK,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;CAC1D,CAAC;AAQF,KAAK,OAAO,GAAG;IACb,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACzC,WAAW,EAAE,sBAAsB,CAAC;IACpC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C,CAAC;AA8CF,eAAO,MAAM,eAAe;YAQlB,UAAU;WACX,SAAS,iBAAiB,CAAC,UAAU,SAAS,CAAC,CAAC,GAAG,SAAS;YA4BpE,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,UAAU,EACV,WAAW,EACX,MAAM,EACN,KAAK,GACN,EAAE,KAAK,eAoPP"}
1
+ {"version":3,"file":"BottomTabBar.d.ts","sourceRoot":"","sources":["../../../../src/views/BottomTabBar.tsx"],"names":[],"mappings":"AACA,OAAO,EAIL,aAAa,EACb,kBAAkB,EAGnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,QAAQ,EAGR,SAAS,EAGT,SAAS,EACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAoB,MAAM,gCAAgC,CAAC;AAE9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAK1E,KAAK,KAAK,GAAG,iBAAiB,GAAG;IAC/B,KAAK,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;CAC1D,CAAC;AAQF,KAAK,OAAO,GAAG;IACb,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACzC,WAAW,EAAE,sBAAsB,CAAC;IACpC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C,CAAC;AA8CF,eAAO,MAAM,eAAe;YAQlB,UAAU;WACX,SAAS,iBAAiB,CAAC,UAAU,SAAS,CAAC,CAAC,GAAG,SAAS;YA4BpE,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,UAAU,EACV,WAAW,EACX,MAAM,EACN,KAAK,GACN,EAAE,KAAK,eAoPP"}
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { ParamListBase, TabNavigationState } from '@react-navigation/native';
3
2
  import type { BottomTabDescriptorMap, BottomTabNavigationConfig, BottomTabNavigationHelpers } from '../types';
4
3
  type Props = BottomTabNavigationConfig & {
@@ -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;AAKlC,OAAO,KAAK,EAEV,sBAAsB,EAEtB,yBAAyB,EACzB,0BAA0B,EAE3B,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;AAEF,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,eAiIzC"}
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;AAKlC,OAAO,KAAK,EAEV,sBAAsB,EAEtB,yBAAyB,EACzB,0BAA0B,EAG3B,MAAM,UAAU,CAAC;AAQlB,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;AAiBF,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,eAsMzC"}
@@ -1,9 +1,9 @@
1
1
  import * as React from 'react';
2
- import { StyleProp, ViewProps, ViewStyle } from 'react-native';
2
+ import { Animated, StyleProp, ViewProps, ViewStyle } from 'react-native';
3
3
  type Props = {
4
- visible: boolean;
5
- children: React.ReactNode;
6
4
  enabled: boolean;
5
+ active: 0 | 1 | 2 | Animated.AnimatedInterpolation<0 | 1>;
6
+ children: React.ReactNode;
7
7
  freezeOnBlur?: boolean;
8
8
  style?: StyleProp<ViewStyle>;
9
9
  };
@@ -12,6 +12,6 @@ export declare const MaybeScreenContainer: ({ enabled, ...rest }: ViewProps & {
12
12
  hasTwoStates: boolean;
13
13
  children: React.ReactNode;
14
14
  }) => JSX.Element;
15
- export declare function MaybeScreen({ visible, children, ...rest }: Props): JSX.Element;
15
+ export declare function MaybeScreen({ enabled, active, ...rest }: ViewProps & Props): JSX.Element;
16
16
  export {};
17
17
  //# sourceMappingURL=ScreenFallback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenFallback.d.ts","sourceRoot":"","sources":["../../../../src/views/ScreenFallback.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAQ,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAErE,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAUF,eAAO,MAAM,oBAAoB;aAItB,OAAO;kBACF,OAAO;cACX,MAAM,SAAS;iBAO1B,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,KAAK,eAchE"}
1
+ {"version":3,"file":"ScreenFallback.d.ts","sourceRoot":"","sources":["../../../../src/views/ScreenFallback.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAQ,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE/E,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC;AAUF,eAAO,MAAM,oBAAoB;aAItB,OAAO;kBACF,OAAO;cACX,MAAM,SAAS;iBAO1B,CAAC;AAEF,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,SAAS,GAAG,KAAK,eAQ1E"}
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.1",
4
+ "version": "7.0.0-alpha.3",
5
5
  "keywords": [
6
6
  "react-native-component",
7
7
  "react-component",
@@ -36,21 +36,21 @@
36
36
  "clean": "del lib"
37
37
  },
38
38
  "dependencies": {
39
- "@react-navigation/elements": "^1.4.0-alpha.0",
39
+ "@react-navigation/elements": "^2.0.0-alpha.0",
40
40
  "color": "^4.2.3"
41
41
  },
42
42
  "devDependencies": {
43
- "@react-navigation/native": "^7.0.0-alpha.1",
43
+ "@react-navigation/native": "^7.0.0-alpha.3",
44
44
  "@testing-library/react-native": "^11.5.0",
45
45
  "@types/color": "^3.0.3",
46
- "@types/react": "~18.0.26",
46
+ "@types/react": "~18.0.27",
47
47
  "@types/react-native": "~0.70.8",
48
48
  "del-cli": "^5.0.0",
49
- "react": "18.1.0",
50
- "react-native": "0.70.5",
51
- "react-native-builder-bob": "^0.20.4",
52
- "react-native-safe-area-context": "4.4.1",
53
- "react-native-screens": "~3.18.0",
49
+ "react": "18.2.0",
50
+ "react-native": "0.71.8",
51
+ "react-native-builder-bob": "^0.21.0",
52
+ "react-native-safe-area-context": "4.5.0",
53
+ "react-native-screens": "~3.20.0",
54
54
  "typescript": "^4.9.4"
55
55
  },
56
56
  "peerDependencies": {
@@ -74,5 +74,5 @@
74
74
  ]
75
75
  ]
76
76
  },
77
- "gitHead": "230c09deeeb886929a15cb4cdcb496372a9496e1"
77
+ "gitHead": "ddc5705b979d62bb3a293f221ec954cbad3dfba4"
78
78
  }
@@ -0,0 +1,44 @@
1
+ import type {
2
+ BottomTabSceneInterpolatedStyle,
3
+ BottomTabSceneInterpolationProps,
4
+ } from '../types';
5
+
6
+ /**
7
+ * Simple cross fade animation
8
+ */
9
+ export function forCrossFade({
10
+ current,
11
+ }: BottomTabSceneInterpolationProps): BottomTabSceneInterpolatedStyle {
12
+ return {
13
+ sceneStyle: {
14
+ opacity: current.interpolate({
15
+ inputRange: [-1, 0, 1],
16
+ outputRange: [0, 1, 0],
17
+ }),
18
+ },
19
+ };
20
+ }
21
+
22
+ /**
23
+ * Animation where the screens slightly shift to left/right
24
+ */
25
+ export function forShifting({
26
+ current,
27
+ }: BottomTabSceneInterpolationProps): BottomTabSceneInterpolatedStyle {
28
+ return {
29
+ sceneStyle: {
30
+ opacity: current.interpolate({
31
+ inputRange: [-1, 0, 1],
32
+ outputRange: [0, 1, 0],
33
+ }),
34
+ transform: [
35
+ {
36
+ translateX: current.interpolate({
37
+ inputRange: [-1, 0, 1],
38
+ outputRange: [-50, 1, 50],
39
+ }),
40
+ },
41
+ ],
42
+ },
43
+ };
44
+ }
@@ -0,0 +1,13 @@
1
+ import type { BottomTabTransitionPreset } from '../types';
2
+ import { forCrossFade, forShifting } from './SceneStyleInterpolators';
3
+ import { CrossFadeSpec, ShiftingSpec } from './TransitionSpecs';
4
+
5
+ export const FadeTransition: BottomTabTransitionPreset = {
6
+ transitionSpec: CrossFadeSpec,
7
+ sceneStyleInterpolator: forCrossFade,
8
+ };
9
+
10
+ export const ShiftingTransition: BottomTabTransitionPreset = {
11
+ transitionSpec: ShiftingSpec,
12
+ sceneStyleInterpolator: forShifting,
13
+ };
@@ -0,0 +1,19 @@
1
+ import { Easing } from 'react-native';
2
+
3
+ import type { TransitionSpec } from '../types';
4
+
5
+ export const CrossFadeSpec: TransitionSpec = {
6
+ animation: 'timing',
7
+ config: {
8
+ duration: 150,
9
+ easing: Easing.in(Easing.linear),
10
+ },
11
+ };
12
+
13
+ export const ShiftingSpec: TransitionSpec = {
14
+ animation: 'timing',
15
+ config: {
16
+ duration: 150,
17
+ easing: Easing.inOut(Easing.ease),
18
+ },
19
+ };
package/src/index.tsx CHANGED
@@ -1,3 +1,12 @@
1
+ import * as SceneStyleInterpolator from './TransitionConfigs/SceneStyleInterpolators';
2
+ import * as TransitionPresets from './TransitionConfigs/TransitionPresets';
3
+ import * as TransitionSpecs from './TransitionConfigs/TransitionSpecs';
4
+
5
+ /**
6
+ * Transition Presets
7
+ */
8
+ export { SceneStyleInterpolator, TransitionPresets, TransitionSpecs };
9
+
1
10
  /**
2
11
  * Navigators
3
12
  */