react-navigation-reanimated-top-tabs 0.6.1 → 0.6.2

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 (45) hide show
  1. package/lib/commonjs/components/ReanimatedTopTab/AnimationHelper.js +2 -2
  2. package/lib/commonjs/components/ReanimatedTopTab/AnimationHelper.js.map +1 -1
  3. package/lib/commonjs/components/ReanimatedTopTab/ReanimatedTabView.js +24 -13
  4. package/lib/commonjs/components/ReanimatedTopTab/ReanimatedTabView.js.map +1 -1
  5. package/lib/commonjs/components/elements/TabBarBaseComponent.js +2 -2
  6. package/lib/commonjs/components/elements/TabBarBaseComponent.js.map +1 -1
  7. package/lib/commonjs/context/Context.hooks.js +30 -1
  8. package/lib/commonjs/context/Context.hooks.js.map +1 -1
  9. package/lib/commonjs/context/Context.js +6 -0
  10. package/lib/commonjs/context/Context.js.map +1 -1
  11. package/lib/commonjs/navigator/createReanimatedTopTabNavigator.js +5 -20
  12. package/lib/commonjs/navigator/createReanimatedTopTabNavigator.js.map +1 -1
  13. package/lib/module/components/ReanimatedTopTab/AnimationHelper.js +2 -2
  14. package/lib/module/components/ReanimatedTopTab/AnimationHelper.js.map +1 -1
  15. package/lib/module/components/ReanimatedTopTab/ReanimatedTabView.js +25 -14
  16. package/lib/module/components/ReanimatedTopTab/ReanimatedTabView.js.map +1 -1
  17. package/lib/module/components/elements/TabBarBaseComponent.js +2 -2
  18. package/lib/module/components/elements/TabBarBaseComponent.js.map +1 -1
  19. package/lib/module/context/Context.hooks.js +30 -1
  20. package/lib/module/context/Context.hooks.js.map +1 -1
  21. package/lib/module/context/Context.js +6 -0
  22. package/lib/module/context/Context.js.map +1 -1
  23. package/lib/module/navigator/createReanimatedTopTabNavigator.js +6 -21
  24. package/lib/module/navigator/createReanimatedTopTabNavigator.js.map +1 -1
  25. package/lib/typescript/src/components/ReanimatedTopTab/AnimationHelper.d.ts +7 -3
  26. package/lib/typescript/src/components/ReanimatedTopTab/AnimationHelper.d.ts.map +1 -1
  27. package/lib/typescript/src/components/ReanimatedTopTab/ReanimatedTabView.d.ts +1 -1
  28. package/lib/typescript/src/components/ReanimatedTopTab/ReanimatedTabView.d.ts.map +1 -1
  29. package/lib/typescript/src/components/ReanimatedTopTab/types.d.ts +1 -1
  30. package/lib/typescript/src/components/ReanimatedTopTab/types.d.ts.map +1 -1
  31. package/lib/typescript/src/components/elements/TabBarBaseComponent.d.ts +1 -1
  32. package/lib/typescript/src/components/elements/TabBarBaseComponent.d.ts.map +1 -1
  33. package/lib/typescript/src/context/Context.d.ts.map +1 -1
  34. package/lib/typescript/src/context/Context.hooks.d.ts +1 -0
  35. package/lib/typescript/src/context/Context.hooks.d.ts.map +1 -1
  36. package/lib/typescript/src/index.d.ts +1 -1
  37. package/lib/typescript/src/navigator/createReanimatedTopTabNavigator.d.ts.map +1 -1
  38. package/package.json +1 -1
  39. package/src/components/ReanimatedTopTab/AnimationHelper.ts +7 -6
  40. package/src/components/ReanimatedTopTab/ReanimatedTabView.tsx +28 -16
  41. package/src/components/ReanimatedTopTab/types.ts +1 -1
  42. package/src/components/elements/TabBarBaseComponent.tsx +2 -2
  43. package/src/context/Context.hooks.ts +34 -0
  44. package/src/context/Context.tsx +7 -0
  45. package/src/navigator/createReanimatedTopTabNavigator.tsx +9 -31
@@ -223,9 +223,38 @@ const useTransformHeaderOnTabChange = ({
223
223
  isHeaderHeightSet
224
224
  };
225
225
  };
226
+ const useApproachingTabChange = ({
227
+ config,
228
+ transformationX,
229
+ gestureEnabled,
230
+ currentScreenIndex
231
+ }) => {
232
+ const onIndexApproach = index => {
233
+ 'worklet';
234
+
235
+ currentScreenIndex.value = index;
236
+ switch (config[index]) {
237
+ case 'normal':
238
+ {
239
+ gestureEnabled.value = true;
240
+ break;
241
+ }
242
+ case 'minimalized':
243
+ {
244
+ gestureEnabled.value = false;
245
+ break;
246
+ }
247
+ }
248
+ };
249
+ useAnimatedReaction(() => transformationX.value, (current, previous) => {
250
+ const approachingIndex = ContextHelpers.getTargetIndex(current, previous);
251
+ onIndexApproach(approachingIndex);
252
+ });
253
+ };
226
254
  export const ContextHooks = {
227
255
  useResetApproachingScreenScrollOffset,
228
256
  usePrepareContext,
229
- useTransformHeaderOnTabChange
257
+ useTransformHeaderOnTabChange,
258
+ useApproachingTabChange
230
259
  };
