react-navigation-reanimated-top-tabs 0.5.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/ReanimatedTopTab/ReanimatedTabView.js +4 -5
- package/lib/commonjs/components/ReanimatedTopTab/ReanimatedTabView.js.map +1 -1
- package/lib/commonjs/components/elements/TabBarBaseComponent.js +4 -4
- package/lib/commonjs/components/elements/TabBarBaseComponent.js.map +1 -1
- package/lib/commonjs/components/wrappers/GestureWrapper.js +5 -6
- package/lib/commonjs/components/wrappers/GestureWrapper.js.map +1 -1
- package/lib/commonjs/components/wrappers/ScrollView.js +3 -1
- package/lib/commonjs/components/wrappers/ScrollView.js.map +1 -1
- package/lib/commonjs/context/Context.hooks.js +19 -1
- package/lib/commonjs/context/Context.hooks.js.map +1 -1
- package/lib/commonjs/context/Context.js +6 -3
- package/lib/commonjs/context/Context.js.map +1 -1
- package/lib/commonjs/hooks/useScreenScrollable.js +4 -2
- package/lib/commonjs/hooks/useScreenScrollable.js.map +1 -1
- package/lib/commonjs/navigator/createReanimatedTopTabNavigator.js +2 -12
- package/lib/commonjs/navigator/createReanimatedTopTabNavigator.js.map +1 -1
- package/lib/module/components/ReanimatedTopTab/ReanimatedTabView.js +4 -5
- package/lib/module/components/ReanimatedTopTab/ReanimatedTabView.js.map +1 -1
- package/lib/module/components/elements/TabBarBaseComponent.js +4 -4
- package/lib/module/components/elements/TabBarBaseComponent.js.map +1 -1
- package/lib/module/components/wrappers/GestureWrapper.js +5 -6
- package/lib/module/components/wrappers/GestureWrapper.js.map +1 -1
- package/lib/module/components/wrappers/ScrollView.js +3 -1
- package/lib/module/components/wrappers/ScrollView.js.map +1 -1
- package/lib/module/context/Context.hooks.js +20 -2
- package/lib/module/context/Context.hooks.js.map +1 -1
- package/lib/module/context/Context.js +6 -3
- package/lib/module/context/Context.js.map +1 -1
- package/lib/module/hooks/useScreenScrollable.js +4 -2
- package/lib/module/hooks/useScreenScrollable.js.map +1 -1
- package/lib/module/navigator/createReanimatedTopTabNavigator.js +4 -14
- package/lib/module/navigator/createReanimatedTopTabNavigator.js.map +1 -1
- package/lib/typescript/src/components/ReanimatedTopTab/ReanimatedTabView.d.ts.map +1 -1
- package/lib/typescript/src/components/ReanimatedTopTab/types.d.ts +1 -3
- package/lib/typescript/src/components/ReanimatedTopTab/types.d.ts.map +1 -1
- package/lib/typescript/src/components/elements/TabBarBaseComponent.d.ts +4 -18
- package/lib/typescript/src/components/elements/TabBarBaseComponent.d.ts.map +1 -1
- package/lib/typescript/src/components/wrappers/GestureWrapper.d.ts.map +1 -1
- package/lib/typescript/src/components/wrappers/ScrollView.d.ts.map +1 -1
- package/lib/typescript/src/context/Context.d.ts.map +1 -1
- package/lib/typescript/src/context/Context.hooks.d.ts +1 -0
- package/lib/typescript/src/context/Context.hooks.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useScreenScrollable.d.ts +1 -0
- package/lib/typescript/src/hooks/useScreenScrollable.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/navigator/createReanimatedTopTabNavigator.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +1 -0
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/ReanimatedTopTab/ReanimatedTabView.tsx +7 -11
- package/src/components/ReanimatedTopTab/types.ts +1 -4
- package/src/components/elements/TabBarBaseComponent.tsx +5 -20
- package/src/components/wrappers/GestureWrapper.tsx +5 -8
- package/src/components/wrappers/ScrollView.tsx +2 -0
- package/src/context/Context.hooks.ts +32 -2
- package/src/context/Context.tsx +9 -2
- package/src/hooks/useScreenScrollable.ts +4 -1
- package/src/navigator/createReanimatedTopTabNavigator.tsx +4 -22
- package/src/types.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","useRef","useState","Gesture","GestureDetector","Reanimated","Easing","interpolate","runOnJS","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","withTiming","useTabContext","jsx","_jsx","GestureWrapper","children","context","currentScreenIndex","currentYPosition","gestureEnabled","headerHeight","transformationY","movedY","gestureRef","Pan","currentScreenScrollOffset","Object","values","screen","properties","map","scrollY","value","withTimingConfig","duration","easing","bezier","_gestureEnabled","setGestureEnabled","
|
|
1
|
+
{"version":3,"names":["React","useMemo","useRef","useState","Gesture","GestureDetector","Reanimated","Easing","interpolate","runOnJS","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","withTiming","useTabContext","jsx","_jsx","GestureWrapper","children","context","currentScreenIndex","currentYPosition","gestureEnabled","headerHeight","transformationY","movedY","gestureRef","Pan","currentScreenScrollOffset","Object","values","screen","properties","map","scrollY","value","withTimingConfig","duration","easing","bezier","_gestureEnabled","setGestureEnabled","next","prev","gesture","activeOffsetY","onTouchesMove","_","stateManager","fail","onUpdate","translationY","onEnd","velocityY","gestureValue","changeOffset","destination","onFinalize","simultaneousWithExternalGesture","nativeGesture","withRef","enabled","style","flex","transform","translateY","View"],"sourceRoot":"../../../../src","sources":["components/wrappers/GestureWrapper.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,7 +23,8 @@ export const ScrollView = ({
|
|
|
23
23
|
contentContainerStyle: _contentContainerStyle,
|
|
24
24
|
onScroll,
|
|
25
25
|
bounces,
|
|
26
|
-
animatedProps
|
|
26
|
+
animatedProps,
|
|
27
|
+
overScrollMode
|
|
27
28
|
} = useScreenScrollable();
|
|
28
29
|
const {
|
|
29
30
|
innerLayout
|
|
@@ -50,6 +51,7 @@ export const ScrollView = ({
|
|
|
50
51
|
onScroll: onScroll,
|
|
51
52
|
bounces: bounces,
|
|
52
53
|
animatedProps: animatedProps,
|
|
54
|
+
overScrollMode: overScrollMode,
|
|
53
55
|
...props,
|
|
54
56
|
children: children
|
|
55
57
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","GestureDetector","Reanimated","useRef","useRoute","useTabContext","useScreenGesture","useScreenScrollable","useScreenProperties","jsx","_jsx","ScrollView","children","style","contentContainerStyle","onLayout","props","gesture","_style","_contentContainerStyle","onScroll","bounces","animatedProps","innerLayout","context","key","_ref","_onLayout","event","value","nativeEvent","layout","screen","setRef","current","ref","styleSheet","create","flexGrow"],"sourceRoot":"../../../../src","sources":["components/wrappers/ScrollView.tsx"],"mappings":";;AAAA,SAGEA,UAAU,QACL,cAAc;AACrB,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,OAAOC,UAAU,MAA8B,yBAAyB;AACxE,SAASC,MAAM,QAAQ,OAAO;AAC9B,SAASC,QAAQ,QAAQ,0BAA0B;AACnD,SAASC,aAAa,QAAQ,2BAA2B;AACzD,SAASC,gBAAgB,QAAQ,8BAA8B;AAC/D,SAASC,mBAAmB,QAAQ,iCAAiC;AACrE,SAASC,mBAAmB,QAAQ,iCAAiC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOtE,OAAO,MAAMC,UAAU,GAAGA,CAAC;EACzBC,QAAQ;EACRC,KAAK;EACLC,qBAAqB;EACrBC,QAAQ;EACR,GAAGC;AACe,CAAC,KAAK;EACxB,MAAMC,OAAO,GAAGX,gBAAgB,CAAC,CAAC;EAClC,MAAM;IACJO,KAAK,EAAEK,MAAM;IACbJ,qBAAqB,EAAEK,sBAAsB;IAC7CC,QAAQ;IACRC,OAAO;IACPC;EACF,CAAC,
|
|
1
|
+
{"version":3,"names":["StyleSheet","GestureDetector","Reanimated","useRef","useRoute","useTabContext","useScreenGesture","useScreenScrollable","useScreenProperties","jsx","_jsx","ScrollView","children","style","contentContainerStyle","onLayout","props","gesture","_style","_contentContainerStyle","onScroll","bounces","animatedProps","overScrollMode","innerLayout","context","key","_ref","_onLayout","event","value","nativeEvent","layout","screen","setRef","current","ref","styleSheet","create","flexGrow"],"sourceRoot":"../../../../src","sources":["components/wrappers/ScrollView.tsx"],"mappings":";;AAAA,SAGEA,UAAU,QACL,cAAc;AACrB,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,OAAOC,UAAU,MAA8B,yBAAyB;AACxE,SAASC,MAAM,QAAQ,OAAO;AAC9B,SAASC,QAAQ,QAAQ,0BAA0B;AACnD,SAASC,aAAa,QAAQ,2BAA2B;AACzD,SAASC,gBAAgB,QAAQ,8BAA8B;AAC/D,SAASC,mBAAmB,QAAQ,iCAAiC;AACrE,SAASC,mBAAmB,QAAQ,iCAAiC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOtE,OAAO,MAAMC,UAAU,GAAGA,CAAC;EACzBC,QAAQ;EACRC,KAAK;EACLC,qBAAqB;EACrBC,QAAQ;EACR,GAAGC;AACe,CAAC,KAAK;EACxB,MAAMC,OAAO,GAAGX,gBAAgB,CAAC,CAAC;EAClC,MAAM;IACJO,KAAK,EAAEK,MAAM;IACbJ,qBAAqB,EAAEK,sBAAsB;IAC7CC,QAAQ;IACRC,OAAO;IACPC,aAAa;IACbC;EACF,CAAC,GAAGhB,mBAAmB,CAAC,CAAC;EACzB,MAAM;IAAEiB;EAAY,CAAC,GAAGhB,mBAAmB,CAAC,CAAC;EAC7C,MAAM;IAAEiB;EAAQ,CAAC,GAAGpB,aAAa,CAAC,CAAC;EAEnC,MAAM;IAAEqB;EAAI,CAAC,GAAGtB,QAAQ,CAAC,CAAC;EAC1B,MAAMuB,IAAI,GAAGxB,MAAM,CAAwB,IAAI,CAAC;EAEhD,MAAMyB,SAAS,GAAIC,KAAwB,IAAK;IAC9Cd,QAAQ,GAAGc,KAAK,CAAC;IACjBL,WAAW,CAACM,KAAK,GAAGD,KAAK,CAACE,WAAW,CAACC,MAAM;IAC5CP,OAAO,CAACQ,MAAM,CAACC,MAAM,CAACR,GAAG,EAAEC,IAAI,CAACQ,OAAO,CAAC;EAC1C,CAAC;EAED,oBACEzB,IAAA,CAACT,eAAe;IAACgB,OAAO,EAAEA,OAAQ;IAAAL,QAAA,eAChCF,IAAA,CAACR,UAAU,CAACS,UAAU;MACpByB,GAAG,EAAET,IAAK;MACVb,qBAAqB,EAAE,CACrBK,sBAAsB,EACtBkB,UAAU,CAACvB,qBAAqB,EAChCA,qBAAqB,CACrB;MACFC,QAAQ,EAAEa,SAAU;MACpBf,KAAK,EAAE,CAACK,MAAM,EAAEL,KAAK,CAAE;MACvBO,QAAQ,EAAEA,QAAS;MACnBC,OAAO,EAAEA,OAAQ;MACjBC,aAAa,EAAEA,aAAc;MAC7BC,cAAc,EAAEA,cAAe;MAAA,GAC3BP,KAAK;MAAAJ,QAAA,EAERA;IAAQ,CACY;EAAC,CACT,CAAC;AAEtB,CAAC;AAED,MAAMyB,UAAU,GAAGrC,UAAU,CAACsC,MAAM,CAAC;EACnCxB,qBAAqB,EAAE;IACrByB,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { interpolate, makeMutable, runOnJS, useAnimatedReaction, useDerivedValue, useSharedValue } from 'react-native-reanimated';
|
|
4
4
|
import { useRef } from 'react';
|
|
5
5
|
import { Gesture } from 'react-native-gesture-handler';
|
|
6
|
-
import { assign } from 'lodash';
|
|
6
|
+
import { assign, throttle } from 'lodash';
|
|
7
7
|
import { ContextHelpers } from './Context.helpers';
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -178,6 +178,7 @@ const useTransformHeaderOnTabChange = ({
|
|
|
178
178
|
config
|
|
179
179
|
}) => {
|
|
180
180
|
const headerHeight = useSharedValue(0);
|
|
181
|
+
const isHeaderHeightSet = useSharedValue(false);
|
|
181
182
|
const transformationY = useSharedValue(0);
|
|
182
183
|
const transformationX = useSharedValue(0);
|
|
183
184
|
const currentYPosition = useSharedValue(0);
|
|
@@ -194,6 +195,22 @@ const useTransformHeaderOnTabChange = ({
|
|
|
194
195
|
return 0;
|
|
195
196
|
}
|
|
196
197
|
}), [config]);
|
|
198
|
+
|
|
199
|
+
// NOTE: headerHeight is setting onLayout, so at very first render it has value equal 0,
|
|
200
|
+
// but right after the header content renders onLayout calls once again.
|
|
201
|
+
// That's why we use debounce
|
|
202
|
+
const debouncedSetIsHeaderSet = throttle(() => {
|
|
203
|
+
isHeaderHeightSet.value = true;
|
|
204
|
+
}, 10);
|
|
205
|
+
const cancel = () => {
|
|
206
|
+
debouncedSetIsHeaderSet.cancel();
|
|
207
|
+
};
|
|
208
|
+
useAnimatedReaction(() => headerHeight.value, (prepared, previous) => {
|
|
209
|
+
runOnJS(cancel)();
|
|
210
|
+
if (previous !== prepared) {
|
|
211
|
+
runOnJS(debouncedSetIsHeaderSet)();
|
|
212
|
+
}
|
|
213
|
+
}, []);
|
|
197
214
|
useAnimatedReaction(() => transformationX.value, value => {
|
|
198
215
|
if (currentYPosition.value === -headerHeight.value) return;
|
|
199
216
|
transformationY.value = interpolate(value, inputRange.value, outputRange.value, 'clamp');
|
|
@@ -202,7 +219,8 @@ const useTransformHeaderOnTabChange = ({
|
|
|
202
219
|
transformationY,
|
|
203
220
|
transformationX,
|
|
204
221
|
currentYPosition,
|
|
205
|
-
headerHeight
|
|
222
|
+
headerHeight,
|
|
223
|
+
isHeaderHeightSet
|
|
206
224
|
};
|
|
207
225
|
};
|
|
208
226
|
export const ContextHooks = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["interpolate","makeMutable","runOnJS","useAnimatedReaction","useDerivedValue","useSharedValue","useRef","Gesture","assign","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","transformationY","inputRange","_","idx","outputRange","type","ContextHooks"],"sourceRoot":"../../../src","sources":["context/Context.hooks.ts"],"mappings":";;AAAA,SACEA,WAAW,EACXC,WAAW,EACXC,OAAO,EACPC,mBAAmB,EACnBC,eAAe,EACfC,cAAc,QACT,yBAAyB;AAEhC,SAASC,MAAM,QAAQ,OAAO;AAK9B,SAASC,OAAO,QAAQ,8BAA8B;AACtD,SAASC,MAAM,QAAQ,QAAQ;
|
|
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":[]}
|
|
@@ -21,7 +21,8 @@ export const Provider = /*#__PURE__*/memo(({
|
|
|
21
21
|
transformationX,
|
|
22
22
|
transformationY,
|
|
23
23
|
currentYPosition,
|
|
24
|
-
headerHeight
|
|
24
|
+
headerHeight,
|
|
25
|
+
isHeaderHeightSet
|
|
25
26
|
} = ContextHooks.useTransformHeaderOnTabChange({
|
|
26
27
|
config
|
|
27
28
|
});
|
|
@@ -43,7 +44,8 @@ export const Provider = /*#__PURE__*/memo(({
|
|
|
43
44
|
topTabNativeGesture,
|
|
44
45
|
transformationX,
|
|
45
46
|
transformationY,
|
|
46
|
-
context
|
|
47
|
+
context,
|
|
48
|
+
isHeaderHeightSet
|
|
47
49
|
},
|
|
48
50
|
children: children({
|
|
49
51
|
closeOffset,
|
|
@@ -57,7 +59,8 @@ export const Provider = /*#__PURE__*/memo(({
|
|
|
57
59
|
topTabNativeGesture,
|
|
58
60
|
transformationX,
|
|
59
61
|
transformationY,
|
|
60
|
-
context
|
|
62
|
+
context,
|
|
63
|
+
isHeaderHeightSet
|
|
61
64
|
})
|
|
62
65
|
});
|
|
63
66
|
});
|
|
@@ -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","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;
|
|
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":[]}
|
|
@@ -25,12 +25,13 @@ export const useScreenScrollable = () => {
|
|
|
25
25
|
headerHeight,
|
|
26
26
|
context,
|
|
27
27
|
topTabHeight,
|
|
28
|
-
transformationY
|
|
28
|
+
transformationY,
|
|
29
|
+
isHeaderHeightSet
|
|
29
30
|
} = useTabContext();
|
|
30
31
|
const screen = useScreenProperties();
|
|
31
32
|
const navigationHeader = React.useContext(HeaderHeightContext) ?? top;
|
|
32
33
|
const animatedProps = useAnimatedProps(() => ({
|
|
33
|
-
scrollEnabled: !gestureEnabled.value || currentYPosition.value === -headerHeight.value
|
|
34
|
+
scrollEnabled: isHeaderHeightSet.value && (!gestureEnabled.value || currentYPosition.value === -headerHeight.value)
|
|
34
35
|
}));
|
|
35
36
|
const onScroll = useAnimatedScrollHandler(({
|
|
36
37
|
contentOffset
|
|
@@ -51,6 +52,7 @@ export const useScreenScrollable = () => {
|
|
|
51
52
|
paddingBottom: bottom
|
|
52
53
|
},
|
|
53
54
|
onScroll,
|
|
55
|
+
overScrollMode: 'never',
|
|
54
56
|
style
|
|
55
57
|
};
|
|
56
58
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRoute","useWindowDimensions","useSafeAreaInsets","useTabContext","React","HeaderHeightContext","clamp","useAnimatedProps","useAnimatedScrollHandler","useAnimatedStyle","useDerivedValue","useScreenProperties","useScreenScrollable","key","height","bottom","top","currentYPosition","gestureEnabled","headerHeight","context","topTabHeight","transformationY","screen","navigationHeader","useContext","animatedProps","scrollEnabled","value","onScroll","contentOffset","scrollPosition","properties","scrollY","y","oppositeHeaderState","difference","outerLayout","innerLayout","Infinity","style","minHeight","bounces","contentContainerStyle","paddingBottom"],"sourceRoot":"../../../src","sources":["hooks/useScreenScrollable.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,0BAA0B;AACnD,SAASC,mBAAmB,QAAQ,cAAc;AAClD,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,mBAAmB,QAAQ,4BAA4B;AAChE,SACEC,KAAK,EACLC,gBAAgB,EAChBC,wBAAwB,EACxBC,gBAAgB,EAChBC,eAAe,QACV,yBAAyB;AAEhC,SAASC,mBAAmB,QAAQ,uBAAuB;AAE3D,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;EACvC,MAAM;IAAEC;EAAI,CAAC,GAAGb,QAAQ,CAAC,CAAC;EAC1B,MAAM;IAAEc;EAAO,CAAC,GAAGb,mBAAmB,CAAC,CAAC;EACxC,MAAM;IAAEc,MAAM;IAAEC;EAAI,CAAC,GAAGd,iBAAiB,CAAC,CAAC;EAC3C,MAAM;IACJe,gBAAgB;IAChBC,cAAc;IACdC,YAAY;IACZC,OAAO;IACPC,YAAY;IACZC;EACF,CAAC,
|
|
1
|
+
{"version":3,"names":["useRoute","useWindowDimensions","useSafeAreaInsets","useTabContext","React","HeaderHeightContext","clamp","useAnimatedProps","useAnimatedScrollHandler","useAnimatedStyle","useDerivedValue","useScreenProperties","useScreenScrollable","key","height","bottom","top","currentYPosition","gestureEnabled","headerHeight","context","topTabHeight","transformationY","isHeaderHeightSet","screen","navigationHeader","useContext","animatedProps","scrollEnabled","value","onScroll","contentOffset","scrollPosition","properties","scrollY","y","oppositeHeaderState","difference","outerLayout","innerLayout","Infinity","style","minHeight","bounces","contentContainerStyle","paddingBottom","overScrollMode"],"sourceRoot":"../../../src","sources":["hooks/useScreenScrollable.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,0BAA0B;AACnD,SAASC,mBAAmB,QAAQ,cAAc;AAClD,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,mBAAmB,QAAQ,4BAA4B;AAChE,SACEC,KAAK,EACLC,gBAAgB,EAChBC,wBAAwB,EACxBC,gBAAgB,EAChBC,eAAe,QACV,yBAAyB;AAEhC,SAASC,mBAAmB,QAAQ,uBAAuB;AAE3D,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KAAM;EACvC,MAAM;IAAEC;EAAI,CAAC,GAAGb,QAAQ,CAAC,CAAC;EAC1B,MAAM;IAAEc;EAAO,CAAC,GAAGb,mBAAmB,CAAC,CAAC;EACxC,MAAM;IAAEc,MAAM;IAAEC;EAAI,CAAC,GAAGd,iBAAiB,CAAC,CAAC;EAC3C,MAAM;IACJe,gBAAgB;IAChBC,cAAc;IACdC,YAAY;IACZC,OAAO;IACPC,YAAY;IACZC,eAAe;IACfC;EACF,CAAC,GAAGpB,aAAa,CAAC,CAAC;EAEnB,MAAMqB,MAAM,GAAGb,mBAAmB,CAAC,CAAC;EAEpC,MAAMc,gBAAgB,GAAGrB,KAAK,CAACsB,UAAU,CAACrB,mBAAmB,CAAC,IAAIW,GAAG;EAErE,MAAMW,aAAa,GAAGpB,gBAAgB,CAAC,OAAO;IAC5CqB,aAAa,EACXL,iBAAiB,CAACM,KAAK,KACtB,CAACX,cAAc,CAACW,KAAK,IAAIZ,gBAAgB,CAACY,KAAK,KAAK,CAACV,YAAY,CAACU,KAAK;EAC5E,CAAC,CAAC,CAAC;EAEH,MAAMC,QAAQ,GAAGtB,wBAAwB,CAAC,CAAC;IAAEuB;EAAc,CAAC,KAAK;IAC/D,MAAMC,cAAc,GAAGZ,OAAO,CAACI,MAAM,CAACS,UAAU,CAACpB,GAAG,CAAC,EAAEqB,OAAO;IAC9D,IAAI,CAACF,cAAc,EACjB,MAAM,uDAAuD;IAC/DA,cAAc,CAACH,KAAK,GAAGE,aAAa,CAACI,CAAC;EACxC,CAAC,CAAC;EAEF,MAAMC,mBAAmB,GAAG1B,eAAe,CAAC,MAC1CY,eAAe,CAACO,KAAK,IAAI,CAAC,GAAGV,YAAY,CAACU,KAAK,GAAG,CACpD,CAAC;EAED,MAAMQ,UAAU,GAAG3B,eAAe,CAAC,MACjCJ,KAAK,CACHkB,MAAM,CAACc,WAAW,CAACT,KAAK,CAACf,MAAM,GAAGU,MAAM,CAACe,WAAW,CAACV,KAAK,CAACf,MAAM,EACjE,CAAC,EACD0B,QACF,CACF,CAAC;EAED,MAAMC,KAAK,GAAGhC,gBAAgB,CAAC,OAAO;IACpCiC,SAAS,EACP5B,MAAM,GACNO,YAAY,CAACQ,KAAK,GAClBO,mBAAmB,CAACP,KAAK,GACzBJ,gBAAgB,GAChBY,UAAU,CAACR;EACf,CAAC,CAAC,CAAC;EAEH,OAAO;IACLF,aAAa;IACbgB,OAAO,EAAE,KAAK;IACdC,qBAAqB,EAAE;MAAEC,aAAa,EAAE9B;IAAO,CAAC;IAChDe,QAAQ;IACRgB,cAAc,EAAE,OAAgB;IAChCL;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { createNavigatorFactory,
|
|
3
|
+
import { createNavigatorFactory, 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';
|
|
7
7
|
import { omit } from 'lodash';
|
|
8
|
-
import {
|
|
8
|
+
import { useMemo } from 'react';
|
|
9
9
|
import Reanimated from 'react-native-reanimated';
|
|
10
10
|
import { ReanimatedTabView } from '../components/ReanimatedTopTab/ReanimatedTabView';
|
|
11
11
|
import { ContextHooks } from '../context/Context.hooks';
|
|
@@ -39,7 +39,6 @@ const TabViewNavigator = ({
|
|
|
39
39
|
|
|
40
40
|
//NOTE: all belows reefers to Tabs component directly. Consider to move it somewhere
|
|
41
41
|
const onIndexChange = (currentScreenIndex, gestureEnabled) => index => {
|
|
42
|
-
navigation.navigate(state.routes[index]?.name ?? '');
|
|
43
42
|
currentScreenIndex.value = index;
|
|
44
43
|
switch (_config[index]) {
|
|
45
44
|
case 'normal':
|
|
@@ -53,6 +52,7 @@ const TabViewNavigator = ({
|
|
|
53
52
|
break;
|
|
54
53
|
}
|
|
55
54
|
}
|
|
55
|
+
navigation.navigate(state.routes[index]?.name ?? '');
|
|
56
56
|
};
|
|
57
57
|
const navigationState = useMemo(() => ({
|
|
58
58
|
index: state.index,
|
|
@@ -71,16 +71,6 @@ const TabViewNavigator = ({
|
|
|
71
71
|
};
|
|
72
72
|
})
|
|
73
73
|
}), [state]);
|
|
74
|
-
const navigate = route => {
|
|
75
|
-
navigation.dispatch({
|
|
76
|
-
...TabActions.jumpTo(route.name, route.params),
|
|
77
|
-
target: state.key
|
|
78
|
-
});
|
|
79
|
-
};
|
|
80
|
-
const renderTabBar = useCallback(props => /*#__PURE__*/_jsx(TabBarComponent, {
|
|
81
|
-
...props,
|
|
82
|
-
navigate: navigate
|
|
83
|
-
}), []);
|
|
84
74
|
const renderScene = ({
|
|
85
75
|
route
|
|
86
76
|
}) => descriptors[route.key]?.render();
|
|
@@ -109,7 +99,7 @@ const TabViewNavigator = ({
|
|
|
109
99
|
navigationState: navigationState,
|
|
110
100
|
onIndexChange: onIndexChange(currentScreenIndex, gestureEnabled),
|
|
111
101
|
renderScene: renderScene,
|
|
112
|
-
renderTabBar:
|
|
102
|
+
renderTabBar: TabBarComponent
|
|
113
103
|
})
|
|
114
104
|
})
|
|
115
105
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createNavigatorFactory","
|
|
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 +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,
|
|
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"}
|
|
@@ -14,14 +14,12 @@ export declare namespace ReanimatedTabViewTypes {
|
|
|
14
14
|
interface RenderTabsParams {
|
|
15
15
|
navigationState: NavigationState;
|
|
16
16
|
position: SharedValue<number>;
|
|
17
|
+
onIndexChange: (index: number) => void;
|
|
17
18
|
}
|
|
18
19
|
interface SceneProps {
|
|
19
20
|
jumpTo?: (key: string) => void;
|
|
20
21
|
route: Route;
|
|
21
22
|
}
|
|
22
|
-
interface SceneMapRoutes {
|
|
23
|
-
[key: string]: React.ReactNode;
|
|
24
|
-
}
|
|
25
23
|
type PositionInterpolation = {
|
|
26
24
|
input: number[];
|
|
27
25
|
output: number[];
|
|
@@ -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;
|
|
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,23 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { type AnimatedStyle
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
name?: string;
|
|
6
|
-
tabBarLabel?: () => React.ReactNode;
|
|
7
|
-
title?: string;
|
|
8
|
-
}
|
|
9
|
-
export type NavigationState = {
|
|
10
|
-
index: number;
|
|
11
|
-
routes: Route[];
|
|
12
|
-
};
|
|
13
|
-
export interface RenderTabsParams {
|
|
14
|
-
navigationState: NavigationState;
|
|
15
|
-
position: SharedValue<number>;
|
|
16
|
-
}
|
|
17
|
-
export interface TabBarProps extends RenderTabsParams {
|
|
2
|
+
import { type AnimatedStyle } from 'react-native-reanimated';
|
|
3
|
+
import { type ReanimatedTabViewTypes } from '../ReanimatedTopTab/types';
|
|
4
|
+
export interface TabBarProps extends ReanimatedTabViewTypes.RenderTabsParams {
|
|
18
5
|
children?: React.ReactNode;
|
|
19
|
-
navigate: (route: Route) => void;
|
|
20
6
|
style?: AnimatedStyle;
|
|
21
7
|
}
|
|
22
|
-
export declare const TabBarBaseComponent: ({ children,
|
|
8
|
+
export declare const TabBarBaseComponent: ({ children, navigationState, position, style, onIndexChange, }: TabBarProps) => import("react/jsx-runtime").JSX.Element;
|
|
23
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,
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GestureWrapper.d.ts","sourceRoot":"","sources":["../../../../../src/components/wrappers/GestureWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAezD,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,cAAc,iBAAkB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"GestureWrapper.d.ts","sourceRoot":"","sources":["../../../../../src/components/wrappers/GestureWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAezD,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,eAAO,MAAM,cAAc,iBAAkB,mBAAmB,4CA8G/D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollView.d.ts","sourceRoot":"","sources":["../../../../../src/components/wrappers/ScrollView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,cAAc,CAAC;AAEtB,OAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAQzE,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAC5C,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC,CAC3D,GACC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC;AAEzC,eAAO,MAAM,UAAU,mEAMpB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"ScrollView.d.ts","sourceRoot":"","sources":["../../../../../src/components/wrappers/ScrollView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,cAAc,CAAC;AAEtB,OAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAQzE,MAAM,MAAM,kBAAkB,GAAG,aAAa,CAC5C,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC,CAC3D,GACC,IAAI,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC;AAEzC,eAAO,MAAM,UAAU,mEAMpB,kBAAkB,4CA2CpB,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,
|
|
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"}
|
|
@@ -10,6 +10,7 @@ export declare const ContextHooks: {
|
|
|
10
10
|
transformationX: import("react-native-reanimated").SharedValue<number>;
|
|
11
11
|
currentYPosition: import("react-native-reanimated").SharedValue<number>;
|
|
12
12
|
headerHeight: import("react-native-reanimated").SharedValue<number>;
|
|
13
|
+
isHeaderHeightSet: import("react-native-reanimated").SharedValue<boolean>;
|
|
13
14
|
};
|
|
14
15
|
};
|
|
15
16
|
//# 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;
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useScreenScrollable.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useScreenScrollable.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"useScreenScrollable.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useScreenScrollable.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;CA4D/B,CAAC"}
|
|
@@ -28,6 +28,7 @@ export declare const TabHooks: {
|
|
|
28
28
|
paddingBottom: number;
|
|
29
29
|
};
|
|
30
30
|
onScroll: import("react-native-reanimated").ScrollHandlerProcessed<Record<string, unknown>>;
|
|
31
|
+
overScrollMode: "never";
|
|
31
32
|
style: {
|
|
32
33
|
minHeight: number;
|
|
33
34
|
};
|
|
@@ -39,7 +40,7 @@ export declare const TabHooks: {
|
|
|
39
40
|
export declare const Tab: {
|
|
40
41
|
ScrollView: ({ children, style, contentContainerStyle, onLayout, ...props }: import("./components/wrappers/ScrollView").ScreenWrapperProps) => import("react/jsx-runtime").JSX.Element;
|
|
41
42
|
ScreenWrapper: ({ children, ...viewProps }: import("./components/wrappers/ScreenWrapper").ScreenWrapperProps) => import("react/jsx-runtime").JSX.Element;
|
|
42
|
-
TabBarBaseComponent: ({ children,
|
|
43
|
+
TabBarBaseComponent: ({ children, navigationState, position, style, onIndexChange, }: import("./components/elements/TabBarBaseComponent").TabBarProps) => import("react/jsx-runtime").JSX.Element;
|
|
43
44
|
TabBarLabelBaseComponent: ({ index, ...props }: import("./components/elements/TabBarLabelBaseComponent").TabBarLabelTypes) => import("react/jsx-runtime").JSX.Element;
|
|
44
45
|
};
|
|
45
46
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAU9F,eAAO,MAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAU9F,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAOpB,CAAC;AAEF,eAAO,MAAM,GAAG;;;;;CAKf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createReanimatedTopTabNavigator.d.ts","sourceRoot":"","sources":["../../../../src/navigator/createReanimatedTopTabNavigator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,
|
|
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"}
|
|
@@ -13,6 +13,7 @@ export declare namespace ReanimatedTopTabNavigation {
|
|
|
13
13
|
currentYPosition: SharedValue<number>;
|
|
14
14
|
gestureEnabled: SharedValue<boolean>;
|
|
15
15
|
headerHeight: SharedValue<number>;
|
|
16
|
+
isHeaderHeightSet: SharedValue<boolean>;
|
|
16
17
|
navHeight: SharedValue<number>;
|
|
17
18
|
topTabHeight: SharedValue<number>;
|
|
18
19
|
topTabNativeGesture: NativeGesture;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -45,7 +45,6 @@ export const ReanimatedTabView = React.memo<ReanimatedTabViewProps>(
|
|
|
45
45
|
const loadedScreens = useRef([
|
|
46
46
|
navigationState.routes[navigationState.index],
|
|
47
47
|
]);
|
|
48
|
-
// const width = 160;
|
|
49
48
|
const scrollPosition = useSharedValue(navigationState.index);
|
|
50
49
|
|
|
51
50
|
const position = useDerivedValue(() => {
|
|
@@ -97,13 +96,7 @@ export const ReanimatedTabView = React.memo<ReanimatedTabViewProps>(
|
|
|
97
96
|
scrollPosition.value = AnimationHelper.animation(state.value);
|
|
98
97
|
runOnJS(onIndexChange)(state.index);
|
|
99
98
|
}),
|
|
100
|
-
[
|
|
101
|
-
minimumValueToChangeView,
|
|
102
|
-
navigationState,
|
|
103
|
-
onIndexChange,
|
|
104
|
-
scrollPosition,
|
|
105
|
-
width,
|
|
106
|
-
]
|
|
99
|
+
[minimumValueToChangeView, navigationState, onIndexChange, width]
|
|
107
100
|
);
|
|
108
101
|
|
|
109
102
|
const scrollPositionStyle = useAnimatedStyle(() => ({
|
|
@@ -121,9 +114,10 @@ export const ReanimatedTabView = React.memo<ReanimatedTabViewProps>(
|
|
|
121
114
|
|
|
122
115
|
const jumpTo = React.useCallback(
|
|
123
116
|
(key: string) => {
|
|
124
|
-
const newIndex = navigationState.routes.findIndex(
|
|
117
|
+
const newIndex = navigationState.routes.findIndex(
|
|
118
|
+
(route) => route.key === key
|
|
119
|
+
);
|
|
125
120
|
if (newIndex === -1) {
|
|
126
|
-
// throw
|
|
127
121
|
return;
|
|
128
122
|
}
|
|
129
123
|
scrollPosition.value = AnimationHelper.animation(-newIndex * width);
|
|
@@ -171,7 +165,9 @@ export const ReanimatedTabView = React.memo<ReanimatedTabViewProps>(
|
|
|
171
165
|
return (
|
|
172
166
|
<GestureHandlerRootView style={defaultStyles.flex}>
|
|
173
167
|
<Reanimated.View layout={LinearTransition} style={defaultStyles.flex}>
|
|
174
|
-
{renderTabBar
|
|
168
|
+
{renderTabBar
|
|
169
|
+
? renderTabBar({ navigationState, position, onIndexChange })
|
|
170
|
+
: null}
|
|
175
171
|
<GestureDetector gesture={panGesture}>
|
|
176
172
|
<Reanimated.View
|
|
177
173
|
layout={LinearTransition}
|
|
@@ -14,6 +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
18
|
}
|
|
18
19
|
|
|
19
20
|
export interface SceneProps {
|
|
@@ -21,9 +22,5 @@ export namespace ReanimatedTabViewTypes {
|
|
|
21
22
|
route: Route;
|
|
22
23
|
}
|
|
23
24
|
|
|
24
|
-
export interface SceneMapRoutes {
|
|
25
|
-
[key: string]: React.ReactNode;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
25
|
export type PositionInterpolation = { input: number[]; output: number[] };
|
|
29
26
|
}
|
|
@@ -3,38 +3,23 @@ import { Pressable, StyleSheet, Text, useWindowDimensions } from 'react-native';
|
|
|
3
3
|
import Reanimated, {
|
|
4
4
|
type AnimatedStyle,
|
|
5
5
|
interpolate,
|
|
6
|
-
type SharedValue,
|
|
7
6
|
useAnimatedReaction,
|
|
8
7
|
} from 'react-native-reanimated';
|
|
9
8
|
|
|
10
9
|
import { useTabContext } from '../../hooks/useTabContext';
|
|
10
|
+
import { type ReanimatedTabViewTypes } from '../ReanimatedTopTab/types';
|
|
11
11
|
|
|
12
|
-
export interface
|
|
13
|
-
key: string;
|
|
14
|
-
name?: string;
|
|
15
|
-
tabBarLabel?: () => React.ReactNode;
|
|
16
|
-
title?: string;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export type NavigationState = { index: number; routes: Route[] };
|
|
20
|
-
|
|
21
|
-
export interface RenderTabsParams {
|
|
22
|
-
navigationState: NavigationState;
|
|
23
|
-
position: SharedValue<number>;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export interface TabBarProps extends RenderTabsParams {
|
|
12
|
+
export interface TabBarProps extends ReanimatedTabViewTypes.RenderTabsParams {
|
|
27
13
|
children?: React.ReactNode;
|
|
28
|
-
navigate: (route: Route) => void;
|
|
29
14
|
style?: AnimatedStyle;
|
|
30
15
|
}
|
|
31
16
|
|
|
32
17
|
export const TabBarBaseComponent = ({
|
|
33
18
|
children,
|
|
34
|
-
navigate,
|
|
35
19
|
navigationState,
|
|
36
20
|
position,
|
|
37
21
|
style,
|
|
22
|
+
onIndexChange,
|
|
38
23
|
}: TabBarProps) => {
|
|
39
24
|
const layout = useWindowDimensions();
|
|
40
25
|
|
|
@@ -62,12 +47,12 @@ export const TabBarBaseComponent = ({
|
|
|
62
47
|
}}
|
|
63
48
|
>
|
|
64
49
|
<Reanimated.View style={[styles.wrapper, style]}>
|
|
65
|
-
{navigationState.routes.map((route) => (
|
|
50
|
+
{navigationState.routes.map((route, index) => (
|
|
66
51
|
<Pressable
|
|
67
52
|
style={styles.labelWrapper}
|
|
68
53
|
key={route.key}
|
|
69
54
|
onPress={() => {
|
|
70
|
-
|
|
55
|
+
onIndexChange(index);
|
|
71
56
|
}}
|
|
72
57
|
>
|
|
73
58
|
{route.tabBarLabel ? (
|