@react-navigation/material-top-tabs 7.0.0-alpha.0 → 7.0.0-alpha.10

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 (48) hide show
  1. package/lib/commonjs/index.js +13 -7
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/navigators/createMaterialTopTabNavigator.js +11 -9
  4. package/lib/commonjs/navigators/createMaterialTopTabNavigator.js.map +1 -1
  5. package/lib/commonjs/types.js.map +1 -1
  6. package/lib/commonjs/utils/TabAnimationContext.js +11 -0
  7. package/lib/commonjs/utils/TabAnimationContext.js.map +1 -0
  8. package/lib/commonjs/utils/useTabAnimation.js +18 -0
  9. package/lib/commonjs/utils/useTabAnimation.js.map +1 -0
  10. package/lib/commonjs/views/MaterialTopTabBar.js +13 -8
  11. package/lib/commonjs/views/MaterialTopTabBar.js.map +1 -1
  12. package/lib/commonjs/views/MaterialTopTabView.js +20 -12
  13. package/lib/commonjs/views/MaterialTopTabView.js.map +1 -1
  14. package/lib/module/index.js +8 -3
  15. package/lib/module/index.js.map +1 -1
  16. package/lib/module/navigators/createMaterialTopTabNavigator.js +7 -3
  17. package/lib/module/navigators/createMaterialTopTabNavigator.js.map +1 -1
  18. package/lib/module/types.js.map +1 -1
  19. package/lib/module/utils/TabAnimationContext.js +3 -0
  20. package/lib/module/utils/TabAnimationContext.js.map +1 -0
  21. package/lib/module/utils/useTabAnimation.js +10 -0
  22. package/lib/module/utils/useTabAnimation.js.map +1 -0
  23. package/lib/module/views/MaterialTopTabBar.js +11 -6
  24. package/lib/module/views/MaterialTopTabBar.js.map +1 -1
  25. package/lib/module/views/MaterialTopTabView.js +18 -9
  26. package/lib/module/views/MaterialTopTabView.js.map +1 -1
  27. package/lib/typescript/src/index.d.ts +7 -3
  28. package/lib/typescript/src/index.d.ts.map +1 -1
  29. package/lib/typescript/src/navigators/createMaterialTopTabNavigator.d.ts +6 -6
  30. package/lib/typescript/src/navigators/createMaterialTopTabNavigator.d.ts.map +1 -1
  31. package/lib/typescript/src/types.d.ts +4 -1
  32. package/lib/typescript/src/types.d.ts.map +1 -1
  33. package/lib/typescript/src/utils/TabAnimationContext.d.ts +4 -0
  34. package/lib/typescript/src/utils/TabAnimationContext.d.ts.map +1 -0
  35. package/lib/typescript/src/utils/useTabAnimation.d.ts +2 -0
  36. package/lib/typescript/src/utils/useTabAnimation.d.ts.map +1 -0
  37. package/lib/typescript/src/views/MaterialTopTabBar.d.ts +2 -2
  38. package/lib/typescript/src/views/MaterialTopTabBar.d.ts.map +1 -1
  39. package/lib/typescript/src/views/MaterialTopTabView.d.ts +3 -3
  40. package/lib/typescript/src/views/MaterialTopTabView.d.ts.map +1 -1
  41. package/package.json +17 -17
  42. package/src/index.tsx +8 -3
  43. package/src/navigators/createMaterialTopTabNavigator.tsx +11 -7
  44. package/src/types.tsx +7 -2
  45. package/src/utils/TabAnimationContext.tsx +7 -0
  46. package/src/utils/useTabAnimation.tsx +15 -0
  47. package/src/views/MaterialTopTabBar.tsx +14 -10
  48. package/src/views/MaterialTopTabView.tsx +19 -8
@@ -1,9 +1,10 @@
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 { CommonActions, useTheme } from '@react-navigation/native';
2
+ import { CommonActions, useLocale, useTheme } from '@react-navigation/native';
3
3
  import * as React from 'react';
4
4
  import { TabView } from 'react-native-tab-view';