231
260
  //# sourceMappingURL=Context.hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["interpolate","makeMutable","runOnJS","useAnimatedReaction","useDerivedValue","useSharedValue","useRef","Gesture","assign","throttle","ContextHelpers","useResetApproachingScreenScrollOffset","context","transformationX","currentYPosition","screenOffsets","Object","values","screen","properties","map","scrollY","value","resetApproachingScreenOffset","index","shouldReset","scrollTo","getRef","route","getKeyForIndex","current","y","animated","previous","approachingIndex","getTargetIndex","approachingScreenOffset","usePrepareKeyMap","state","indexToKeyMap","routes","reduce","previousValue","currentValue","currentIndex","key","usePrepareScreen","screenProperties","prev","innerLayout","height","width","x","nativeGesture","Native","outerLayout","scrollRef","setRef","ref","newProperties","_ref","usePrepareContext","useTransformHeaderOnTabChange","config","headerHeight","isHeaderHeightSet","transformationY","inputRange","_","idx","outputRange","type","debouncedSetIsHeaderSet","cancel","prepared","ContextHooks"],"sourceRoot":"../../../src","sources":["context/Context.hooks.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["interpolate","makeMutable","runOnJS","useAnimatedReaction","useDerivedValue","useSharedValue","useRef","Gesture","assign","throttle","ContextHelpers","useResetApproachingScreenScrollOffset","context","transformationX","currentYPosition","screenOffsets","Object","values","screen","properties","map","scrollY","value","resetApproachingScreenOffset","index","shouldReset","scrollTo","getRef","route","getKeyForIndex","current","y","animated","previous","approachingIndex","getTargetIndex","approachingScreenOffset","usePrepareKeyMap","state","indexToKeyMap","routes","reduce","previousValue","currentValue","currentIndex","key","usePrepareScreen","screenProperties","prev","innerLayout","height","width","x","nativeGesture","Native","outerLayout","scrollRef","setRef","ref","newProperties","_ref","usePrepareContext","useTransformHeaderOnTabChange","config","headerHeight","isHeaderHeightSet","transformationY","inputRange","_","idx","outputRange","type","debouncedSetIsHeaderSet","cancel","prepared","useApproachingTabChange","gestureEnabled","currentScreenIndex","onIndexApproach","ContextHooks"],"sourceRoot":"../../../src","sources":["context/Context.hooks.ts"],"mappings":"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","ignoreList":[]}
