react-navigation-reanimated-top-tabs 0.6.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/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/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/index.d.ts +1 -1
- package/lib/typescript/src/navigator/createReanimatedTopTabNavigator.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/navigator/createReanimatedTopTabNavigator.tsx +4 -22
|
@@ -26,7 +26,6 @@ const ReanimatedTabView = exports.ReanimatedTabView = /*#__PURE__*/_react.defaul
|
|
|
26
26
|
width
|
|
27
27
|
} = (0, _reactNative.useWindowDimensions)();
|
|
28
28
|
const loadedScreens = (0, _react.useRef)([navigationState.routes[navigationState.index]]);
|
|
29
|
-
// const width = 160;
|
|
30
29
|
const scrollPosition = (0, _reactNativeReanimated.useSharedValue)(navigationState.index);
|
|
31
30
|
const position = (0, _reactNativeReanimated.useDerivedValue)(() => {
|
|
32
31
|
if (!positionInterpolation) {
|
|
@@ -48,16 +47,15 @@ const ReanimatedTabView = exports.ReanimatedTabView = /*#__PURE__*/_react.defaul
|
|
|
48
47
|
const state = _AnimationHelper.AnimationHelper.onEnd(event, minimumValueToChangeView, width, navigationState);
|
|
49
48
|
scrollPosition.value = _AnimationHelper.AnimationHelper.animation(state.value);
|
|
50
49
|
(0, _reactNativeReanimated.runOnJS)(onIndexChange)(state.index);
|
|
51
|
-
}), [minimumValueToChangeView, navigationState, onIndexChange,
|
|
50
|
+
}), [minimumValueToChangeView, navigationState, onIndexChange, width]);
|
|
52
51
|
const scrollPositionStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
|
|
53
52
|
transform: [{
|
|
54
53
|
translateX: (0, _reactNativeReanimated.interpolate)(scrollPosition.value, [-width * (navigationState.routes.length - 1), 0], [-width * (navigationState.routes.length - 1), 0], _reactNativeReanimated.Extrapolation.CLAMP)
|
|
55
54
|
}]
|
|
56
55
|
}));
|
|
57
56
|
const jumpTo = _react.default.useCallback(key => {
|
|
58
|
-
const newIndex = navigationState.routes.findIndex(
|
|
57
|
+
const newIndex = navigationState.routes.findIndex(route => route.key === key);
|
|
59
58
|
if (newIndex === -1) {
|
|
60
|
-
// throw
|
|
61
59
|
return;
|
|
62
60
|
}
|
|
63
61
|
scrollPosition.value = _AnimationHelper.AnimationHelper.animation(-newIndex * width);
|
|
@@ -102,7 +100,8 @@ const ReanimatedTabView = exports.ReanimatedTabView = /*#__PURE__*/_react.defaul
|
|
|
102
100
|
style: defaultStyles.flex,
|
|
103
101
|
children: [renderTabBar ? renderTabBar({
|
|
104
102
|
navigationState,
|
|
105
|
-
position
|
|
103
|
+
position,
|
|
104
|
+
onIndexChange
|
|
106
105
|
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector, {
|
|
107
106
|
gesture: panGesture,
|
|
108
107
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_AnimationHelper","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ReanimatedTabView","exports","React","memo","LazyPlaceholder","lazy","navigationState","onIndexChange","percentageTrigger","positionInterpolation","renderScene","renderTabBar","width","useWindowDimensions","loadedScreens","useRef","routes","index","scrollPosition","useSharedValue","position","useDerivedValue","value","interpolate","input","output","Extrapolation","CLAMP","useEffect","AnimationHelper","animation","minimumValueToChangeView","useMemo","panGesture","Gesture","Pan","failOffsetY","activeOffsetX","onChange","event","onEnd","state","runOnJS","scrollPositionStyle","useAnimatedStyle","transform","translateX","length","jumpTo","useCallback","key","newIndex","findIndex","chooseRender","params","useRenderScene","jsx","View","style","children","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_AnimationHelper","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ReanimatedTabView","exports","React","memo","LazyPlaceholder","lazy","navigationState","onIndexChange","percentageTrigger","positionInterpolation","renderScene","renderTabBar","width","useWindowDimensions","loadedScreens","useRef","routes","index","scrollPosition","useSharedValue","position","useDerivedValue","value","interpolate","input","output","Extrapolation","CLAMP","useEffect","AnimationHelper","animation","minimumValueToChangeView","useMemo","panGesture","Gesture","Pan","failOffsetY","activeOffsetX","onChange","event","onEnd","state","runOnJS","scrollPositionStyle","useAnimatedStyle","transform","translateX","length","jumpTo","useCallback","key","newIndex","findIndex","route","chooseRender","params","useRenderScene","jsx","View","style","children","Routes","map","screen","current","find","loadedScreen","undefined","push","GestureHandlerRootView","defaultStyles","flex","jsxs","layout","LinearTransition","GestureDetector","gesture","viewsContainer","StyleSheet","create","flexDirection"],"sourceRoot":"../../../../src","sources":["components/ReanimatedTopTab/ReanimatedTabView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -13,10 +13,10 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
|
|
|
13
13
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
14
|
const TabBarBaseComponent = ({
|
|
15
15
|
children,
|
|
16
|
-
navigate,
|
|
17
16
|
navigationState,
|
|
18
17
|
position,
|
|
19
|
-
style
|
|
18
|
+
style,
|
|
19
|
+
onIndexChange
|
|
20
20
|
}) => {
|
|
21
21
|
const layout = (0, _reactNative.useWindowDimensions)();
|
|
22
22
|
const {
|
|
@@ -36,10 +36,10 @@ const TabBarBaseComponent = ({
|
|
|
36
36
|
},
|
|
37
37
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
38
38
|
style: [styles.wrapper, style],
|
|
39
|
-
children: navigationState.routes.map(route => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
39
|
+
children: navigationState.routes.map((route, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
40
40
|
style: styles.labelWrapper,
|
|
41
41
|
onPress: () => {
|
|
42
|
-
|
|
42
|
+
onIndexChange(index);
|
|
43
43
|
},
|
|
44
44
|
children: route.tabBarLabel ? route.tabBarLabel() : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
45
45
|
style: styles.label,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_useTabContext","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","TabBarBaseComponent","children","
|
|
1
|
+
{"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_reactNativeReanimated","_useTabContext","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","TabBarBaseComponent","children","navigationState","position","style","onIndexChange","layout","useWindowDimensions","topTabHeight","transformationX","useTabContext","useAnimatedReaction","interpolate","value","routes","map","_","width","jsxs","View","onLayout","nativeEvent","height","jsx","styles","wrapper","route","index","Pressable","labelWrapper","onPress","tabBarLabel","Text","label","title","key","exports","StyleSheet","create","flex","alignItems","justifyContent","color","flexDirection","backgroundColor","paddingVertical"],"sourceRoot":"../../../../src","sources":["components/elements/TabBarBaseComponent.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -32,15 +32,14 @@ const GestureWrapper = ({
|
|
|
32
32
|
easing: _reactNativeReanimated.Easing.bezier(0.25, 0.1, 0.25, 1)
|
|
33
33
|
};
|
|
34
34
|
const [_gestureEnabled, setGestureEnabled] = (0, _react.useState)(gestureEnabled.value);
|
|
35
|
-
(0, _reactNativeReanimated.useAnimatedReaction)(() => gestureEnabled.value,
|
|
36
|
-
(
|
|
35
|
+
(0, _reactNativeReanimated.useAnimatedReaction)(() => gestureEnabled.value, (next, prev) => {
|
|
36
|
+
if (next === prev) return;
|
|
37
|
+
(0, _reactNativeReanimated.runOnJS)(setGestureEnabled)(next);
|
|
37
38
|
}, []);
|
|
38
|
-
const gesture = (0, _react.useMemo)(() => _reactNativeGestureHandler.Gesture.Pan().activeOffsetY([-10, 10]).onTouchesMove(({
|
|
39
|
-
state
|
|
40
|
-
}, stateManager) => {
|
|
39
|
+
const gesture = (0, _react.useMemo)(() => _reactNativeGestureHandler.Gesture.Pan().activeOffsetY([-10, 10]).onTouchesMove((_, stateManager) => {
|
|
41
40
|
'worklet';
|
|
42
41
|
|
|
43
|
-
if (currentScreenScrollOffset.value > 0
|
|
42
|
+
if (currentScreenScrollOffset.value > 0 || !gestureEnabled.value) {
|
|
44
43
|
stateManager.fail();
|
|
45
44
|
}
|
|
46
45
|
}).onUpdate(({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeGestureHandler","_reactNativeReanimated","_useTabContext","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","GestureWrapper","children","context","currentScreenIndex","currentYPosition","gestureEnabled","headerHeight","transformationY","useTabContext","movedY","useSharedValue","gestureRef","useRef","Gesture","Pan","currentScreenScrollOffset","useDerivedValue","values","screen","properties","map","scrollY","value","withTimingConfig","duration","easing","Easing","bezier","_gestureEnabled","setGestureEnabled","useState","useAnimatedReaction","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeGestureHandler","_reactNativeReanimated","_useTabContext","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","GestureWrapper","children","context","currentScreenIndex","currentYPosition","gestureEnabled","headerHeight","transformationY","useTabContext","movedY","useSharedValue","gestureRef","useRef","Gesture","Pan","currentScreenScrollOffset","useDerivedValue","values","screen","properties","map","scrollY","value","withTimingConfig","duration","easing","Easing","bezier","_gestureEnabled","setGestureEnabled","useState","useAnimatedReaction","next","prev","runOnJS","gesture","useMemo","activeOffsetY","onTouchesMove","_","stateManager","fail","onUpdate","translationY","onEnd","velocityY","gestureValue","changeOffset","withTiming","destination","onFinalize","simultaneousWithExternalGesture","nativeGesture","withRef","enabled","style","useAnimatedStyle","flex","transform","translateY","interpolate","jsx","GestureDetector","View","exports"],"sourceRoot":"../../../../src","sources":["components/wrappers/GestureWrapper.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -44,7 +44,6 @@ const TabViewNavigator = ({
|
|
|
44
44
|
|
|
45
45
|
//NOTE: all belows reefers to Tabs component directly. Consider to move it somewhere
|
|
46
46
|
const onIndexChange = (currentScreenIndex, gestureEnabled) => index => {
|
|
47
|
-
navigation.navigate(state.routes[index]?.name ?? '');
|
|
48
47
|
currentScreenIndex.value = index;
|
|
49
48
|
switch (_config[index]) {
|
|
50
49
|
case 'normal':
|
|
@@ -58,6 +57,7 @@ const TabViewNavigator = ({
|
|
|
58
57
|
break;
|
|
59
58
|
}
|
|
60
59
|
}
|
|
60
|
+
navigation.navigate(state.routes[index]?.name ?? '');
|
|
61
61
|
};
|
|
62
62
|
const navigationState = (0, _react.useMemo)(() => ({
|
|
63
63
|
index: state.index,
|
|
@@ -76,16 +76,6 @@ const TabViewNavigator = ({
|
|
|
76
76
|
};
|
|
77
77
|
})
|
|
78
78
|
}), [state]);
|
|
79
|
-
const navigate = route => {
|
|
80
|
-
navigation.dispatch({
|
|
81
|
-
..._native.TabActions.jumpTo(route.name, route.params),
|
|
82
|
-
target: state.key
|
|
83
|
-
});
|
|
84
|
-
};
|
|
85
|
-
const renderTabBar = (0, _react.useCallback)(props => /*#__PURE__*/(0, _jsxRuntime.jsx)(TabBarComponent, {
|
|
86
|
-
...props,
|
|
87
|
-
navigate: navigate
|
|
88
|
-
}), []);
|
|
89
79
|
const renderScene = ({
|
|
90
80
|
route
|
|
91
81
|
}) => descriptors[route.key]?.render();
|
|
@@ -114,7 +104,7 @@ const TabViewNavigator = ({
|
|
|
114
104
|
navigationState: navigationState,
|
|
115
105
|
onIndexChange: onIndexChange(currentScreenIndex, gestureEnabled),
|
|
116
106
|
renderScene: renderScene,
|
|
117
|
-
renderTabBar:
|
|
107
|
+
renderTabBar: TabBarComponent
|
|
118
108
|
})
|
|
119
109
|
})
|
|
120
110
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_native","require","_GestureWrapper","_TabBarBaseComponent","_Context","_lodash","_react","_reactNativeReanimated","_interopRequireDefault","_ReanimatedTabView","_Context2","_jsxRuntime","e","__esModule","default","TabViewNavigator","HeaderComponent","TabBarComponent","TabBarBaseComponent","children","config","initialRouteName","screenOptions","NavigationContent","descriptors","navigation","state","useNavigationBuilder","TabRouter","defaultScreenOptions","_config","routes","map","context","ContextHooks","usePrepareContext","onIndexChange","currentScreenIndex","gestureEnabled","index","
|
|
1
|
+
{"version":3,"names":["_native","require","_GestureWrapper","_TabBarBaseComponent","_Context","_lodash","_react","_reactNativeReanimated","_interopRequireDefault","_ReanimatedTabView","_Context2","_jsxRuntime","e","__esModule","default","TabViewNavigator","HeaderComponent","TabBarComponent","TabBarBaseComponent","children","config","initialRouteName","screenOptions","NavigationContent","descriptors","navigation","state","useNavigationBuilder","TabRouter","defaultScreenOptions","_config","routes","map","context","ContextHooks","usePrepareContext","onIndexChange","currentScreenIndex","gestureEnabled","index","value","navigate","name","navigationState","useMemo","route","restOptions","omit","key","options","tabBarLabel","focused","title","undefined","renderScene","render","jsx","Provider","headerHeight","transformationY","jsxs","Fragment","View","onLayout","nativeEvent","layout","height","GestureWrapper","ReanimatedTabView","renderTabBar","createReanimatedTopTabNavigator","createNavigatorFactory","exports"],"sourceRoot":"../../../src","sources":["navigator/createReanimatedTopTabNavigator.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,7 +20,6 @@ export const ReanimatedTabView = /*#__PURE__*/React.memo(({
|
|
|
20
20
|
width
|
|
21
21
|
} = useWindowDimensions();
|
|
22
22
|
const loadedScreens = useRef([navigationState.routes[navigationState.index]]);
|
|
23
|
-
// const width = 160;
|
|
24
23
|
const scrollPosition = useSharedValue(navigationState.index);
|
|
25
24
|
const position = useDerivedValue(() => {
|
|
26
25
|
if (!positionInterpolation) {
|
|
@@ -42,16 +41,15 @@ export const ReanimatedTabView = /*#__PURE__*/React.memo(({
|
|
|
42
41
|
const state = AnimationHelper.onEnd(event, minimumValueToChangeView, width, navigationState);
|
|
43
42
|
scrollPosition.value = AnimationHelper.animation(state.value);
|
|
44
43
|
runOnJS(onIndexChange)(state.index);
|
|
45
|
-
}), [minimumValueToChangeView, navigationState, onIndexChange,
|
|
44
|
+
}), [minimumValueToChangeView, navigationState, onIndexChange, width]);
|
|
46
45
|
const scrollPositionStyle = useAnimatedStyle(() => ({
|
|
47
46
|
transform: [{
|
|
48
47
|
translateX: interpolate(scrollPosition.value, [-width * (navigationState.routes.length - 1), 0], [-width * (navigationState.routes.length - 1), 0], Extrapolation.CLAMP)
|
|
49
48
|
}]
|
|
50
49
|
}));
|
|
51
50
|
const jumpTo = React.useCallback(key => {
|
|
52
|
-
const newIndex = navigationState.routes.findIndex(
|
|
51
|
+
const newIndex = navigationState.routes.findIndex(route => route.key === key);
|
|
53
52
|
if (newIndex === -1) {
|
|
54
|
-
// throw
|
|
55
53
|
return;
|
|
56
54
|
}
|
|
57
55
|
scrollPosition.value = AnimationHelper.animation(-newIndex * width);
|
|
@@ -96,7 +94,8 @@ export const ReanimatedTabView = /*#__PURE__*/React.memo(({
|
|
|
96
94
|
style: defaultStyles.flex,
|
|
97
95
|
children: [renderTabBar ? renderTabBar({
|
|
98
96
|
navigationState,
|
|
99
|
-
position
|
|
97
|
+
position,
|
|
98
|
+
onIndexChange
|
|
100
99
|
}) : null, /*#__PURE__*/_jsx(GestureDetector, {
|
|
101
100
|
gesture: panGesture,
|
|
102
101
|
children: /*#__PURE__*/_jsx(Reanimated.View, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","GestureHandlerRootView","Reanimated","Extrapolation","interpolate","LinearTransition","runOnJS","useAnimatedStyle","useDerivedValue","useSharedValue","AnimationHelper","jsx","_jsx","jsxs","_jsxs","ReanimatedTabView","memo","LazyPlaceholder","lazy","navigationState","onIndexChange","percentageTrigger","positionInterpolation","renderScene","renderTabBar","width","loadedScreens","routes","index","scrollPosition","position","value","input","output","CLAMP","animation","minimumValueToChangeView","panGesture","Pan","failOffsetY","activeOffsetX","onChange","event","onEnd","state","scrollPositionStyle","transform","translateX","length","jumpTo","key","newIndex","findIndex","
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","GestureHandlerRootView","Reanimated","Extrapolation","interpolate","LinearTransition","runOnJS","useAnimatedStyle","useDerivedValue","useSharedValue","AnimationHelper","jsx","_jsx","jsxs","_jsxs","ReanimatedTabView","memo","LazyPlaceholder","lazy","navigationState","onIndexChange","percentageTrigger","positionInterpolation","renderScene","renderTabBar","width","loadedScreens","routes","index","scrollPosition","position","value","input","output","CLAMP","animation","minimumValueToChangeView","panGesture","Pan","failOffsetY","activeOffsetX","onChange","event","onEnd","state","scrollPositionStyle","transform","translateX","length","jumpTo","key","newIndex","findIndex","route","chooseRender","params","useRenderScene","style","children","Routes","map","screen","current","find","loadedScreen","undefined","push","defaultStyles","flex","layout","gesture","viewsContainer","create","flexDirection"],"sourceRoot":"../../../../src","sources":["components/ReanimatedTopTab/ReanimatedTabView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,10 +7,10 @@ import { useTabContext } from '../../hooks/useTabContext';
|
|
|
7
7
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
8
|
export const TabBarBaseComponent = ({
|
|
9
9
|
children,
|
|
10
|
-
navigate,
|
|
11
10
|
navigationState,
|
|
12
11
|
position,
|
|
13
|
-
style
|
|
12
|
+
style,
|
|
13
|
+
onIndexChange
|
|
14
14
|
}) => {
|
|
15
15
|
const layout = useWindowDimensions();
|
|
16
16
|
const {
|
|
@@ -30,10 +30,10 @@ export const TabBarBaseComponent = ({
|
|
|
30
30
|
},
|
|
31
31
|
children: [/*#__PURE__*/_jsx(Reanimated.View, {
|
|
32
32
|
style: [styles.wrapper, style],
|
|
33
|
-
children: navigationState.routes.map(route => /*#__PURE__*/_jsx(Pressable, {
|
|
33
|
+
children: navigationState.routes.map((route, index) => /*#__PURE__*/_jsx(Pressable, {
|
|
34
34
|
style: styles.labelWrapper,
|
|
35
35
|
onPress: () => {
|
|
36
|
-
|
|
36
|
+
onIndexChange(index);
|
|
37
37
|
},
|
|
38
38
|
children: route.tabBarLabel ? route.tabBarLabel() : /*#__PURE__*/_jsx(Text, {
|
|
39
39
|
style: styles.label,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Pressable","StyleSheet","Text","useWindowDimensions","Reanimated","interpolate","useAnimatedReaction","useTabContext","jsx","_jsx","jsxs","_jsxs","TabBarBaseComponent","children","
|
|
1
|
+
{"version":3,"names":["React","Pressable","StyleSheet","Text","useWindowDimensions","Reanimated","interpolate","useAnimatedReaction","useTabContext","jsx","_jsx","jsxs","_jsxs","TabBarBaseComponent","children","navigationState","position","style","onIndexChange","layout","topTabHeight","transformationX","value","routes","map","_","i","width","View","onLayout","nativeEvent","height","styles","wrapper","route","index","labelWrapper","onPress","tabBarLabel","label","title","key","create","flex","alignItems","justifyContent","color","flexDirection","backgroundColor","paddingVertical"],"sourceRoot":"../../../../src","sources":["components/elements/TabBarBaseComponent.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,SAAS,EAAEC,UAAU,EAAEC,IAAI,EAAEC,mBAAmB,QAAQ,cAAc;AAC/E,OAAOC,UAAU,IAEfC,WAAW,EACXC,mBAAmB,QACd,yBAAyB;AAEhC,SAASC,aAAa,QAAQ,2BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAQ1D,OAAO,MAAMC,mBAAmB,GAAGA,CAAC;EAClCC,QAAQ;EACRC,eAAe;EACfC,QAAQ;EACRC,KAAK;EACLC;AACW,CAAC,KAAK;EACjB,MAAMC,MAAM,GAAGf,mBAAmB,CAAC,CAAC;EAEpC,MAAM;IAAEgB,YAAY;IAAEC;EAAgB,CAAC,GAAGb,aAAa,CAAC,CAAC;;EAEzD;EACAD,mBAAmB,CACjB,MACED,WAAW,CACTU,QAAQ,CAACM,KAAK,EACdP,eAAe,CAACQ,MAAM,CAACC,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,GAAGP,MAAM,CAACQ,KAAK,CAAC,EACtDZ,eAAe,CAACQ,MAAM,CAACC,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAAC,EACvC,OACF,CAAC,EACFJ,KAAK,IAAK;IACTD,eAAe,CAACC,KAAK,GAAGA,KAAK;EAC/B,CAAC,EACD,CAACP,eAAe,CAACQ,MAAM,CACzB,CAAC;EAED,oBACEX,KAAA,CAACP,UAAU,CAACuB,IAAI;IACdC,QAAQ,EAAEA,CAAC;MAAEC;IAAY,CAAC,KAAK;MAC7BV,YAAY,CAACE,KAAK,GAAGQ,WAAW,CAACX,MAAM,CAACY,MAAM;IAChD,CAAE;IAAAjB,QAAA,gBAEFJ,IAAA,CAACL,UAAU,CAACuB,IAAI;MAACX,KAAK,EAAE,CAACe,MAAM,CAACC,OAAO,EAAEhB,KAAK,CAAE;MAAAH,QAAA,EAC7CC,eAAe,CAACQ,MAAM,CAACC,GAAG,CAAC,CAACU,KAAK,EAAEC,KAAK,kBACvCzB,IAAA,CAACT,SAAS;QACRgB,KAAK,EAAEe,MAAM,CAACI,YAAa;QAE3BC,OAAO,EAAEA,CAAA,KAAM;UACbnB,aAAa,CAACiB,KAAK,CAAC;QACtB,CAAE;QAAArB,QAAA,EAEDoB,KAAK,CAACI,WAAW,GAChBJ,KAAK,CAACI,WAAW,CAAC,CAAC,gBAEnB5B,IAAA,CAACP,IAAI;UAACc,KAAK,EAAEe,MAAM,CAACO,KAAM;UAAAzB,QAAA,EAAEoB,KAAK,CAACM;QAAK,CAAO;MAC/C,GATIN,KAAK,CAACO,GAUF,CACZ;IAAC,CACa,CAAC,EACjB3B,QAAQ;EAAA,CACM,CAAC;AAEtB,CAAC;;AAED;AACA,MAAMkB,MAAM,GAAG9B,UAAU,CAACwC,MAAM,CAAC;EAC/BN,YAAY,EAAE;IACZO,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDN,KAAK,EAAE;IACLO,KAAK,EAAE;EACT,CAAC;EACDb,OAAO,EAAE;IACPN,KAAK,EAAE,MAAM;IACboB,aAAa,EAAE,KAAK;IACpBC,eAAe,EAAE,OAAO;IACxBC,eAAe,EAAE,CAAC;IAClBlB,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -26,15 +26,14 @@ export const GestureWrapper = ({
|
|
|
26
26
|
easing: Easing.bezier(0.25, 0.1, 0.25, 1)
|
|
27
27
|
};
|
|
28
28
|
const [_gestureEnabled, setGestureEnabled] = useState(gestureEnabled.value);
|
|
29
|
-
useAnimatedReaction(() => gestureEnabled.value,
|
|
30
|
-
|
|
29
|
+
useAnimatedReaction(() => gestureEnabled.value, (next, prev) => {
|
|
30
|
+
if (next === prev) return;
|
|
31
|
+
runOnJS(setGestureEnabled)(next);
|
|
31
32
|
}, []);
|
|
32
|
-
const gesture = useMemo(() => Gesture.Pan().activeOffsetY([-10, 10]).onTouchesMove(({
|
|
33
|
-
state
|
|
34
|
-
}, stateManager) => {
|
|
33
|
+
const gesture = useMemo(() => Gesture.Pan().activeOffsetY([-10, 10]).onTouchesMove((_, stateManager) => {
|
|
35
34
|
'worklet';
|
|
36
35
|
|
|
37
|
-
if (currentScreenScrollOffset.value > 0
|
|
36
|
+
if (currentScreenScrollOffset.value > 0 || !gestureEnabled.value) {
|
|
38
37
|
stateManager.fail();
|
|
39
38
|
}
|
|
40
39
|
}).onUpdate(({
|
|
@@ -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":[]}
|
|
@@ -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"}
|
|
@@ -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,
|
|
43
|
+
TabBarBaseComponent: ({ children, navigationState, position, style, onIndexChange, }: 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,
|
|
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"}
|
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 ? (
|
|
@@ -47,8 +47,9 @@ export const GestureWrapper = ({ children }: GestureWrapperProps) => {
|
|
|
47
47
|
|
|
48
48
|
useAnimatedReaction(
|
|
49
49
|
() => gestureEnabled.value,
|
|
50
|
-
(
|
|
51
|
-
|
|
50
|
+
(next, prev) => {
|
|
51
|
+
if (next === prev) return;
|
|
52
|
+
runOnJS(setGestureEnabled)(next);
|
|
52
53
|
},
|
|
53
54
|
[]
|
|
54
55
|
);
|
|
@@ -57,13 +58,9 @@ export const GestureWrapper = ({ children }: GestureWrapperProps) => {
|
|
|
57
58
|
() =>
|
|
58
59
|
Gesture.Pan()
|
|
59
60
|
.activeOffsetY([-10, 10])
|
|
60
|
-
.onTouchesMove((
|
|
61
|
+
.onTouchesMove((_, stateManager) => {
|
|
61
62
|
'worklet';
|
|
62
|
-
if (
|
|
63
|
-
currentScreenScrollOffset.value > 0 &&
|
|
64
|
-
state !== 4 &&
|
|
65
|
-
state !== 3
|
|
66
|
-
) {
|
|
63
|
+
if (currentScreenScrollOffset.value > 0 || !gestureEnabled.value) {
|
|
67
64
|
stateManager.fail();
|
|
68
65
|
}
|
|
69
66
|
})
|
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createNavigatorFactory,
|
|
3
3
|
type ParamListBase,
|
|
4
|
-
TabActions,
|
|
5
4
|
type TabNavigationState,
|
|
6
5
|
TabRouter,
|
|
7
6
|
useNavigationBuilder,
|
|
8
7
|
} from '@react-navigation/native';
|
|
9
8
|
import type { DefaultRouterOptions } from '@react-navigation/routers';
|
|
10
9
|
import { GestureWrapper } from '../components/wrappers/GestureWrapper';
|
|
11
|
-
import {
|
|
12
|
-
type RenderTabsParams,
|
|
13
|
-
TabBarBaseComponent,
|
|
14
|
-
} from '../components/elements/TabBarBaseComponent';
|
|
10
|
+
import { TabBarBaseComponent } from '../components/elements/TabBarBaseComponent';
|
|
15
11
|
import { Provider } from '../context/Context';
|
|
16
12
|
import { type ReanimatedTopTabNavigation } from '../types';
|
|
17
13
|
import { omit } from 'lodash';
|
|
18
|
-
import {
|
|
14
|
+
import { useMemo } from 'react';
|
|
19
15
|
import Reanimated, { type SharedValue } from 'react-native-reanimated';
|
|
20
16
|
import type { ReanimatedTabViewTypes } from '../components/ReanimatedTopTab/types';
|
|
21
17
|
import { ReanimatedTabView } from '../components/ReanimatedTopTab/ReanimatedTabView';
|
|
@@ -58,7 +54,6 @@ const TabViewNavigator = ({
|
|
|
58
54
|
gestureEnabled: SharedValue<boolean>
|
|
59
55
|
) =>
|
|
60
56
|
(index: number) => {
|
|
61
|
-
navigation.navigate(state.routes[index]?.name ?? '');
|
|
62
57
|
currentScreenIndex.value = index;
|
|
63
58
|
switch (_config[index]) {
|
|
64
59
|
case 'normal': {
|
|
@@ -70,6 +65,7 @@ const TabViewNavigator = ({
|
|
|
70
65
|
break;
|
|
71
66
|
}
|
|
72
67
|
}
|
|
68
|
+
navigation.navigate(state.routes[index]?.name ?? '');
|
|
73
69
|
};
|
|
74
70
|
|
|
75
71
|
const navigationState = useMemo(
|
|
@@ -100,20 +96,6 @@ const TabViewNavigator = ({
|
|
|
100
96
|
[state]
|
|
101
97
|
);
|
|
102
98
|
|
|
103
|
-
const navigate = (route: any) => {
|
|
104
|
-
navigation.dispatch({
|
|
105
|
-
...TabActions.jumpTo(route.name, route.params),
|
|
106
|
-
target: state.key,
|
|
107
|
-
});
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
const renderTabBar = useCallback(
|
|
111
|
-
(props: RenderTabsParams) => (
|
|
112
|
-
<TabBarComponent {...props} navigate={navigate} />
|
|
113
|
-
),
|
|
114
|
-
[]
|
|
115
|
-
);
|
|
116
|
-
|
|
117
99
|
const renderScene = ({ route }: ReanimatedTabViewTypes.SceneProps) =>
|
|
118
100
|
descriptors[route.key]?.render();
|
|
119
101
|
|
|
@@ -147,7 +129,7 @@ const TabViewNavigator = ({
|
|
|
147
129
|
gestureEnabled
|
|
148
130
|
)}
|
|
149
131
|
renderScene={renderScene}
|
|
150
|
-
renderTabBar={
|
|
132
|
+
renderTabBar={TabBarComponent}
|
|
151
133
|
/>
|
|
152
134
|
</GestureWrapper>
|
|
153
135
|
</NavigationContent>
|