5
- import MaterialTopTabBar from './MaterialTopTabBar';
6
- export default function MaterialTopTabView(_ref) {
5
+ import { TabAnimationContext } from '../utils/TabAnimationContext';
6
+ import { MaterialTopTabBar } from './MaterialTopTabBar';
7
+ export function MaterialTopTabView(_ref) {
7
8
  let {
8
9
  tabBar = props => /*#__PURE__*/React.createElement(MaterialTopTabBar, props),
9
10
  state,
@@ -15,6 +16,9 @@ export default function MaterialTopTabView(_ref) {
15
16
  const {
16
17
  colors
17
18
  } = useTheme();
19
+ const {
20
+ direction
21
+ } = useLocale();
18
22
  const renderTabBar = props => {
19
23
  return tabBar({
20
24
  ...props,
@@ -34,24 +38,28 @@ export default function MaterialTopTabView(_ref) {
34
38
  },
35
39
  renderScene: _ref2 => {
36
40
  let {
37
- route
41
+ route,
42
+ position
38
43
  } = _ref2;
39
- return descriptors[route.key].render();
44
+ return /*#__PURE__*/React.createElement(TabAnimationContext.Provider, {
45
+ value: {
46
+ position
47
+ }
48
+ }, descriptors[route.key].render());
40
49
  },
41
50
  navigationState: state,
42
51
  renderTabBar: renderTabBar,
43
52
  renderLazyPlaceholder: _ref3 => {
44
- var _descriptors$route$ke, _descriptors$route$ke2;
45
53
  let {
46
54
  route
47
55
  } = _ref3;
48
- return ((_descriptors$route$ke = (_descriptors$route$ke2 = descriptors[route.key].options).lazyPlaceholder) === null || _descriptors$route$ke === void 0 ? void 0 : _descriptors$route$ke.call(_descriptors$route$ke2)) ?? null;
56
+ return descriptors[route.key].options.lazyPlaceholder?.() ?? null;
49
57
  },
50
58
  lazy: _ref4 => {
51
59
  let {
52
60
  route
53
61
  } = _ref4;
54
- return descriptors[route.key].options.lazy === true;
62
+ return descriptors[route.key].options.lazy === true && !state.preloadedRouteKeys.includes(route.key);
55
63
  },
56
64
  lazyPreloadDistance: focusedOptions.lazyPreloadDistance,
57
65
  swipeEnabled: focusedOptions.swipeEnabled,
@@ -64,7 +72,8 @@ export default function MaterialTopTabView(_ref) {
64
72
  }),
65
73
  sceneContainerStyle: [{
66
74
  backgroundColor: colors.background
67
- }, sceneContainerStyle]
75
+ }, sceneContainerStyle],
76
+ direction: direction
68
77
  }));
69
78
  }
70
79
  //# sourceMappingURL=MaterialTopTabView.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CommonActions","useTheme","React","TabView","MaterialTopTabBar","MaterialTopTabView","tabBar","props","state","navigation","descriptors","sceneContainerStyle","rest","colors","renderTabBar","focusedOptions","routes","index","key","options","route","dispatch","navigate","target","render","lazyPlaceholder","lazy","lazyPreloadDistance","swipeEnabled","animationEnabled","emit","type","backgroundColor","background"],"sourceRoot":"../../src","sources":["MaterialTopTabView.tsx"],"mappings":";AAAA,SACEA,aAAa,EAIbC,QAAQ,QACH,0BAA0B;AACjC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAA6BC,OAAO,QAAQ,uBAAuB;AAQnE,OAAOC,iBAAiB,MAAM,qBAAqB;AAQnD,eAAe,SAASC,kBAAkB,OAOhC;EAAA,IAPiC;IACzCC,MAAM,GAAIC,KAA6B,iBAAK,oBAAC,iBAAiB,EAAKA,KAAK,CAAI;IAC5EC,KAAK;IACLC,UAAU;IACVC,WAAW;IACXC,mBAAmB;IACnB,GAAGC;EACE,CAAC;EACN,MAAM;IAAEC;EAAO,CAAC,GAAGZ,QAAQ,EAAE;EAE7B,MAAMa,YAAY,GAAIP,KAAyB,IAAK;IAClD,OAAOD,MAAM,CAAC;MACZ,GAAGC,KAAK;MACRC,KAAK,EAAEA,KAAK;MACZC,UAAU,EAAEA,UAAU;MACtBC,WAAW,EAAEA;IACf,CAAC,CAAC;EACJ,CAAC;EAED,MAAMK,cAAc,GAAGL,WAAW,CAACF,KAAK,CAACQ,MAAM,CAACR,KAAK,CAACS,KAAK,CAAC,CAACC,GAAG,CAAC,CAACC,OAAO;EAEzE,oBACE,oBAAC,OAAO,eACFP,IAAI;IACR,aAAa,EAAGK,KAAK,IAAK;MACxB,MAAMG,KAAK,GAAGZ,KAAK,CAACQ,MAAM,CAACC,KAAK,CAAC;MAEjCR,UAAU,CAACY,QAAQ,CAAC;QAClB,GAAGrB,aAAa,CAACsB,QAAQ,CAACF,KAAK,CAAC;QAChCG,MAAM,EAAEf,KAAK,CAACU;MAChB,CAAC,CAAC;IACJ,CAAE;IACF,WAAW,EAAE;MAAA,IAAC;QAAEE;MAAM,CAAC;MAAA,OAAKV,WAAW,CAACU,KAAK,CAACF,GAAG,CAAC,CAACM,MAAM,EAAE;IAAA,CAAC;IAC5D,eAAe,EAAEhB,KAAM;IACvB,YAAY,EAAEM,YAAa;IAC3B,qBAAqB,EAAE;MAAA;MAAA,IAAC;QAAEM;MAAM,CAAC;MAAA,OAC/B,oDAAAV,WAAW,CAACU,KAAK,CAACF,GAAG,CAAC,CAACC,OAAO,EAACM,eAAe,0DAA9C,kDAAkD,KAAI,IAAI;IAAA,CAC3D;IACD,IAAI,EAAE;MAAA,IAAC;QAAEL;MAAM,CAAC;MAAA,OAAKV,WAAW,CAACU,KAAK,CAACF,GAAG,CAAC,CAACC,OAAO,CAACO,IAAI,KAAK,IAAI;IAAA,CAAC;IAClE,mBAAmB,EAAEX,cAAc,CAACY,mBAAoB;IACxD,YAAY,EAAEZ,cAAc,CAACa,YAAa;IAC1C,gBAAgB,EAAEb,cAAc,CAACc,gBAAiB;IAClD,YAAY,EAAE,MAAMpB,UAAU,CAACqB,IAAI,CAAC;MAAEC,IAAI,EAAE;IAAa,CAAC,CAAE;IAC5D,UAAU,EAAE,MAAMtB,UAAU,CAACqB,IAAI,CAAC;MAAEC,IAAI,EAAE;IAAW,CAAC,CAAE;IACxD,mBAAmB,EAAE,CACnB;MAAEC,eAAe,EAAEnB,MAAM,CAACoB;IAAW,CAAC,EACtCtB,mBAAmB;EACnB,GACF;AAEN"}