@@ -31,6 +31,12 @@ export const Provider = /*#__PURE__*/memo(({
31
31
  transformationX,
32
32
  context
33
33
  });
34
+ ContextHooks.useApproachingTabChange({
35
+ config,
36
+ gestureEnabled,
37
+ transformationX,
38
+ currentScreenIndex
39
+ });
34
40
  return /*#__PURE__*/_jsx(Context.Provider, {
35
41
  value: {
36
42
  closeOffset,
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","memo","useRef","Gesture","useSharedValue","ContextHooks","jsx","_jsx","Context","Provider","children","config","context","gestureEnabled","currentScreenIndex","navHeight","closeOffset","topTabHeight","topTabNativeGesture","Native","current","transformationX","transformationY","currentYPosition","headerHeight","isHeaderHeightSet","useTransformHeaderOnTabChange","useResetApproachingScreenScrollOffset","value"],"sourceRoot":"../../../src","sources":["context/Context.tsx"],"mappings":";;AACA,SAASA,aAAa,EAAEC,IAAI,EAAEC,MAAM,QAAQ,OAAO;AACnD,SAASC,OAAO,QAAQ,8BAA8B;AACtD,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,YAAY,QAAQ,iBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE/C,OAAO,MAAMC,OAAO,gBAAGR,aAAa,CAClC,CAAC,CACH,CAAC;AAED,OAAO,MAAMS,QAAQ,gBAAGR,IAAI,CAC1B,CAAC;EACCS,QAAQ;EACRC,MAAM;EACNC;AAC6C,CAAC,KAAK;EACnD,MAAMC,cAAc,GAAGT,cAAc,CAAC,IAAI,CAAC;EAC3C,MAAMU,kBAAkB,GAAGV,cAAc,CAAC,CAAC,CAAC;EAE5C,MAAMW,SAAS,GAAGX,cAAc,CAAC,CAAC,CAAC;EACnC,MAAMY,WAAW,GAAGZ,cAAc,CAAC,CAAC,CAAC;EACrC,MAAMa,YAAY,GAAGb,cAAc,CAAC,CAAC,CAAC;EAEtC,MAAMc,mBAAmB,GAAGhB,MAAM,CAACC,OAAO,CAACgB,MAAM,CAAC,CAAC,CAAC,CAACC,OAAO;EAE5D,MAAM;IACJC,eAAe;IACfC,eAAe;IACfC,gBAAgB;IAChBC,YAAY;IACZC;EACF,CAAC,GAAGpB,YAAY,CAACqB,6BAA6B,CAAC;IAAEf;EAAO,CAAC,CAAC;EAE1DN,YAAY,CAACsB,qCAAqC,CAAC;IACjDJ,gBAAgB;IAChBF,eAAe;IACfT;EACF,CAAC,CAAC;EAEF,oBACEL,IAAA,CAACC,OAAO,CAACC,QAAQ;IACfmB,KAAK,EAAE;MACLZ,WAAW;MACXL,MAAM;MACNG,kBAAkB;MAClBS,gBAAgB;MAChBV,cAAc;MACdW,YAAY;MACZT,SAAS;MACTE,YAAY;MACZC,mBAAmB;MACnBG,eAAe;MACfC,eAAe;MACfV,OAAO;MACPa;IACF,CAAE;IAAAf,QAAA,EAEDA,QAAQ,CAAC;MACRM,WAAW;MACXL,MAAM;MACNG,kBAAkB;MAClBS,gBAAgB;MAChBV,cAAc;MACdW,YAAY;MACZT,SAAS;MACTE,YAAY;MACZC,mBAAmB;MACnBG,eAAe;MACfC,eAAe;MACfV,OAAO;MACPa;IACF,CAAC;EAAC,CACc,CAAC;AAEvB,CACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createContext","memo","useRef","Gesture","useSharedValue","ContextHooks","jsx","_jsx","Context","Provider","children","config","context","gestureEnabled","currentScreenIndex","navHeight","closeOffset","topTabHeight","topTabNativeGesture","Native","current","transformationX","transformationY","currentYPosition","headerHeight","isHeaderHeightSet","useTransformHeaderOnTabChange","useResetApproachingScreenScrollOffset","useApproachingTabChange","value"],"sourceRoot":"../../../src","sources":["context/Context.tsx"],"mappings":";;AACA,SAASA,aAAa,EAAEC,IAAI,EAAEC,MAAM,QAAQ,OAAO;AACnD,SAASC,OAAO,QAAQ,8BAA8B;AACtD,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,YAAY,QAAQ,iBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE/C,OAAO,MAAMC,OAAO,gBAAGR,aAAa,CAClC,CAAC,CACH,CAAC;AAED,OAAO,MAAMS,QAAQ,gBAAGR,IAAI,CAC1B,CAAC;EACCS,QAAQ;EACRC,MAAM;EACNC;AAC6C,CAAC,KAAK;EACnD,MAAMC,cAAc,GAAGT,cAAc,CAAC,IAAI,CAAC;EAC3C,MAAMU,kBAAkB,GAAGV,cAAc,CAAC,CAAC,CAAC;EAE5C,MAAMW,SAAS,GAAGX,cAAc,CAAC,CAAC,CAAC;EACnC,MAAMY,WAAW,GAAGZ,cAAc,CAAC,CAAC,CAAC;EACrC,MAAMa,YAAY,GAAGb,cAAc,CAAC,CAAC,CAAC;EAEtC,MAAMc,mBAAmB,GAAGhB,MAAM,CAACC,OAAO,CAACgB,MAAM,CAAC,CAAC,CAAC,CAACC,OAAO;EAE5D,MAAM;IACJC,eAAe;IACfC,eAAe;IACfC,gBAAgB;IAChBC,YAAY;IACZC;EACF,CAAC,GAAGpB,YAAY,CAACqB,6BAA6B,CAAC;IAAEf;EAAO,CAAC,CAAC;EAE1DN,YAAY,CAACsB,qCAAqC,CAAC;IACjDJ,gBAAgB;IAChBF,eAAe;IACfT;EACF,CAAC,CAAC;EAEFP,YAAY,CAACuB,uBAAuB,CAAC;IACnCjB,MAAM;IACNE,cAAc;IACdQ,eAAe;IACfP;EACF,CAAC,CAAC;EAEF,oBACEP,IAAA,CAACC,OAAO,CAACC,QAAQ;IACfoB,KAAK,EAAE;MACLb,WAAW;MACXL,MAAM;MACNG,kBAAkB;MAClBS,gBAAgB;MAChBV,cAAc;MACdW,YAAY;MACZT,SAAS;MACTE,YAAY;MACZC,mBAAmB;MACnBG,eAAe;MACfC,eAAe;MACfV,OAAO;MACPa;IACF,CAAE;IAAAf,QAAA,EAEDA,QAAQ,CAAC;MACRM,WAAW;MACXL,MAAM;MACNG,kBAAkB;MAClBS,gBAAgB;MAChBV,cAAc;MACdW,YAAY;MACZT,SAAS;MACTE,YAAY;MACZC,mBAAmB;MACnBG,eAAe;MACfC,eAAe;MACfV,OAAO;MACPa;IACF,CAAC;EAAC,CACc,CAAC;AAEvB,CACF,CAAC","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { createNavigatorFactory, TabRouter, useNavigationBuilder } from '@react-navigation/native';
3
+ import { createNavigatorFactory, TabActions, TabRouter, useNavigationBuilder } from '@react-navigation/native';
4
4
  import { GestureWrapper } from '../components/wrappers/GestureWrapper';
5
5
  import { TabBarBaseComponent } from '../components/elements/TabBarBaseComponent';
6
6
  import { Provider } from '../context/Context';
@@ -36,23 +36,10 @@ const TabViewNavigator = ({
36
36
  const context = ContextHooks.usePrepareContext({
37
37
  state
38
38
  });
39
-
40
- //NOTE: all belows reefers to Tabs component directly. Consider to move it somewhere
41
- const onIndexChange = (currentScreenIndex, gestureEnabled) => index => {
42
- currentScreenIndex.value = index;
43
- switch (_config[index]) {
44
- case 'normal':
45
- {
46
- gestureEnabled.value = true;
47
- break;
48
- }
49
- case 'minimalized':
50
- {
51
- gestureEnabled.value = false;
52
- break;
53
- }
54
- }
55
- navigation.navigate(state.routes[index]?.name ?? '');
39
+ const navigate = index => {
40
+ const route = state.routes[index];
41
+ if (!route) return;
42
+ navigation.dispatch(TabActions.jumpTo(route.name));
56
43
  };
57
44
  const navigationState = useMemo(() => ({
58
45
  index: state.index,
@@ -78,8 +65,6 @@ const TabViewNavigator = ({
78
65
  config: _config,
79
66
  context: context,
80
67
  children: ({
81
- currentScreenIndex,
82
- gestureEnabled,
83
68
  headerHeight,
84
69
  transformationY
85
70
  }) => /*#__PURE__*/_jsxs(_Fragment, {
@@ -97,7 +82,7 @@ const TabViewNavigator = ({
97
82
  children: /*#__PURE__*/_jsx(GestureWrapper, {
98
83
  children: /*#__PURE__*/_jsx(ReanimatedTabView, {
99
84
  navigationState: navigationState,
100
- onIndexChange: onIndexChange(currentScreenIndex, gestureEnabled),
85
+ navigate: navigate,
101
86
  renderScene: renderScene,
102
87
  renderTabBar: TabBarComponent
103
88
  })
@@ -1 +1 @@
1
- {"version":3,"names":["createNavigatorFactory","TabRouter","useNavigationBuilder","GestureWrapper","TabBarBaseComponent","Provider","omit","useMemo","Reanimated","ReanimatedTabView","ContextHooks","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","TabViewNavigator","HeaderComponent","TabBarComponent","children","config","initialRouteName","screenOptions","NavigationContent","descriptors","navigation","state","defaultScreenOptions","_config","routes","map","context","usePrepareContext","onIndexChange","currentScreenIndex","gestureEnabled","index","value","navigate","name","navigationState","route","restOptions","key","options","tabBarLabel","focused","title","undefined","renderScene","render","headerHeight","transformationY","View","onLayout","nativeEvent","layout","height","renderTabBar","createReanimatedTopTabNavigator"],"sourceRoot":"../../../src","sources":["navigator/createReanimatedTopTabNavigator.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createNavigatorFactory","TabActions","TabRouter","useNavigationBuilder","GestureWrapper","TabBarBaseComponent","Provider","omit","useMemo","Reanimated","ReanimatedTabView","ContextHooks","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","TabViewNavigator","HeaderComponent","TabBarComponent","children","config","initialRouteName","screenOptions","NavigationContent","descriptors","navigation","state","defaultScreenOptions","_config","routes","map","context","usePrepareContext","navigate","index","route","dispatch","jumpTo","name","navigationState","restOptions","key","options","tabBarLabel","focused","title","undefined","renderScene","render","headerHeight","transformationY","View","onLayout","nativeEvent","value","layout","height","renderTabBar","createReanimatedTopTabNavigator"],"sourceRoot":"../../../src","sources":["navigator/createReanimatedTopTabNavigator.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,15 @@
1
1
  import type { GestureStateChangeEvent, GestureUpdateEvent, PanGestureChangeEventPayload, PanGestureHandlerEventPayload } from 'react-native-gesture-handler';
2
- import type { ReanimatedTabViewTypes } from './types';
2
+ type NavigationState = {
3
+ size: number;
4
+ index: number;
5
+ };
3
6
  export declare const AnimationHelper: {
4
7
  animation: (newValue: number, duration?: number) => number;
5
- onChange: (event: GestureUpdateEvent<PanGestureHandlerEventPayload & PanGestureChangeEventPayload>, animationValue: number, width: number, navigationState: ReanimatedTabViewTypes.NavigationState) => number;
6
- onEnd: (event: GestureStateChangeEvent<PanGestureHandlerEventPayload>, minimumValueToChangeView: number, width: number, navigationState: ReanimatedTabViewTypes.NavigationState) => {
8
+ onChange: (event: GestureUpdateEvent<PanGestureHandlerEventPayload & PanGestureChangeEventPayload>, animationValue: number, width: number, navigationState: NavigationState) => number;
9
+ onEnd: (event: GestureStateChangeEvent<PanGestureHandlerEventPayload>, minimumValueToChangeView: number, width: number, navigationState: NavigationState) => {
7
10
  index: number;
8
11
  value: number;
9
12
  };
10
13
  };
14
+ export {};
11
15
  //# sourceMappingURL=AnimationHelper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AnimationHelper.d.ts","sourceRoot":"","sources":["../../../../../src/components/ReanimatedTopTab/AnimationHelper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EAClB,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAkFtD,eAAO,MAAM,eAAe;0BALC,MAAM;sBA1E1B,kBAAkB,CACvB,6BAA6B,GAAG,4BAA4B,CAC7D,kBACe,MAAM,SACf,MAAM,mBACI,sBAAsB,CAAC,eAAe;mBA6BhD,uBAAuB,CAAC,6BAA6B,CAAC,4BACnC,MAAM,SACzB,MAAM,mBACI,sBAAsB,CAAC,eAAe;;;;CA8CxD,CAAC"}
1
+ {"version":3,"file":"AnimationHelper.d.ts","sourceRoot":"","sources":["../../../../../src/components/ReanimatedTopTab/AnimationHelper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EAClB,4BAA4B,EAC5B,6BAA6B,EAC9B,MAAM,8BAA8B,CAAC;AAGtC,KAAK,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAkFvD,eAAO,MAAM,eAAe;0BALC,MAAM;sBA1E1B,kBAAkB,CACvB,6BAA6B,GAAG,4BAA4B,CAC7D,kBACe,MAAM,SACf,MAAM,mBACI,eAAe;mBA6BzB,uBAAuB,CAAC,6BAA6B,CAAC,4BACnC,MAAM,SACzB,MAAM,mBACI,eAAe;;;;CA8CjC,CAAC"}
@@ -4,11 +4,11 @@ export interface ReanimatedTabViewProps {
4
4
  LazyPlaceholder?: () => React.ReactNode;
5
5
  lazy?: boolean;
6
6
  navigationState: ReanimatedTabViewTypes.NavigationState;
7
- onIndexChange: (index: number) => void;
8
7
  percentageTrigger?: number;
9
8
  positionInterpolation?: ReanimatedTabViewTypes.PositionInterpolation;
10
9
  renderScene: (params: ReanimatedTabViewTypes.SceneProps) => React.ReactNode;
11
10
  renderTabBar?: (params: ReanimatedTabViewTypes.RenderTabsParams) => React.ReactNode;
11
+ navigate(index: number): void;
12
12
  }
13
13
  export declare const ReanimatedTabView: React.NamedExoticComponent<ReanimatedTabViewProps>;
14
14
  //# sourceMappingURL=ReanimatedTabView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReanimatedTabView.d.ts","sourceRoot":"","sources":["../../../../../src/components/ReanimatedTopTab/ReanimatedTabView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAiBvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD,MAAM,WAAW,sBAAsB;IACrC,eAAe,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,eAAe,EAAE,sBAAsB,CAAC,eAAe,CAAC;IACxD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,sBAAsB,CAAC,qBAAqB,CAAC;IACrE,WAAW,EAAE,CAAC,MAAM,EAAE,sBAAsB,CAAC,UAAU,KAAK,KAAK,CAAC,SAAS,CAAC;IAC5E,YAAY,CAAC,EAAE,CACb,MAAM,EAAE,sBAAsB,CAAC,gBAAgB,KAC5C,KAAK,CAAC,SAAS,CAAC;CACtB;AAED,eAAO,MAAM,iBAAiB,oDA2J7B,CAAC"}
1
+ {"version":3,"file":"ReanimatedTabView.d.ts","sourceRoot":"","sources":["../../../../../src/components/ReanimatedTopTab/ReanimatedTabView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAkBvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD,MAAM,WAAW,sBAAsB;IACrC,eAAe,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,eAAe,EAAE,sBAAsB,CAAC,eAAe,CAAC;IACxD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,sBAAsB,CAAC,qBAAqB,CAAC;IACrE,WAAW,EAAE,CAAC,MAAM,EAAE,sBAAsB,CAAC,UAAU,KAAK,KAAK,CAAC,SAAS,CAAC;IAC5E,YAAY,CAAC,EAAE,CACb,MAAM,EAAE,sBAAsB,CAAC,gBAAgB,KAC5C,KAAK,CAAC,SAAS,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,eAAO,MAAM,iBAAiB,oDAsK7B,CAAC"}
@@ -14,7 +14,7 @@ export declare namespace ReanimatedTabViewTypes {
14
14
  interface RenderTabsParams {
15
15
  navigationState: NavigationState;
16
16
  position: SharedValue<number>;
17
- onIndexChange: (index: number) => void;
17
+ navigate(index: number): void;
18
18
  }
19
19
  interface SceneProps {
20
20
  jumpTo?: (key: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/ReanimatedTopTab/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,yBAAiB,sBAAsB,CAAC;IACtC,UAAiB,KAAK;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;QACpC,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;IAED,KAAY,eAAe,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,KAAK,EAAE,CAAA;KAAE,CAAC;IAEjE,UAAiB,gBAAgB;QAC/B,eAAe,EAAE,eAAe,CAAC;QACjC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9B,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;KACxC;IAED,UAAiB,UAAU;QACzB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAC/B,KAAK,EAAE,KAAK,CAAC;KACd;IAED,KAAY,qBAAqB,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC3E"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/ReanimatedTopTab/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,yBAAiB,sBAAsB,CAAC;IACtC,UAAiB,KAAK;QACpB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;QACpC,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB;IAED,KAAY,eAAe,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,KAAK,EAAE,CAAA;KAAE,CAAC;IAEjE,UAAiB,gBAAgB;QAC/B,eAAe,EAAE,eAAe,CAAC;QACjC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B;IAED,UAAiB,UAAU;QACzB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAC/B,KAAK,EAAE,KAAK,CAAC;KACd;IAED,KAAY,qBAAqB,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC3E"}
@@ -5,5 +5,5 @@ export interface TabBarProps extends ReanimatedTabViewTypes.RenderTabsParams {
5
5
  children?: React.ReactNode;
6
6
  style?: AnimatedStyle;
7
7
  }
8
- export declare const TabBarBaseComponent: ({ children, navigationState, position, style, onIndexChange, }: TabBarProps) => import("react/jsx-runtime").JSX.Element;
8
+ export declare const TabBarBaseComponent: ({ children, navigationState, position, style, navigate, }: TabBarProps) => import("react/jsx-runtime").JSX.Element;
9
9
  //# sourceMappingURL=TabBarBaseComponent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabBarBaseComponent.d.ts","sourceRoot":"","sources":["../../../../../src/components/elements/TabBarBaseComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAmB,EACjB,KAAK,aAAa,EAGnB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE,MAAM,WAAW,WAAY,SAAQ,sBAAsB,CAAC,gBAAgB;IAC1E,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,eAAO,MAAM,mBAAmB,mEAM7B,WAAW,4CA8Cb,CAAC"}
1
+ {"version":3,"file":"TabBarBaseComponent.d.ts","sourceRoot":"","sources":["../../../../../src/components/elements/TabBarBaseComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAmB,EACjB,KAAK,aAAa,EAGnB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAExE,MAAM,WAAW,WAAY,SAAQ,sBAAsB,CAAC,gBAAgB;IAC1E,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB;AAED,eAAO,MAAM,mBAAmB,8DAM7B,WAAW,4CA8Cb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../../src/context/Context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAM3D,eAAO,MAAM,OAAO,iEAEnB,CAAC;AAEF,eAAO,MAAM,QAAQ,uEAKhB,0BAA0B,CAAC,kBAAkB,6CA4DjD,CAAC"}
1
+ {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../../src/context/Context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAM3D,eAAO,MAAM,OAAO,iEAEnB,CAAC;AAEF,eAAO,MAAM,QAAQ,uEAKhB,0BAA0B,CAAC,kBAAkB,6CAmEjD,CAAC"}
@@ -12,5 +12,6 @@ export declare const ContextHooks: {
12
12
  headerHeight: import("react-native-reanimated").SharedValue<number>;
13
13
  isHeaderHeightSet: import("react-native-reanimated").SharedValue<boolean>;
14
14
  };
15
+ useApproachingTabChange: ({ config, transformationX, gestureEnabled, currentScreenIndex, }: Pick<ReanimatedTopTabNavigation.ContextType, "config" | "transformationX" | "currentScreenIndex" | "gestureEnabled">) => void;
15
16
  };
16
17
  //# sourceMappingURL=Context.hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Context.hooks.d.ts","sourceRoot":"","sources":["../../../../src/context/Context.hooks.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAE3D,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAyQlC,eAAO,MAAM,YAAY;6FAnPtB,IAAI,CACL,0BAA0B,CAAC,WAAW,EACtC,SAAS,GAAG,kBAAkB,GAAG,iBAAiB,CACnD;oCA8IE;QACD,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;KAC1C,KAAG,0BAA0B,CAAC,kBAAkB,CAAC,SAAS,CAAC;iDAuBzD,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,QAAQ,CAAC;;;;;;;CA6ExD,CAAC"}
1
+ {"version":3,"file":"Context.hooks.d.ts","sourceRoot":"","sources":["../../../../src/context/Context.hooks.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAE3D,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AA0SlC,eAAO,MAAM,YAAY;6FApRtB,IAAI,CACL,0BAA0B,CAAC,WAAW,EACtC,SAAS,GAAG,kBAAkB,GAAG,iBAAiB,CACnD;oCA8IE;QACD,KAAK,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;KAC1C,KAAG,0BAA0B,CAAC,kBAAkB,CAAC,SAAS,CAAC;iDAuBzD,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,QAAQ,CAAC;;;;;;;gGA8EtD,IAAI,CACL,0BAA0B,CAAC,WAAW,EACtC,QAAQ,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,gBAAgB,CACvE;CA8BA,CAAC"}
@@ -40,7 +40,7 @@ export declare const TabHooks: {
40
40
  export declare const Tab: {
41
41
  ScrollView: ({ children, style, contentContainerStyle, onLayout, ...props }: import("./components/wrappers/ScrollView").ScreenWrapperProps) => import("react/jsx-runtime").JSX.Element;
42
42
  ScreenWrapper: ({ children, ...viewProps }: import("./components/wrappers/ScreenWrapper").ScreenWrapperProps) => import("react/jsx-runtime").JSX.Element;
43
- TabBarBaseComponent: ({ children, navigationState, position, style, onIndexChange, }: import("./components/elements/TabBarBaseComponent").TabBarProps) => import("react/jsx-runtime").JSX.Element;
43
+ TabBarBaseComponent: ({ children, navigationState, position, style, navigate, }: import("./components/elements/TabBarBaseComponent").TabBarProps) => import("react/jsx-runtime").JSX.Element;
44
44
  TabBarLabelBaseComponent: ({ index, ...props }: import("./components/elements/TabBarLabelBaseComponent").TabBarLabelTypes) => import("react/jsx-runtime").JSX.Element;
45
45
  };
46
46
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createReanimatedTopTabNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigator/createReanimatedTopTabNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EAGxB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAkI3D,eAAO,MAAM,+BAA+B,GAC1C,MAAM,SAAS,aAAa,+OApH3B,0BAA0B,CAAC,qBAAqB,6CA2H5B,CAAC"}
1
+ {"version":3,"file":"createReanimatedTopTabNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigator/createReanimatedTopTabNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,kBAAkB,EAGxB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,UAAU,CAAC;AA2G3D,eAAO,MAAM,+BAA+B,GAC1C,MAAM,SAAS,aAAa,+OA7F3B,0BAA0B,CAAC,qBAAqB,6CAoG5B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-navigation-reanimated-top-tabs",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "description": "react-navigation-reanimated-top-tabs",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",
@@ -5,7 +5,8 @@ import type {
5
5
  PanGestureHandlerEventPayload,
6
6
  } from 'react-native-gesture-handler';
7
7
  import { withTiming as reanimatedWithTiming } from 'react-native-reanimated';
8
- import type { ReanimatedTabViewTypes } from './types';
8
+
9
+ type NavigationState = { size: number; index: number };
9
10
 
10
11
  const onChange = (
11
12
  event: GestureUpdateEvent<
@@ -13,13 +14,13 @@ const onChange = (
13
14
  >,
14
15
  animationValue: number,
15
16
  width: number,
16
- navigationState: ReanimatedTabViewTypes.NavigationState
17
+ navigationState: NavigationState
17
18
  ) => {
18
19
  'worklet';
19
20
  if (animationValue > 0) {
20
21
  return 0;
21
22
  }
22
- const routesLength = navigationState.routes.length - 1;
23
+ const routesLength = navigationState.size - 1;
23
24
  if (animationValue < -width * routesLength) {
24
25
  return -width * routesLength;
25
26
  }
@@ -27,12 +28,12 @@ const onChange = (
27
28
  };
28
29
 
29
30
  const getIndex = (
30
- navigationState: ReanimatedTabViewTypes.NavigationState,
31
+ navigationState: NavigationState,
31
32
  type: 'increment' | 'decrement'
32
33
  ) => {
33
34
  'worklet';
34
35
  if (type === 'increment') {
35
- return navigationState.index === navigationState.routes.length - 1
36
+ return navigationState.index === navigationState.size - 1
36
37
  ? navigationState.index
37
38
  : navigationState.index + 1;
38
39
  }
@@ -45,7 +46,7 @@ const onEnd = (
45
46
  event: GestureStateChangeEvent<PanGestureHandlerEventPayload>,
46
47
  minimumValueToChangeView: number,
47
48
  width: number,
48
- navigationState: ReanimatedTabViewTypes.NavigationState
49
+ navigationState: NavigationState
49
50
  ) => {
50
51
  'worklet';
51
52
  if (event.velocityX < -200) {
@@ -10,6 +10,7 @@ import Reanimated, {
10
10
  interpolate,
11
11
  LinearTransition,
12
12
  runOnJS,
13
+ runOnUI,
13
14
  useAnimatedStyle,
14
15
  useDerivedValue,
15
16
  useSharedValue,
@@ -21,13 +22,13 @@ export interface ReanimatedTabViewProps {
21
22
  LazyPlaceholder?: () => React.ReactNode;
22
23
  lazy?: boolean;
23
24
  navigationState: ReanimatedTabViewTypes.NavigationState;
24
- onIndexChange: (index: number) => void;
25
25
  percentageTrigger?: number;
26
26
  positionInterpolation?: ReanimatedTabViewTypes.PositionInterpolation;
27
27
  renderScene: (params: ReanimatedTabViewTypes.SceneProps) => React.ReactNode;
28
28
  renderTabBar?: (
29
29
  params: ReanimatedTabViewTypes.RenderTabsParams
30
30
  ) => React.ReactNode;
31
+ navigate(index: number): void;
31
32
  }
32
33
 
33
34
  export const ReanimatedTabView = React.memo<ReanimatedTabViewProps>(
@@ -35,11 +36,11 @@ export const ReanimatedTabView = React.memo<ReanimatedTabViewProps>(
35
36
  LazyPlaceholder = () => null,
36
37
  lazy = false,
37
38
  navigationState,
38
- onIndexChange,
39
39
  percentageTrigger = 0.4,
40
40
  positionInterpolation,
41
41
  renderScene,
42
42
  renderTabBar,
43
+ navigate,
43
44
  }) => {
44
45
  const { width } = useWindowDimensions();
45
46
  const loadedScreens = useRef([
@@ -59,22 +60,29 @@ export const ReanimatedTabView = React.memo<ReanimatedTabViewProps>(
59
60
  );
60
61
  }, [positionInterpolation]);
61
62
 
62
- useEffect(() => {
63
- scrollPosition.value = AnimationHelper.animation(
64
- -navigationState.index * width
65
- );
66
- }, [navigationState.index, scrollPosition, width]);
63
+ const _navigate = (index: number) => {
64
+ scrollPosition.value = AnimationHelper.animation(-index * width);
65
+ navigate(index);
66
+ };
67
67
 
68
68
  const minimumValueToChangeView = useMemo(
69
69
  () => width * percentageTrigger,
70
70
  [percentageTrigger, width]
71
71
  );
72
72
 
73
+ const _navigationState = useSharedValue({ size: 0, index: 0 });
74
+
75
+ useEffect(() => {
76
+ runOnUI(() => {
77
+ _navigationState.value.size = navigationState.routes.length;
78
+ _navigationState.value.index = navigationState.index;
79
+ })();
80
+ }, [navigationState]);
81
+
73
82
  const panGesture = React.useMemo(
74
83
  () =>
75
84
  Gesture.Pan()
76
- .failOffsetY(-10)
77
- .failOffsetY(10)
85
+ .failOffsetY([-10, 10])
78
86
  .activeOffsetX([-20, 20])
79
87
  .onChange((event) => {
80
88
  'worklet';
@@ -82,7 +90,7 @@ export const ReanimatedTabView = React.memo<ReanimatedTabViewProps>(
82
90
  event,
83
91
  scrollPosition.value,
84
92
  width,
85
- navigationState
93
+ _navigationState.value
86
94
  );
87
95
  })
88
96
  .onEnd((event) => {
@@ -91,12 +99,13 @@ export const ReanimatedTabView = React.memo<ReanimatedTabViewProps>(
91
99
  event,
92
100
  minimumValueToChangeView,
93
101
  width,
94
- navigationState
102
+ _navigationState.value
95
103
  );
96
104
  scrollPosition.value = AnimationHelper.animation(state.value);
97
- runOnJS(onIndexChange)(state.index);
105
+ _navigationState.value.index = state.index;
106
+ runOnJS(navigate)(state.index);
98
107
  }),
99
- [minimumValueToChangeView, navigationState, onIndexChange, width]
108
+ [minimumValueToChangeView, width, _navigationState]
100
109
  );
101
110
 
102
111
  const scrollPositionStyle = useAnimatedStyle(() => ({
@@ -121,9 +130,8 @@ export const ReanimatedTabView = React.memo<ReanimatedTabViewProps>(
121
130
  return;
122
131
  }
123
132
  scrollPosition.value = AnimationHelper.animation(-newIndex * width);
124
- onIndexChange(newIndex);
125
133
  },
126
- [navigationState.routes, onIndexChange, scrollPosition, width]
134
+ [navigationState.routes, scrollPosition, width]
127
135
  );
128
136
 
129
137
  const chooseRender = useCallback(
@@ -166,7 +174,11 @@ export const ReanimatedTabView = React.memo<ReanimatedTabViewProps>(
166
174
  <GestureHandlerRootView style={defaultStyles.flex}>
167
175
  <Reanimated.View layout={LinearTransition} style={defaultStyles.flex}>
168
176
  {renderTabBar
169
- ? renderTabBar({ navigationState, position, onIndexChange })
177
+ ? renderTabBar({
178
+ navigationState,
179
+ position,
180
+ navigate: _navigate,
181
+ })
170
182
  : null}
171
183
  <GestureDetector gesture={panGesture}>
172
184
  <Reanimated.View
@@ -14,7 +14,7 @@ export namespace ReanimatedTabViewTypes {
14
14
  export interface RenderTabsParams {
15
15
  navigationState: NavigationState;
16
16
  position: SharedValue<number>;
17
- onIndexChange: (index: number) => void;
17
+ navigate(index: number): void;
18
18
  }
19
19
 
20
20
  export interface SceneProps {
@@ -19,7 +19,7 @@ export const TabBarBaseComponent = ({
19
19
  navigationState,
20
20
  position,
21
21
  style,
22
- onIndexChange,
22
+ navigate,
23
23
  }: TabBarProps) => {
24
24
  const layout = useWindowDimensions();
25
25
 
@@ -52,7 +52,7 @@ export const TabBarBaseComponent = ({
52
52
  style={styles.labelWrapper}
53
53
  key={route.key}
54
54
  onPress={() => {
55
- onIndexChange(index);
55
+ navigate(index);
56
56
  }}
57
57
  >
58
58
  {route.tabBarLabel ? (
@@ -276,8 +276,42 @@ const useTransformHeaderOnTabChange = ({
276
276
  };
277
277
  };
278
278
 
279
+ const useApproachingTabChange = ({
280
+ config,
281
+ transformationX,
282
+ gestureEnabled,
283
+ currentScreenIndex,
284
+ }: Pick<
285
+ ReanimatedTopTabNavigation.ContextType,
286
+ 'config' | 'transformationX' | 'currentScreenIndex' | 'gestureEnabled'
287
+ >) => {
288
+ const onIndexApproach = (index: number) => {
289
+ 'worklet';
290
+ currentScreenIndex.value = index;
291
+ switch (config[index]) {
292
+ case 'normal': {
293
+ gestureEnabled.value = true;
294
+ break;
295
+ }
296
+ case 'minimalized': {
297
+ gestureEnabled.value = false;
298
+ break;
299
+ }
300
+ }
301
+ };
302
+
303
+ useAnimatedReaction(
304
+ () => transformationX.value,
305
+ (current, previous) => {
306
+ const approachingIndex = ContextHelpers.getTargetIndex(current, previous);
307
+ onIndexApproach(approachingIndex);
308
+ }
309
+ );
310
+ };
311
+
279
312
  export const ContextHooks = {
280
313
  useResetApproachingScreenScrollOffset,
281
314
  usePrepareContext,
282
315
  useTransformHeaderOnTabChange,
316
+ useApproachingTabChange,
283
317
  };
@@ -37,6 +37,13 @@ export const Provider = memo(
37
37
  context,
38
38
  });
39
39
 
40
+ ContextHooks.useApproachingTabChange({
41
+ config,
42
+ gestureEnabled,
43
+ transformationX,
44
+ currentScreenIndex,
45
+ });
46
+
40
47
  return (
41
48
  <Context.Provider
42
49
  value={{
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  createNavigatorFactory,
3
3
  type ParamListBase,
4
+ TabActions,
4
5
  type TabNavigationState,
5
6
  TabRouter,
6
7
  useNavigationBuilder,
@@ -12,7 +13,7 @@ import { Provider } from '../context/Context';
12
13
  import { type ReanimatedTopTabNavigation } from '../types';
13
14
  import { omit } from 'lodash';
14
15
  import { useMemo } from 'react';
15
- import Reanimated, { type SharedValue } from 'react-native-reanimated';
16
+ import Reanimated from 'react-native-reanimated';
16
17
  import type { ReanimatedTabViewTypes } from '../components/ReanimatedTopTab/types';
17
18
  import { ReanimatedTabView } from '../components/ReanimatedTopTab/ReanimatedTabView';
18
19
  import { ContextHooks } from '../context/Context.hooks';
@@ -47,26 +48,11 @@ const TabViewNavigator = ({
47
48
 
48
49
  const context = ContextHooks.usePrepareContext({ state });
49
50
 
50
- //NOTE: all belows reefers to Tabs component directly. Consider to move it somewhere
51
- const onIndexChange =
52
- (
53
- currentScreenIndex: SharedValue<number>,
54
- gestureEnabled: SharedValue<boolean>
55
- ) =>
56
- (index: number) => {
57
- currentScreenIndex.value = index;
58
- switch (_config[index]) {
59
- case 'normal': {
60
- gestureEnabled.value = true;
61
- break;
62
- }
63
- case 'minimalized': {
64
- gestureEnabled.value = false;
65
- break;
66
- }
67
- }
68
- navigation.navigate(state.routes[index]?.name ?? '');
69
- };
51
+ const navigate = (index: number) => {
52
+ const route = state.routes[index];
53
+ if (!route) return;
54
+ navigation.dispatch(TabActions.jumpTo(route.name));
55
+ };
70
56
 
71
57
  const navigationState = useMemo(
72
58
  () => ({
@@ -101,12 +87,7 @@ const TabViewNavigator = ({
101
87
 
102
88
  return (
103
89
  <Provider config={_config} context={context}>
104
- {({
105
- currentScreenIndex,
106
- gestureEnabled,
107
- headerHeight,
108
- transformationY,
109
- }) => (
90
+ {({ headerHeight, transformationY }) => (
110
91
  <>
111
92
  <Reanimated.View
112
93
  onLayout={({ nativeEvent }) => {
@@ -124,10 +105,7 @@ const TabViewNavigator = ({
124
105
  <GestureWrapper>
125
106
  <ReanimatedTabView
126
107
  navigationState={navigationState}
127
- onIndexChange={onIndexChange(
128
- currentScreenIndex,
129
- gestureEnabled
130
- )}
108
+ navigate={navigate}
131
109
  renderScene={renderScene}
132
110
  renderTabBar={TabBarComponent}
133
111
  />