1
+ {"version":3,"names":["CommonActions","useLocale","useTheme","React","TabView","TabAnimationContext","MaterialTopTabBar","MaterialTopTabView","_ref","tabBar","props","createElement","state","navigation","descriptors","sceneContainerStyle","rest","colors","direction","renderTabBar","focusedOptions","routes","index","key","options","_extends","onIndexChange","route","dispatch","navigate","target","renderScene","_ref2","position","Provider","value","render","navigationState","renderLazyPlaceholder","_ref3","lazyPlaceholder","lazy","_ref4","preloadedRouteKeys","includes","lazyPreloadDistance","swipeEnabled","animationEnabled","onSwipeStart","emit","type","onSwipeEnd","backgroundColor","background"],"sourceRoot":"../../../src","sources":["views/MaterialTopTabView.tsx"],"mappings":";AAAA,SACEA,aAAa,EAIbC,SAAS,EACTC,QAAQ,QACH,0BAA0B;AACjC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAAkCC,OAAO,QAAQ,uBAAuB;AAQxE,SAASC,mBAAmB,QAAQ,8BAA8B;AAClE,SAASC,iBAAiB,QAAQ,qBAAqB;AAQvD,OAAO,SAASC,kBAAkBA,CAAAC,IAAA,EAOxB;EAAA,IAPyB;IACjCC,MAAM,GAAIC,KAA6B,iBAAKP,KAAA,CAAAQ,aAAA,CAACL,iBAAiB,EAAKI,KAAQ,CAAC;IAC5EE,KAAK;IACLC,UAAU;IACVC,WAAW;IACXC,mBAAmB;IACnB,GAAGC;EACE,CAAC,GAAAR,IAAA;EACN,MAAM;IAAES;EAAO,CAAC,GAAGf,QAAQ,CAAC,CAAC;EAC7B,MAAM;IAAEgB;EAAU,CAAC,GAAGjB,SAAS,CAAC,CAAC;EAEjC,MAAMkB,YAAY,GAAIT,KAAyB,IAAK;IAClD,OAAOD,MAAM,CAAC;MACZ,GAAGC,KAAK;MACRE,KAAK,EAAEA,KAAK;MACZC,UAAU,EAAEA,UAAU;MACtBC,WAAW,EAAEA;IACf,CAAC,CAAC;EACJ,CAAC;EAED,MAAMM,cAAc,GAAGN,WAAW,CAACF,KAAK,CAACS,MAAM,CAACT,KAAK,CAACU,KAAK,CAAC,CAACC,GAAG,CAAC,CAACC,OAAO;EAEzE,oBACErB,KAAA,CAAAQ,aAAA,CAACP,OAAO,EAAAqB,QAAA,KACFT,IAAI;IACRU,aAAa,EAAGJ,KAAK,IAAK;MACxB,MAAMK,KAAK,GAAGf,KAAK,CAACS,MAAM,CAACC,KAAK,CAAC;MAEjCT,UAAU,CAACe,QAAQ,CAAC;QAClB,GAAG5B,aAAa,CAAC6B,QAAQ,CAACF,KAAK,CAAC;QAChCG,MAAM,EAAElB,KAAK,CAACW;MAChB,CAAC,CAAC;IACJ,CAAE;IACFQ,WAAW,EAAEC,KAAA;MAAA,IAAC;QAAEL,KAAK;QAAEM;MAAS,CAAC,GAAAD,KAAA;MAAA,oBAC/B7B,KAAA,CAAAQ,aAAA,CAACN,mBAAmB,CAAC6B,QAAQ;QAACC,KAAK,EAAE;UAAEF;QAAS;MAAE,GAC/CnB,WAAW,CAACa,KAAK,CAACJ,GAAG,CAAC,CAACa,MAAM,CAAC,CACH,CAAC;IAAA,CAC/B;IACFC,eAAe,EAAEzB,KAAM;IACvBO,YAAY,EAAEA,YAAa;IAC3BmB,qBAAqB,EAAEC,KAAA;MAAA,IAAC;QAAEZ;MAAM,CAAC,GAAAY,KAAA;MAAA,OAC/BzB,WAAW,CAACa,KAAK,CAACJ,GAAG,CAAC,CAACC,OAAO,CAACgB,eAAe,GAAG,CAAC,IAAI,IAAI;IAAA,CAC3D;IACDC,IAAI,EAAEC,KAAA;MAAA,IAAC;QAAEf;MAAM,CAAC,GAAAe,KAAA;MAAA,OACd5B,WAAW,CAACa,KAAK,CAACJ,GAAG,CAAC,CAACC,OAAO,CAACiB,IAAI,KAAK,IAAI,IAC5C,CAAC7B,KAAK,CAAC+B,kBAAkB,CAACC,QAAQ,CAACjB,KAAK,CAACJ,GAAG,CAAC;IAAA,CAC9C;IACDsB,mBAAmB,EAAEzB,cAAc,CAACyB,mBAAoB;IACxDC,YAAY,EAAE1B,cAAc,CAAC0B,YAAa;IAC1CC,gBAAgB,EAAE3B,cAAc,CAAC2B,gBAAiB;IAClDC,YAAY,EAAEA,CAAA,KAAMnC,UAAU,CAACoC,IAAI,CAAC;MAAEC,IAAI,EAAE;IAAa,CAAC,CAAE;IAC5DC,UAAU,EAAEA,CAAA,KAAMtC,UAAU,CAACoC,IAAI,CAAC;MAAEC,IAAI,EAAE;IAAW,CAAC,CAAE;IACxDnC,mBAAmB,EAAE,CACnB;MAAEqC,eAAe,EAAEnC,MAAM,CAACoC;IAAW,CAAC,EACtCtC,mBAAmB,CACnB;IACFG,SAAS,EAAEA;EAAU,EACtB,CAAC;AAEN"}
@@ -1,12 +1,16 @@
1
1
  /**
2
2
  * Navigators
3
3
  */
4
- export { default as createMaterialTopTabNavigator } from './navigators/createMaterialTopTabNavigator';
4
+ export { createMaterialTopTabNavigator } from './navigators/createMaterialTopTabNavigator';
5
5
  /**
6
6
  * Views
7
7
  */
8
- export { default as MaterialTopTabBar } from './views/MaterialTopTabBar';
9
- export { default as MaterialTopTabView } from './views/MaterialTopTabView';
8
+ export { MaterialTopTabBar } from './views/MaterialTopTabBar';
9
+ export { MaterialTopTabView } from './views/MaterialTopTabView';
10
+ /**
11
+ * Utilities
12
+ */
13
+ export { useTabAnimation } from './utils/useTabAnimation';
10
14
  /**
11
15
  * Types
12
16
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAEtG;;GAEG;AACH,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAE3E;;GAEG;AACH,YAAY,EACV,sBAAsB,EACtB,gCAAgC,EAChC,+BAA+B,EAC/B,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAE3F;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;GAEG;AACH,YAAY,EACV,sBAAsB,EACtB,gCAAgC,EAChC,+BAA+B,EAC/B,4BAA4B,EAC5B,yBAAyB,GAC1B,MAAM,SAAS,CAAC"}
@@ -1,13 +1,13 @@
1
- /// <reference types="react" />
2
- import { DefaultNavigatorOptions, ParamListBase, TabNavigationState, TabRouterOptions } from '@react-navigation/native';
1
+ import { type DefaultNavigatorOptions, type ParamListBase, type TabNavigationState, type TabRouterOptions } from '@react-navigation/native';
2
+ import * as React from 'react';
3
3
  import type { MaterialTopTabNavigationConfig, MaterialTopTabNavigationEventMap, MaterialTopTabNavigationOptions } from '../types';
4
4
  type Props = DefaultNavigatorOptions<ParamListBase, TabNavigationState<ParamListBase>, MaterialTopTabNavigationOptions, MaterialTopTabNavigationEventMap> & TabRouterOptions & MaterialTopTabNavigationConfig;
5
- declare function MaterialTopTabNavigator({ id, initialRouteName, backBehavior, children, screenListeners, screenOptions, ...rest }: Props): JSX.Element;
6
- declare const _default: {
5
+ declare function MaterialTopTabNavigator({ id, initialRouteName, backBehavior, children, layout, screenListeners, screenOptions, screenLayout, ...rest }: Props): React.JSX.Element;
6
+ export declare const createMaterialTopTabNavigator: {
7
7
  <ParamList extends ParamListBase>(): import("@react-navigation/native").TypedNavigator<ParamList, TabNavigationState<ParamListBase>, MaterialTopTabNavigationOptions, MaterialTopTabNavigationEventMap, typeof MaterialTopTabNavigator>;
8
- <ParamList_1 extends ParamListBase, Config extends import("packages/core/lib/typescript/src/StaticNavigation").StaticConfig<ParamList_1, TabNavigationState<ParamListBase>, MaterialTopTabNavigationOptions, MaterialTopTabNavigationEventMap, typeof MaterialTopTabNavigator>>(config: Config): import("@react-navigation/native").TypedNavigator<ParamList_1, TabNavigationState<ParamListBase>, MaterialTopTabNavigationOptions, MaterialTopTabNavigationEventMap, typeof MaterialTopTabNavigator> & {
8
+ <ParamList_1 extends ParamListBase, Config extends import("@react-navigation/core/lib/typescript/src/StaticNavigation").StaticConfig<ParamList_1, TabNavigationState<ParamListBase>, MaterialTopTabNavigationOptions, MaterialTopTabNavigationEventMap, typeof MaterialTopTabNavigator>>(config: Config): import("@react-navigation/native").TypedNavigator<ParamList_1, TabNavigationState<ParamListBase>, MaterialTopTabNavigationOptions, MaterialTopTabNavigationEventMap, typeof MaterialTopTabNavigator> & {
9
9
  config: Config;
10
10
  };
11
11
  };
12
- export default _default;
12
+ export {};
13
13
  //# sourceMappingURL=createMaterialTopTabNavigator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createMaterialTopTabNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigators/createMaterialTopTabNavigator.tsx"],"names":[],"mappings":";AAAA,OAAO,EAEL,uBAAuB,EACvB,aAAa,EAEb,kBAAkB,EAElB,gBAAgB,EAEjB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EACV,8BAA8B,EAC9B,gCAAgC,EAChC,+BAA+B,EAChC,MAAM,UAAU,CAAC;AAGlB,KAAK,KAAK,GAAG,uBAAuB,CAClC,aAAa,EACb,kBAAkB,CAAC,aAAa,CAAC,EACjC,+BAA+B,EAC/B,gCAAgC,CACjC,GACC,gBAAgB,GAChB,8BAA8B,CAAC;AAEjC,iBAAS,uBAAuB,CAAC,EAC/B,EAAE,EACF,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,aAAa,EACb,GAAG,IAAI,EACR,EAAE,KAAK,eA2BP;;;;;;;AAED,wBAK2B"}
1
+ {"version":3,"file":"createMaterialTopTabNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigators/createMaterialTopTabNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAElB,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EAEtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EACV,8BAA8B,EAC9B,gCAAgC,EAChC,+BAA+B,EAChC,MAAM,UAAU,CAAC;AAGlB,KAAK,KAAK,GAAG,uBAAuB,CAClC,aAAa,EACb,kBAAkB,CAAC,aAAa,CAAC,EACjC,+BAA+B,EAC/B,gCAAgC,CACjC,GACC,gBAAgB,GAChB,8BAA8B,CAAC;AAEjC,iBAAS,uBAAuB,CAAC,EAC/B,EAAE,EACF,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,eAAe,EACf,aAAa,EACb,YAAY,EACZ,GAAG,IAAI,EACR,EAAE,KAAK,qBA6BP;AAED,eAAO,MAAM,6BAA6B;;;;;CAKhB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { Descriptor, NavigationHelpers, NavigationProp, ParamListBase, Route, RouteProp, TabActionHelpers, TabNavigationState } from '@react-navigation/native';
2
2
  import type React from 'react';
3
- import type { PressableAndroidRippleConfig, StyleProp, TextStyle, ViewStyle } from 'react-native';
3
+ import type { Animated, PressableAndroidRippleConfig, StyleProp, TextStyle, ViewStyle } from 'react-native';
4
4
  import type { SceneRendererProps, TabBar, TabViewProps } from 'react-native-tab-view';
5
5
  export type MaterialTopTabNavigationEventMap = {
6
6
  /**
@@ -204,4 +204,7 @@ export type MaterialTopTabBarProps = SceneRendererProps & {
204
204
  navigation: NavigationHelpers<ParamListBase, MaterialTopTabNavigationEventMap>;
205
205
  descriptors: MaterialTopTabDescriptorMap;
206
206
  };
207
+ export type MaterialTopTabAnimationContext = {
208
+ position: Animated.AnimatedInterpolation<number>;
209
+ };
207
210
  //# sourceMappingURL=types.d.ts.map
@@ -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 * as React from 'react';
2
+ import type { MaterialTopTabAnimationContext } from '../types';
3
+ export declare const TabAnimationContext: React.Context<MaterialTopTabAnimationContext | undefined>;
4
+ //# sourceMappingURL=TabAnimationContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabAnimationContext.d.ts","sourceRoot":"","sources":["../../../../src/utils/TabAnimationContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAC;AAE/D,eAAO,MAAM,mBAAmB,2DAEpB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function useTabAnimation(): import("../types").MaterialTopTabAnimationContext;
2
+ //# sourceMappingURL=useTabAnimation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTabAnimation.d.ts","sourceRoot":"","sources":["../../../../src/utils/useTabAnimation.tsx"],"names":[],"mappings":"AAIA,wBAAgB,eAAe,sDAU9B"}
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import * as React from 'react';
2
2
  import type { MaterialTopTabBarProps } from '../types';
3
- export default function TabBarTop({ state, navigation, descriptors, ...rest }: MaterialTopTabBarProps): JSX.Element;
3
+ export declare function MaterialTopTabBar({ state, navigation, descriptors, ...rest }: MaterialTopTabBarProps): React.JSX.Element;
4
4
  //# sourceMappingURL=MaterialTopTabBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialTopTabBar.d.ts","sourceRoot":"","sources":["../../../../src/views/MaterialTopTabBar.tsx"],"names":[],"mappings":";AAWA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,KAAK,EACL,UAAU,EACV,WAAW,EACX,GAAG,IAAI,EACR,EAAE,sBAAsB,eAyHxB"}
1
+ {"version":3,"file":"MaterialTopTabBar.d.ts","sourceRoot":"","sources":["../../../../src/views/MaterialTopTabBar.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,UAAU,EACV,WAAW,EACX,GAAG,IAAI,EACR,EAAE,sBAAsB,qBA2HxB"}
@@ -1,11 +1,11 @@
1
- /// <reference types="react" />
2
- import { ParamListBase, TabNavigationState } from '@react-navigation/native';
1
+ import { type ParamListBase, type TabNavigationState } from '@react-navigation/native';
2
+ import * as React from 'react';
3
3
  import type { MaterialTopTabDescriptorMap, MaterialTopTabNavigationConfig, MaterialTopTabNavigationHelpers } from '../types';
4
4
  type Props = MaterialTopTabNavigationConfig & {
5
5
  state: TabNavigationState<ParamListBase>;
6
6
  navigation: MaterialTopTabNavigationHelpers;
7
7
  descriptors: MaterialTopTabDescriptorMap;
8
8
  };
9
- export default function MaterialTopTabView({ tabBar, state, navigation, descriptors, sceneContainerStyle, ...rest }: Props): JSX.Element;
9
+ export declare function MaterialTopTabView({ tabBar, state, navigation, descriptors, sceneContainerStyle, ...rest }: Props): React.JSX.Element;
10
10
  export {};
11
11
  //# sourceMappingURL=MaterialTopTabView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialTopTabView.d.ts","sourceRoot":"","sources":["../../../../src/views/MaterialTopTabView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAEL,aAAa,EAEb,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,KAAK,EAEV,2BAA2B,EAC3B,8BAA8B,EAC9B,+BAA+B,EAChC,MAAM,UAAU,CAAC;AAGlB,KAAK,KAAK,GAAG,8BAA8B,GAAG;IAC5C,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACzC,UAAU,EAAE,+BAA+B,CAAC;IAC5C,WAAW,EAAE,2BAA2B,CAAC;CAC1C,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,MAA4E,EAC5E,KAAK,EACL,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,GAAG,IAAI,EACR,EAAE,KAAK,eA2CP"}
1
+ {"version":3,"file":"MaterialTopTabView.d.ts","sourceRoot":"","sources":["../../../../src/views/MaterialTopTabView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,kBAAkB,EAGxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAEV,2BAA2B,EAC3B,8BAA8B,EAC9B,+BAA+B,EAChC,MAAM,UAAU,CAAC;AAIlB,KAAK,KAAK,GAAG,8BAA8B,GAAG;IAC5C,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACzC,UAAU,EAAE,+BAA+B,CAAC;IAC5C,WAAW,EAAE,2BAA2B,CAAC;CAC1C,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EACjC,MAA4E,EAC5E,KAAK,EACL,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,GAAG,IAAI,EACR,EAAE,KAAK,qBAoDP"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@react-navigation/material-top-tabs",
3
3
  "description": "Integration for the animated tab view component from react-native-tab-view",
4
- "version": "7.0.0-alpha.0",
4
+ "version": "7.0.0-alpha.10",
5
5
  "keywords": [
6
6
  "react-native-component",
7
7
  "react-component",
@@ -41,26 +41,26 @@
41
41
  "clean": "del lib"
42
42
  },
43
43
  "dependencies": {
44
+ "@react-navigation/elements": "^2.0.0-alpha.8",
44
45
  "color": "^4.2.3",
45
- "react-native-tab-view": "^3.5.0"
46
+ "react-native-tab-view": "^4.0.0-alpha.5"
46
47
  },
47
48
  "devDependencies": {
48
- "@react-navigation/native": "^7.0.0-alpha.0",
49
- "@testing-library/react-native": "^11.5.0",
50
- "@types/react": "~18.0.26",
51
- "@types/react-native": "~0.70.8",
52
- "del-cli": "^5.0.0",
53
- "react": "18.1.0",
54
- "react-native": "0.70.5",
55
- "react-native-builder-bob": "^0.20.3",
56
- "react-native-pager-view": "6.0.1",
57
- "typescript": "^4.9.4"
49
+ "@react-navigation/native": "^7.0.0-alpha.10",
50
+ "@testing-library/react-native": "^12.4.3",
51
+ "@types/react": "~18.2.45",
52
+ "del-cli": "^5.1.0",
53
+ "react": "18.2.0",
54
+ "react-native": "0.73.2",
55
+ "react-native-builder-bob": "^0.23.2",
56
+ "react-native-pager-view": "6.2.3",
57
+ "typescript": "^5.3.3"
58
58
  },
59
59
  "peerDependencies": {
60
- "@react-navigation/native": "^6.0.0",
61
- "react": "*",
62
- "react-native": "*",
63
- "react-native-pager-view": ">= 4.0.0"
60
+ "@react-navigation/native": "^7.0.0-alpha.10",
61
+ "react": ">= 18.2.0",
62
+ "react-native": ">= 0.72.0",
63
+ "react-native-pager-view": ">= 6.0.0"
64
64
  },
65
65
  "react-native-builder-bob": {
66
66
  "source": "src",
@@ -76,5 +76,5 @@
76
76
  ]
77
77
  ]
78
78
  },
79
- "gitHead": "ad722b882e0c40b1d1bc025d70112ddb126f265e"
79
+ "gitHead": "38117089fff9341c72e0834ca8ec237e8186b63c"
80
80
  }
package/src/index.tsx CHANGED
@@ -1,13 +1,18 @@
1
1
  /**
2
2
  * Navigators
3
3
  */
4
- export { default as createMaterialTopTabNavigator } from './navigators/createMaterialTopTabNavigator';
4
+ export { createMaterialTopTabNavigator } from './navigators/createMaterialTopTabNavigator';
5
5
 
6
6
  /**
7
7
  * Views
8
8
  */
9
- export { default as MaterialTopTabBar } from './views/MaterialTopTabBar';
10
- export { default as MaterialTopTabView } from './views/MaterialTopTabView';
9
+ export { MaterialTopTabBar } from './views/MaterialTopTabBar';
10
+ export { MaterialTopTabView } from './views/MaterialTopTabView';
11
+
12
+ /**
13
+ * Utilities
14
+ */
15
+ export { useTabAnimation } from './utils/useTabAnimation';
11
16
 
12
17
  /**
13
18
  * Types
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  createNavigatorFactory,
3
- DefaultNavigatorOptions,
4
- ParamListBase,
5
- TabActionHelpers,
6
- TabNavigationState,
3
+ type DefaultNavigatorOptions,
4
+ type ParamListBase,
5
+ type TabActionHelpers,
6
+ type TabNavigationState,
7
7
  TabRouter,
8
- TabRouterOptions,
8
+ type TabRouterOptions,
9
9
  useNavigationBuilder,
10
10
  } from '@react-navigation/native';
11
11
  import * as React from 'react';
@@ -15,7 +15,7 @@ import type {
15
15
  MaterialTopTabNavigationEventMap,
16
16
  MaterialTopTabNavigationOptions,
17
17
  } from '../types';
18
- import MaterialTopTabView from '../views/MaterialTopTabView';
18
+ import { MaterialTopTabView } from '../views/MaterialTopTabView';
19
19
 
20
20
  type Props = DefaultNavigatorOptions<
21
21
  ParamListBase,
@@ -31,8 +31,10 @@ function MaterialTopTabNavigator({
31
31
  initialRouteName,
32
32
  backBehavior,
33
33
  children,
34
+ layout,
34
35
  screenListeners,
35
36
  screenOptions,
37
+ screenLayout,
36
38
  ...rest
37
39
  }: Props) {
38
40
  const { state, descriptors, navigation, NavigationContent } =
@@ -47,8 +49,10 @@ function MaterialTopTabNavigator({
47
49
  initialRouteName,
48
50
  backBehavior,
49
51
  children,
52
+ layout,
50
53
  screenListeners,
51
54
  screenOptions,
55
+ screenLayout,
52
56
  });
53
57
 
54
58
  return (
@@ -63,7 +67,7 @@ function MaterialTopTabNavigator({
63
67
  );
64
68
  }
65
69
 
66
- export default createNavigatorFactory<
70
+ export const createMaterialTopTabNavigator = createNavigatorFactory<
67
71
  TabNavigationState<ParamListBase>,
68
72
  MaterialTopTabNavigationOptions,
69
73
  MaterialTopTabNavigationEventMap,
package/src/types.tsx CHANGED
@@ -10,6 +10,7 @@ import type {
10
10
  } from '@react-navigation/native';
11
11
  import type React from 'react';
12
12
  import type {
13
+ Animated,
13
14
  PressableAndroidRippleConfig,
14
15
  StyleProp,
15
16
  TextStyle,
@@ -49,7 +50,7 @@ export type MaterialTopTabNavigationHelpers = NavigationHelpers<
49
50
  export type MaterialTopTabNavigationProp<
50
51
  ParamList extends ParamListBase,
51
52
  RouteName extends keyof ParamList = keyof ParamList,
52
- NavigatorID extends string | undefined = undefined
53
+ NavigatorID extends string | undefined = undefined,
53
54
  > = NavigationProp<
54
55
  ParamList,
55
56
  RouteName,
@@ -63,7 +64,7 @@ export type MaterialTopTabNavigationProp<
63
64
  export type MaterialTopTabScreenProps<
64
65
  ParamList extends ParamListBase,
65
66
  RouteName extends keyof ParamList = keyof ParamList,
66
- NavigatorID extends string | undefined = undefined
67
+ NavigatorID extends string | undefined = undefined,
67
68
  > = {
68
69
  navigation: MaterialTopTabNavigationProp<ParamList, RouteName, NavigatorID>;
69
70
  route: RouteProp<ParamList, RouteName>;
@@ -299,3 +300,7 @@ export type MaterialTopTabBarProps = SceneRendererProps & {
299
300
  >;
300
301
  descriptors: MaterialTopTabDescriptorMap;
301
302
  };
303
+
304
+ export type MaterialTopTabAnimationContext = {
305
+ position: Animated.AnimatedInterpolation<number>;
306
+ };
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+
3
+ import type { MaterialTopTabAnimationContext } from '../types';
4
+
5
+ export const TabAnimationContext = React.createContext<
6
+ MaterialTopTabAnimationContext | undefined
7
+ >(undefined);
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+
3
+ import { TabAnimationContext } from './TabAnimationContext';
4
+
5
+ export function useTabAnimation() {
6
+ const animation = React.useContext(TabAnimationContext);
7
+
8
+ if (animation === undefined) {
9
+ throw new Error(
10
+ "Couldn't find values for tab animation. Are you inside a screen in Material Top Tab navigator?"
11
+ );
12
+ }
13
+
14
+ return animation;
15
+ }
@@ -1,23 +1,26 @@
1
+ import { Text } from '@react-navigation/elements';
1
2
  import {
2
- ParamListBase,
3
- Route,
4
- TabNavigationState,
3
+ type ParamListBase,
4
+ type Route,
5
+ type TabNavigationState,
6
+ useLocale,
5
7
  useTheme,
6
8
  } from '@react-navigation/native';
7
9
  import Color from 'color';
8
10
  import * as React from 'react';
9
- import { StyleSheet, Text, View } from 'react-native';
11
+ import { StyleSheet, View } from 'react-native';
10
12
  import { TabBar, TabBarIndicator } from 'react-native-tab-view';
11
13
 
12
14
  import type { MaterialTopTabBarProps } from '../types';
13
15
 
14
- export default function TabBarTop({
16
+ export function MaterialTopTabBar({
15
17
  state,
16
18
  navigation,
17
19
  descriptors,
18
20
  ...rest
19
21
  }: MaterialTopTabBarProps) {
20
22
  const { colors } = useTheme();
23
+ const { direction } = useLocale();
21
24
 
22
25
  const focusedOptions = descriptors[state.routes[state.index].key].options;
23
26
 
@@ -30,6 +33,7 @@ export default function TabBarTop({
30
33
  <TabBar
31
34
  {...rest}
32
35
  navigationState={state}
36
+ direction={direction}
33
37
  scrollEnabled={focusedOptions.tabBarScrollEnabled}
34
38
  bounces={focusedOptions.tabBarBounces}
35
39
  activeColor={activeColor}
@@ -97,13 +101,13 @@ export default function TabBarTop({
97
101
  options.tabBarLabel !== undefined
98
102
  ? options.tabBarLabel
99
103
  : options.title !== undefined
100
- ? options.title
101
- : (route as Route<string>).name;
104
+ ? options.title
105
+ : (route as Route<string>).name;
102
106
 
103
107
  if (typeof label === 'string') {
104
108
  return (
105
109
  <Text
106
- style={[styles.label, { color }, options.tabBarLabelStyle]}
110
+ style={[{ color }, styles.label, options.tabBarLabelStyle]}
107
111
  allowFontScaling={options.tabBarAllowFontScaling}
108
112
  >
109
113
  {label}
@@ -115,8 +119,8 @@ export default function TabBarTop({
115
119
  typeof options.tabBarLabel === 'string'
116
120
  ? options.tabBarLabel
117
121
  : options.title !== undefined
118
- ? options.title
119
- : route.name;
122
+ ? options.title
123
+ : route.name;
120
124
 
121
125
  return label({ focused, color, children });
122
126
  }}
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  CommonActions,
3
- ParamListBase,
4
- Route,
5
- TabNavigationState,
3
+ type ParamListBase,
4
+ type Route,
5
+ type TabNavigationState,
6
+ useLocale,
6
7
  useTheme,
7
8
  } from '@react-navigation/native';
8
9
  import * as React from 'react';
9
- import { SceneRendererProps, TabView } from 'react-native-tab-view';
10
+ import { type SceneRendererProps, TabView } from 'react-native-tab-view';
10
11
 
11
12
  import type {
12
13
  MaterialTopTabBarProps,
@@ -14,7 +15,8 @@ import type {
14
15
  MaterialTopTabNavigationConfig,
15
16
  MaterialTopTabNavigationHelpers,
16
17
  } from '../types';
17
- import MaterialTopTabBar from './MaterialTopTabBar';
18
+ import { TabAnimationContext } from '../utils/TabAnimationContext';
19
+ import { MaterialTopTabBar } from './MaterialTopTabBar';
18
20
 
19
21
  type Props = MaterialTopTabNavigationConfig & {
20
22
  state: TabNavigationState<ParamListBase>;
@@ -22,7 +24,7 @@ type Props = MaterialTopTabNavigationConfig & {
22
24
  descriptors: MaterialTopTabDescriptorMap;
23
25
  };
24
26
 
25
- export default function MaterialTopTabView({
27
+ export function MaterialTopTabView({
26
28
  tabBar = (props: MaterialTopTabBarProps) => <MaterialTopTabBar {...props} />,
27
29
  state,
28
30
  navigation,
@@ -31,6 +33,7 @@ export default function MaterialTopTabView({
31
33
  ...rest
32
34
  }: Props) {
33
35
  const { colors } = useTheme();
36
+ const { direction } = useLocale();
34
37
 
35
38
  const renderTabBar = (props: SceneRendererProps) => {
36
39
  return tabBar({
@@ -54,13 +57,20 @@ export default function MaterialTopTabView({
54
57
  target: state.key,
55
58
  });
56
59
  }}
57
- renderScene={({ route }) => descriptors[route.key].render()}
60
+ renderScene={({ route, position }) => (
61
+ <TabAnimationContext.Provider value={{ position }}>
62
+ {descriptors[route.key].render()}
63
+ </TabAnimationContext.Provider>
64
+ )}
58
65
  navigationState={state}
59
66
  renderTabBar={renderTabBar}
60
67
  renderLazyPlaceholder={({ route }) =>
61
68
  descriptors[route.key].options.lazyPlaceholder?.() ?? null
62
69
  }
63
- lazy={({ route }) => descriptors[route.key].options.lazy === true}
70
+ lazy={({ route }) =>
71
+ descriptors[route.key].options.lazy === true &&
72
+ !state.preloadedRouteKeys.includes(route.key)
73
+ }
64
74
  lazyPreloadDistance={focusedOptions.lazyPreloadDistance}
65
75
  swipeEnabled={focusedOptions.swipeEnabled}
66
76
  animationEnabled={focusedOptions.animationEnabled}
@@ -70,6 +80,7 @@ export default function MaterialTopTabView({
70
80
  { backgroundColor: colors.background },
71
81
  sceneContainerStyle,
72
82
  ]}
83
+ direction={direction}
73
84
  />
74
85
  );
75
86
  }