react-navigation-reanimated-top-tabs 0.2.0 → 0.4.0
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/README.md +5 -17
- package/lib/commonjs/components/ReanimatedTopTab/ReanimatedTabView.js +5 -3
- package/lib/commonjs/components/ReanimatedTopTab/ReanimatedTabView.js.map +1 -1
- package/lib/commonjs/components/elements/TabBarBaseComponent.js +6 -5
- package/lib/commonjs/components/elements/TabBarBaseComponent.js.map +1 -1
- package/lib/commonjs/components/elements/TabBarLabelBaseComponent.js +2 -4
- package/lib/commonjs/components/elements/TabBarLabelBaseComponent.js.map +1 -1
- package/lib/commonjs/components/wrappers/GestureWrapper.js +18 -26
- package/lib/commonjs/components/wrappers/GestureWrapper.js.map +1 -1
- package/lib/commonjs/components/wrappers/ScreenWrapper.js +4 -4
- package/lib/commonjs/components/wrappers/ScreenWrapper.js.map +1 -1
- package/lib/commonjs/components/wrappers/ScrollView.js +27 -16
- package/lib/commonjs/components/wrappers/ScrollView.js.map +1 -1
- package/lib/commonjs/context/Context.helpers.js +19 -0
- package/lib/commonjs/context/Context.helpers.js.map +1 -0
- package/lib/commonjs/context/Context.hooks.js +216 -0
- package/lib/commonjs/context/Context.hooks.js.map +1 -0
- package/lib/commonjs/context/Context.js +68 -0
- package/lib/commonjs/context/Context.js.map +1 -0
- package/lib/commonjs/hooks/useHeader.js +30 -0
- package/lib/commonjs/hooks/useHeader.js.map +1 -0
- package/lib/commonjs/hooks/useScreenGesture.js +21 -0
- package/lib/commonjs/hooks/useScreenGesture.js.map +1 -0
- package/lib/commonjs/hooks/useScreenProperties.js +21 -0
- package/lib/commonjs/hooks/useScreenProperties.js.map +1 -0
- package/lib/commonjs/hooks/useScreenScrollable.js +64 -0
- package/lib/commonjs/hooks/useScreenScrollable.js.map +1 -0
- package/lib/commonjs/hooks/useTabContext.js +11 -0
- package/lib/commonjs/hooks/useTabContext.js.map +1 -0
- package/lib/commonjs/hooks/useTabOffset.js +18 -0
- package/lib/commonjs/hooks/useTabOffset.js.map +1 -0
- package/lib/commonjs/index.js +34 -80
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/navigator/createReanimatedTopTabNavigator.js +14 -29
- package/lib/commonjs/navigator/createReanimatedTopTabNavigator.js.map +1 -1
- package/lib/commonjs/services/Warning.service.js +16 -0
- package/lib/commonjs/services/Warning.service.js.map +1 -0
- package/lib/module/components/ReanimatedTopTab/ReanimatedTabView.js +8 -6
- package/lib/module/components/ReanimatedTopTab/ReanimatedTabView.js.map +1 -1
- package/lib/module/components/elements/TabBarBaseComponent.js +5 -4
- package/lib/module/components/elements/TabBarBaseComponent.js.map +1 -1
- package/lib/module/components/elements/TabBarLabelBaseComponent.js +2 -4
- package/lib/module/components/elements/TabBarLabelBaseComponent.js.map +1 -1
- package/lib/module/components/wrappers/GestureWrapper.js +18 -27
- package/lib/module/components/wrappers/GestureWrapper.js.map +1 -1
- package/lib/module/components/wrappers/ScreenWrapper.js +3 -3
- package/lib/module/components/wrappers/ScreenWrapper.js.map +1 -1
- package/lib/module/components/wrappers/ScrollView.js +23 -12
- package/lib/module/components/wrappers/ScrollView.js.map +1 -1
- package/lib/module/context/Context.helpers.js +15 -0
- package/lib/module/context/Context.helpers.js.map +1 -0
- package/lib/module/context/Context.hooks.js +213 -0
- package/lib/module/context/Context.hooks.js.map +1 -0
- package/lib/module/context/Context.js +64 -0
- package/lib/module/context/Context.js.map +1 -0
- package/lib/module/hooks/useHeader.js +25 -0
- package/lib/module/hooks/useHeader.js.map +1 -0
- package/lib/module/hooks/useScreenGesture.js +16 -0
- package/lib/module/hooks/useScreenGesture.js.map +1 -0
- package/lib/module/hooks/useScreenProperties.js +16 -0
- package/lib/module/hooks/useScreenProperties.js.map +1 -0
- package/lib/module/hooks/useScreenScrollable.js +57 -0
- package/lib/module/hooks/useScreenScrollable.js.map +1 -0
- package/lib/module/hooks/useTabContext.js +6 -0
- package/lib/module/hooks/useTabContext.js.map +1 -0
- package/lib/module/hooks/useTabOffset.js +12 -0
- package/lib/module/hooks/useTabOffset.js.map +1 -0
- package/lib/module/index.js +33 -8
- package/lib/module/index.js.map +1 -1
- package/lib/module/navigator/createReanimatedTopTabNavigator.js +13 -27
- package/lib/module/navigator/createReanimatedTopTabNavigator.js.map +1 -1
- package/lib/module/services/Warning.service.js +12 -0
- package/lib/module/services/Warning.service.js.map +1 -0
- package/lib/typescript/src/components/ReanimatedTopTab/AnimationHelper.d.ts.map +1 -0
- package/lib/typescript/src/components/ReanimatedTopTab/ReanimatedTabView.d.ts.map +1 -0
- package/lib/typescript/src/components/ReanimatedTopTab/types.d.ts.map +1 -0
- package/lib/typescript/{module/src → src}/components/elements/TabBarBaseComponent.d.ts +1 -2
- package/lib/typescript/src/components/elements/TabBarBaseComponent.d.ts.map +1 -0
- package/lib/typescript/{commonjs/src → src}/components/elements/TabBarLabelBaseComponent.d.ts +1 -2
- package/lib/typescript/src/components/elements/TabBarLabelBaseComponent.d.ts.map +1 -0
- package/lib/typescript/src/components/wrappers/GestureWrapper.d.ts +7 -0
- package/lib/typescript/src/components/wrappers/GestureWrapper.d.ts.map +1 -0
- package/lib/typescript/src/components/wrappers/ScreenWrapper.d.ts.map +1 -0
- package/lib/typescript/src/components/wrappers/ScrollView.d.ts +5 -0
- package/lib/typescript/src/components/wrappers/ScrollView.d.ts.map +1 -0
- package/lib/typescript/{commonjs/src/context/TopTabContext.d.ts → src/context/Context.d.ts} +2 -2
- package/lib/typescript/src/context/Context.d.ts.map +1 -0
- package/lib/typescript/src/context/Context.helpers.d.ts +4 -0
- package/lib/typescript/src/context/Context.helpers.d.ts.map +1 -0
- package/lib/typescript/src/context/Context.hooks.d.ts +15 -0
- package/lib/typescript/src/context/Context.hooks.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useHeader.d.ts +10 -0
- package/lib/typescript/src/hooks/useHeader.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useScreenGesture.d.ts +2 -0
- package/lib/typescript/src/hooks/useScreenGesture.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useScreenProperties.d.ts +10 -0
- package/lib/typescript/src/hooks/useScreenProperties.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useScreenScrollable.d.ts +14 -0
- package/lib/typescript/src/hooks/useScreenScrollable.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useTabContext.d.ts +2 -0
- package/lib/typescript/src/hooks/useTabContext.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useTabOffset.d.ts +2 -0
- package/lib/typescript/src/hooks/useTabOffset.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +45 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/navigator/createReanimatedTopTabNavigator.d.ts.map +1 -0
- package/lib/typescript/src/services/Warning.service.d.ts +5 -0
- package/lib/typescript/src/services/Warning.service.d.ts.map +1 -0
- package/lib/typescript/{module/src → src}/types.d.ts +24 -17
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/package.json +24 -38
- package/src/components/ReanimatedTopTab/ReanimatedTabView.tsx +7 -6
- package/src/components/elements/TabBarBaseComponent.tsx +7 -3
- package/src/components/elements/TabBarLabelBaseComponent.tsx +4 -3
- package/src/components/wrappers/GestureWrapper.tsx +27 -29
- package/src/components/wrappers/ScreenWrapper.tsx +4 -3
- package/src/components/wrappers/ScrollView.tsx +33 -19
- package/src/context/Context.helpers.tsx +10 -0
- package/src/context/Context.hooks.ts +253 -0
- package/src/context/Context.tsx +69 -0
- package/src/hooks/useHeader.ts +30 -0
- package/src/hooks/useScreenGesture.ts +13 -0
- package/src/hooks/useScreenProperties.ts +11 -0
- package/src/hooks/useScreenScrollable.ts +69 -0
- package/src/hooks/useTabContext.ts +4 -0
- package/src/hooks/useTabOffset.ts +8 -0
- package/src/index.tsx +34 -10
- package/src/navigator/createReanimatedTopTabNavigator.tsx +8 -32
- package/src/services/Warning.service.ts +11 -0
- package/src/types.ts +23 -19
- package/lib/commonjs/context/TopTabContext.hooks.js +0 -48
- package/lib/commonjs/context/TopTabContext.hooks.js.map +0 -1
- package/lib/commonjs/context/TopTabContext.js +0 -86
- package/lib/commonjs/context/TopTabContext.js.map +0 -1
- package/lib/commonjs/hooks/TopTab.hooks.js +0 -120
- package/lib/commonjs/hooks/TopTab.hooks.js.map +0 -1
- package/lib/module/context/TopTabContext.hooks.js +0 -44
- package/lib/module/context/TopTabContext.hooks.js.map +0 -1
- package/lib/module/context/TopTabContext.js +0 -82
- package/lib/module/context/TopTabContext.js.map +0 -1
- package/lib/module/hooks/TopTab.hooks.js +0 -110
- package/lib/module/hooks/TopTab.hooks.js.map +0 -1
- package/lib/typescript/commonjs/src/components/ReanimatedTopTab/AnimationHelper.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/components/ReanimatedTopTab/ReanimatedTabView.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/components/ReanimatedTopTab/types.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/components/elements/TabBarBaseComponent.d.ts +0 -24
- package/lib/typescript/commonjs/src/components/elements/TabBarBaseComponent.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/components/elements/TabBarLabelBaseComponent.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/components/wrappers/GestureWrapper.d.ts +0 -2
- package/lib/typescript/commonjs/src/components/wrappers/GestureWrapper.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/components/wrappers/ScreenWrapper.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/components/wrappers/ScrollView.d.ts +0 -6
- package/lib/typescript/commonjs/src/components/wrappers/ScrollView.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/context/TopTabContext.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/context/TopTabContext.hooks.d.ts +0 -5
- package/lib/typescript/commonjs/src/context/TopTabContext.hooks.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/hooks/TopTab.hooks.d.ts +0 -33
- package/lib/typescript/commonjs/src/hooks/TopTab.hooks.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/index.d.ts +0 -10
- package/lib/typescript/commonjs/src/index.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/navigator/createReanimatedTopTabNavigator.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/types.d.ts +0 -56
- package/lib/typescript/commonjs/src/types.d.ts.map +0 -1
- package/lib/typescript/module/src/components/ReanimatedTopTab/AnimationHelper.d.ts +0 -11
- package/lib/typescript/module/src/components/ReanimatedTopTab/AnimationHelper.d.ts.map +0 -1
- package/lib/typescript/module/src/components/ReanimatedTopTab/ReanimatedTabView.d.ts +0 -14
- package/lib/typescript/module/src/components/ReanimatedTopTab/ReanimatedTabView.d.ts.map +0 -1
- package/lib/typescript/module/src/components/ReanimatedTopTab/types.d.ts +0 -30
- package/lib/typescript/module/src/components/ReanimatedTopTab/types.d.ts.map +0 -1
- package/lib/typescript/module/src/components/elements/TabBarBaseComponent.d.ts.map +0 -1
- package/lib/typescript/module/src/components/elements/TabBarLabelBaseComponent.d.ts +0 -8
- package/lib/typescript/module/src/components/elements/TabBarLabelBaseComponent.d.ts.map +0 -1
- package/lib/typescript/module/src/components/wrappers/GestureWrapper.d.ts +0 -2
- package/lib/typescript/module/src/components/wrappers/GestureWrapper.d.ts.map +0 -1
- package/lib/typescript/module/src/components/wrappers/ScreenWrapper.d.ts +0 -6
- package/lib/typescript/module/src/components/wrappers/ScreenWrapper.d.ts.map +0 -1
- package/lib/typescript/module/src/components/wrappers/ScrollView.d.ts +0 -6
- package/lib/typescript/module/src/components/wrappers/ScrollView.d.ts.map +0 -1
- package/lib/typescript/module/src/context/TopTabContext.d.ts +0 -4
- package/lib/typescript/module/src/context/TopTabContext.d.ts.map +0 -1
- package/lib/typescript/module/src/context/TopTabContext.hooks.d.ts +0 -5
- package/lib/typescript/module/src/context/TopTabContext.hooks.d.ts.map +0 -1
- package/lib/typescript/module/src/hooks/TopTab.hooks.d.ts +0 -33
- package/lib/typescript/module/src/hooks/TopTab.hooks.d.ts.map +0 -1
- package/lib/typescript/module/src/index.d.ts +0 -10
- package/lib/typescript/module/src/index.d.ts.map +0 -1
- package/lib/typescript/module/src/navigator/createReanimatedTopTabNavigator.d.ts +0 -4
- package/lib/typescript/module/src/navigator/createReanimatedTopTabNavigator.d.ts.map +0 -1
- package/lib/typescript/module/src/types.d.ts.map +0 -1
- package/src/context/TopTabContext.hooks.ts +0 -55
- package/src/context/TopTabContext.tsx +0 -115
- package/src/hooks/TopTab.hooks.ts +0 -112
- /package/lib/{typescript/commonjs → commonjs}/package.json +0 -0
- /package/lib/{typescript/module → module}/package.json +0 -0
- /package/lib/typescript/{commonjs/src → src}/components/ReanimatedTopTab/AnimationHelper.d.ts +0 -0
- /package/lib/typescript/{commonjs/src → src}/components/ReanimatedTopTab/ReanimatedTabView.d.ts +0 -0
- /package/lib/typescript/{commonjs/src → src}/components/ReanimatedTopTab/types.d.ts +0 -0
- /package/lib/typescript/{commonjs/src → src}/components/wrappers/ScreenWrapper.d.ts +0 -0
- /package/lib/typescript/{commonjs/src → src}/navigator/createReanimatedTopTabNavigator.d.ts +0 -0
|
@@ -5,17 +5,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.createReanimatedTopTabNavigator = void 0;
|
|
7
7
|
var _native = require("@react-navigation/native");
|
|
8
|
-
var _GestureWrapper = require("../components/wrappers/GestureWrapper
|
|
9
|
-
var _TabBarBaseComponent = require("../components/elements/TabBarBaseComponent
|
|
10
|
-
var
|
|
8
|
+
var _GestureWrapper = require("../components/wrappers/GestureWrapper");
|
|
9
|
+
var _TabBarBaseComponent = require("../components/elements/TabBarBaseComponent");
|
|
10
|
+
var _Context = require("../context/Context");
|
|
11
11
|
var _lodash = require("lodash");
|
|
12
12
|
var _react = require("react");
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
13
|
+
var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
|
|
14
|
+
var _ReanimatedTabView = require("../components/ReanimatedTopTab/ReanimatedTabView");
|
|
15
|
+
var _Context2 = require("../context/Context.hooks");
|
|
16
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
|
-
function
|
|
18
|
-
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; }
|
|
17
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
18
|
const TabViewNavigator = ({
|
|
20
19
|
HeaderComponent,
|
|
21
20
|
TabBarComponent = _TabBarBaseComponent.TabBarBaseComponent,
|
|
@@ -39,25 +38,11 @@ const TabViewNavigator = ({
|
|
|
39
38
|
if (!config) {
|
|
40
39
|
_config = state.routes.map(() => 'normal');
|
|
41
40
|
}
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
width: 0,
|
|
48
|
-
x: 0,
|
|
49
|
-
y: 0
|
|
50
|
-
}),
|
|
51
|
-
nativeGesture: _reactNativeGestureHandler.Gesture.Native(),
|
|
52
|
-
outerLayout: (0, _reactNativeReanimated.makeMutable)({
|
|
53
|
-
height: 0,
|
|
54
|
-
width: 0,
|
|
55
|
-
x: 0,
|
|
56
|
-
y: 0
|
|
57
|
-
}),
|
|
58
|
-
scrollY: (0, _reactNativeReanimated.makeMutable)(0)
|
|
59
|
-
}
|
|
60
|
-
}), {})).current;
|
|
41
|
+
const context = _Context2.ContextHooks.usePrepareContext({
|
|
42
|
+
state
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
//NOTE: all belows reefers to Tabs component directly. Consider to move it somewhere
|
|
61
46
|
const onIndexChange = (currentScreenIndex, gestureEnabled) => index => {
|
|
62
47
|
navigation.navigate(state.routes[index]?.name ?? '');
|
|
63
48
|
currentScreenIndex.value = index;
|
|
@@ -104,9 +89,9 @@ const TabViewNavigator = ({
|
|
|
104
89
|
const renderScene = ({
|
|
105
90
|
route
|
|
106
91
|
}) => descriptors[route.key]?.render();
|
|
107
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
92
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Context.Provider, {
|
|
108
93
|
config: _config,
|
|
109
|
-
|
|
94
|
+
context: context,
|
|
110
95
|
children: ({
|
|
111
96
|
currentScreenIndex,
|
|
112
97
|
gestureEnabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_native","require","_GestureWrapper","_TabBarBaseComponent","
|
|
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","navigate","name","value","navigationState","useMemo","route","restOptions","omit","key","options","tabBarLabel","focused","title","undefined","dispatch","TabActions","jumpTo","params","target","renderTabBar","useCallback","props","jsx","renderScene","render","Provider","headerHeight","transformationY","jsxs","Fragment","View","onLayout","nativeEvent","layout","height","GestureWrapper","ReanimatedTabView","createReanimatedTopTabNavigator","createNavigatorFactory","exports"],"sourceRoot":"../../../src","sources":["navigator/createReanimatedTopTabNavigator.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.WarningService = void 0;
|
|
7
|
+
const WarningService = exports.WarningService = {
|
|
8
|
+
hasWarned: false,
|
|
9
|
+
warn() {
|
|
10
|
+
if (__DEV__ && !this.hasWarned) {
|
|
11
|
+
console.warn('[react-navigation-reanimated-top-tabs]: You are directly using the tab context, which may lead to unexpected behavior. Please use the provided hooks or API for better stability.');
|
|
12
|
+
this.hasWarned = true;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=Warning.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["WarningService","exports","hasWarned","warn","__DEV__","console"],"sourceRoot":"../../../src","sources":["services/Warning.service.ts"],"mappings":";;;;;;AAAO,MAAMA,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG;EAC5BE,SAAS,EAAE,KAAK;EAChBC,IAAIA,CAAA,EAAG;IACL,IAAIC,OAAO,IAAI,CAAC,IAAI,CAACF,SAAS,EAAE;MAC9BG,OAAO,CAACF,IAAI,CACV,mLACF,CAAC;MACD,IAAI,CAACD,SAAS,GAAG,IAAI;IACvB;EACF;AACF,CAAC","ignoreList":[]}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
import React, { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
4
4
|
import { StyleSheet, useWindowDimensions, View } from 'react-native';
|
|
5
5
|
import { Gesture, GestureDetector, GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
6
|
-
import
|
|
7
|
-
import { AnimationHelper } from
|
|
6
|
+
import Reanimated, { Extrapolation, interpolate, LinearTransition, runOnJS, useAnimatedStyle, useDerivedValue, useSharedValue } from 'react-native-reanimated';
|
|
7
|
+
import { AnimationHelper } from './AnimationHelper';
|
|
8
8
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
9
|
export const ReanimatedTabView = /*#__PURE__*/React.memo(({
|
|
10
10
|
LazyPlaceholder = () => null,
|
|
@@ -33,8 +33,12 @@ export const ReanimatedTabView = /*#__PURE__*/React.memo(({
|
|
|
33
33
|
}, [navigationState.index, scrollPosition, width]);
|
|
34
34
|
const minimumValueToChangeView = useMemo(() => width * percentageTrigger, [percentageTrigger, width]);
|
|
35
35
|
const panGesture = React.useMemo(() => Gesture.Pan().failOffsetY(-10).failOffsetY(10).activeOffsetX([-20, 20]).onChange(event => {
|
|
36
|
+
'worklet';
|
|
37
|
+
|
|
36
38
|
scrollPosition.value = AnimationHelper.onChange(event, scrollPosition.value, width, navigationState);
|
|
37
39
|
}).onEnd(event => {
|
|
40
|
+
'worklet';
|
|
41
|
+
|
|
38
42
|
const state = AnimationHelper.onEnd(event, minimumValueToChangeView, width, navigationState);
|
|
39
43
|
scrollPosition.value = AnimationHelper.animation(state.value);
|
|
40
44
|
runOnJS(onIndexChange)(state.index);
|
|
@@ -87,7 +91,7 @@ export const ReanimatedTabView = /*#__PURE__*/React.memo(({
|
|
|
87
91
|
}), [navigationState.routes, navigationState.index, lazy, chooseRender, jumpTo]);
|
|
88
92
|
return /*#__PURE__*/_jsx(GestureHandlerRootView, {
|
|
89
93
|
style: defaultStyles.flex,
|
|
90
|
-
children: /*#__PURE__*/_jsxs(
|
|
94
|
+
children: /*#__PURE__*/_jsxs(Reanimated.View, {
|
|
91
95
|
layout: LinearTransition,
|
|
92
96
|
style: defaultStyles.flex,
|
|
93
97
|
children: [renderTabBar ? renderTabBar({
|
|
@@ -95,7 +99,7 @@ export const ReanimatedTabView = /*#__PURE__*/React.memo(({
|
|
|
95
99
|
position
|
|
96
100
|
}) : null, /*#__PURE__*/_jsx(GestureDetector, {
|
|
97
101
|
gesture: panGesture,
|
|
98
|
-
children: /*#__PURE__*/_jsx(
|
|
102
|
+
children: /*#__PURE__*/_jsx(Reanimated.View, {
|
|
99
103
|
layout: LinearTransition,
|
|
100
104
|
style: [scrollPositionStyle, defaultStyles.flex, {
|
|
101
105
|
width: width * navigationState.routes.length - 1
|
|
@@ -106,8 +110,6 @@ export const ReanimatedTabView = /*#__PURE__*/React.memo(({
|
|
|
106
110
|
})
|
|
107
111
|
});
|
|
108
112
|
});
|
|
109
|
-
|
|
110
|
-
//NOTE: purposely use of StyleSheet - simplify migration to library
|
|
111
113
|
const defaultStyles = StyleSheet.create({
|
|
112
114
|
flex: {
|
|
113
115
|
flex: 1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","GestureHandlerRootView","
|
|
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","r","chooseRender","params","useRenderScene","style","children","route","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":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { Pressable, StyleSheet, Text, useWindowDimensions } from 'react-native';
|
|
5
5
|
import Reanimated, { interpolate, useAnimatedReaction } from 'react-native-reanimated';
|
|
6
|
-
import { useTabContext } from
|
|
6
|
+
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,
|
|
@@ -36,9 +36,7 @@ export const TabBarBaseComponent = ({
|
|
|
36
36
|
navigate(route);
|
|
37
37
|
},
|
|
38
38
|
children: route.tabBarLabel ? route.tabBarLabel() : /*#__PURE__*/_jsx(Text, {
|
|
39
|
-
style:
|
|
40
|
-
color: 'red'
|
|
41
|
-
},
|
|
39
|
+
style: styles.label,
|
|
42
40
|
children: route.title
|
|
43
41
|
})
|
|
44
42
|
}, route.key))
|
|
@@ -53,6 +51,9 @@ const styles = StyleSheet.create({
|
|
|
53
51
|
alignItems: 'center',
|
|
54
52
|
justifyContent: 'center'
|
|
55
53
|
},
|
|
54
|
+
label: {
|
|
55
|
+
color: 'red'
|
|
56
|
+
},
|
|
56
57
|
wrapper: {
|
|
57
58
|
width: '100%',
|
|
58
59
|
flexDirection: 'row',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Pressable","StyleSheet","Text","useWindowDimensions","Reanimated","interpolate","useAnimatedReaction","useTabContext","jsx","_jsx","jsxs","_jsxs","TabBarBaseComponent","children","navigate","navigationState","position","style","layout","topTabHeight","transformationX","value","routes","map","_","i","width","View","onLayout","nativeEvent","height","styles","wrapper","route","labelWrapper","onPress","tabBarLabel","
|
|
1
|
+
{"version":3,"names":["React","Pressable","StyleSheet","Text","useWindowDimensions","Reanimated","interpolate","useAnimatedReaction","useTabContext","jsx","_jsx","jsxs","_jsxs","TabBarBaseComponent","children","navigate","navigationState","position","style","layout","topTabHeight","transformationX","value","routes","map","_","i","width","View","onLayout","nativeEvent","height","styles","wrapper","route","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,EAEXC,mBAAmB,QACd,yBAAyB;AAEhC,SAASC,aAAa,QAAQ,2BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAsB1D,OAAO,MAAMC,mBAAmB,GAAGA,CAAC;EAClCC,QAAQ;EACRC,QAAQ;EACRC,eAAe;EACfC,QAAQ;EACRC;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,CACTW,QAAQ,CAACK,KAAK,EACdN,eAAe,CAACO,MAAM,CAACC,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,GAAGP,MAAM,CAACQ,KAAK,CAAC,EACtDX,eAAe,CAACO,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,CAACN,eAAe,CAACO,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;MAACV,KAAK,EAAE,CAACc,MAAM,CAACC,OAAO,EAAEf,KAAK,CAAE;MAAAJ,QAAA,EAC7CE,eAAe,CAACO,MAAM,CAACC,GAAG,CAAEU,KAAK,iBAChCxB,IAAA,CAACT,SAAS;QACRiB,KAAK,EAAEc,MAAM,CAACG,YAAa;QAE3BC,OAAO,EAAEA,CAAA,KAAM;UACbrB,QAAQ,CAACmB,KAAK,CAAC;QACjB,CAAE;QAAApB,QAAA,EAEDoB,KAAK,CAACG,WAAW,GAChBH,KAAK,CAACG,WAAW,CAAC,CAAC,gBAEnB3B,IAAA,CAACP,IAAI;UAACe,KAAK,EAAEc,MAAM,CAACM,KAAM;UAAAxB,QAAA,EAAEoB,KAAK,CAACK;QAAK,CAAO;MAC/C,GATIL,KAAK,CAACM,GAUF,CACZ;IAAC,CACa,CAAC,EACjB1B,QAAQ;EAAA,CACM,CAAC;AAEtB,CAAC;;AAED;AACA,MAAMkB,MAAM,GAAG9B,UAAU,CAACuC,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;EACDZ,OAAO,EAAE;IACPN,KAAK,EAAE,MAAM;IACbmB,aAAa,EAAE,KAAK;IACpBC,eAAe,EAAE,OAAO;IACxBC,eAAe,EAAE,CAAC;IAClBjB,MAAM,EAAE;EACV;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -2,15 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
import { StyleSheet } from 'react-native';
|
|
4
4
|
import Reanimated, { interpolateColor, useAnimatedStyle } from 'react-native-reanimated';
|
|
5
|
-
import {
|
|
5
|
+
import { useTabOffset } from '../../hooks/useTabOffset';
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
7
|
export const TabBarLabelBaseComponent = ({
|
|
8
8
|
index,
|
|
9
9
|
...props
|
|
10
10
|
}) => {
|
|
11
|
-
const
|
|
12
|
-
transformationX
|
|
13
|
-
} = useTabContext();
|
|
11
|
+
const transformationX = useTabOffset();
|
|
14
12
|
const style = useAnimatedStyle(() => ({
|
|
15
13
|
backgroundColor: interpolateColor(transformationX.value, [index - 1, index, index + 1], ['transparent', 'blue', 'transparent'])
|
|
16
14
|
}), []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","Reanimated","interpolateColor","useAnimatedStyle","
|
|
1
|
+
{"version":3,"names":["StyleSheet","Reanimated","interpolateColor","useAnimatedStyle","useTabOffset","jsx","_jsx","TabBarLabelBaseComponent","index","props","transformationX","style","backgroundColor","value","textStyle","color","View","styles","wrapper","children","Text","text","title","create","fontWeight","textTransform","borderRadius","height","justifyContent","paddingHorizontal","paddingVertical"],"sourceRoot":"../../../../src","sources":["components/elements/TabBarLabelBaseComponent.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,OAAOC,UAAU,IACfC,gBAAgB,EAChBC,gBAAgB,QACX,yBAAyB;AAEhC,SAASC,YAAY,QAAQ,0BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQxD,OAAO,MAAMC,wBAAwB,GAAGA,CAAC;EACvCC,KAAK;EACL,GAAGC;AACa,CAAC,KAAK;EACtB,MAAMC,eAAe,GAAGN,YAAY,CAAC,CAAC;EAEtC,MAAMO,KAAK,GAAGR,gBAAgB,CAC5B,OAAO;IACLS,eAAe,EAAEV,gBAAgB,CAC/BQ,eAAe,CAACG,KAAK,EACrB,CAACL,KAAK,GAAG,CAAC,EAAEA,KAAK,EAAEA,KAAK,GAAG,CAAC,CAAC,EAC7B,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,CACvC;EACF,CAAC,CAAC,EACF,EACF,CAAC;EAED,MAAMM,SAAS,GAAGX,gBAAgB,CAChC,OAAO;IACLY,KAAK,EAAEb,gBAAgB,CACrBQ,eAAe,CAACG,KAAK,EACrB,CAACL,KAAK,GAAG,CAAC,EAAEA,KAAK,EAAEA,KAAK,GAAG,CAAC,CAAC,EAC7B,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAC5B;EACF,CAAC,CAAC,EACF,EACF,CAAC;EAED,oBACEF,IAAA,CAACL,UAAU,CAACe,IAAI;IAACL,KAAK,EAAE,CAACA,KAAK,EAAEM,MAAM,CAACC,OAAO,CAAE;IAAAC,QAAA,eAC9Cb,IAAA,CAACL,UAAU,CAACmB,IAAI;MAACT,KAAK,EAAE,CAACG,SAAS,EAAEG,MAAM,CAACI,IAAI,CAAE;MAAAF,QAAA,EAC9CV,KAAK,CAACa;IAAK,CACG;EAAC,CACH,CAAC;AAEtB,CAAC;AAED,MAAML,MAAM,GAAGjB,UAAU,CAACuB,MAAM,CAAC;EAC/BF,IAAI,EAAE;IACJG,UAAU,EAAE,MAAM;IAClBC,aAAa,EAAE;EACjB,CAAC;EACDP,OAAO,EAAE;IACPQ,YAAY,EAAE,EAAE;IAChBC,MAAM,EAAE,EAAE;IACVC,cAAc,EAAE,QAAQ;IACxBC,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE;EACnB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { useMemo, useRef, useState } from 'react';
|
|
3
|
+
import React, { useMemo, useRef, useState } from 'react';
|
|
4
4
|
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
|
|
5
|
-
import Reanimated, { Easing, interpolate, runOnJS, useAnimatedReaction, useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
|
|
6
|
-
import { useTabContext } from
|
|
7
|
-
|
|
8
|
-
//TODO: types
|
|
5
|
+
import Reanimated, { Easing, interpolate, runOnJS, useAnimatedReaction, useAnimatedStyle, useDerivedValue, useSharedValue, withTiming } from 'react-native-reanimated';
|
|
6
|
+
import { useTabContext } from '../../hooks/useTabContext';
|
|
9
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
8
|
export const GestureWrapper = ({
|
|
11
9
|
children
|
|
12
10
|
}) => {
|
|
13
11
|
const {
|
|
12
|
+
context,
|
|
14
13
|
currentScreenIndex,
|
|
15
14
|
currentYPosition,
|
|
16
15
|
gestureEnabled,
|
|
17
16
|
headerHeight,
|
|
18
|
-
|
|
19
|
-
transformationY,
|
|
20
|
-
screenRefs
|
|
17
|
+
transformationY
|
|
21
18
|
} = useTabContext();
|
|
22
19
|
const movedY = useSharedValue(0);
|
|
23
20
|
const gestureRef = useRef(Gesture.Pan());
|
|
21
|
+
const currentScreenScrollOffset = useDerivedValue(() => Object.values(context.screen.properties).map(({
|
|
22
|
+
scrollY
|
|
23
|
+
}) => scrollY)[currentScreenIndex.value]?.value ?? 0);
|
|
24
24
|
const withTimingConfig = {
|
|
25
25
|
duration: 300,
|
|
26
26
|
easing: Easing.bezier(0.25, 0.1, 0.25, 1)
|
|
@@ -29,37 +29,26 @@ export const GestureWrapper = ({
|
|
|
29
29
|
useAnimatedReaction(() => gestureEnabled.value, nextValue => {
|
|
30
30
|
runOnJS(setGestureEnabled)(nextValue);
|
|
31
31
|
}, []);
|
|
32
|
-
const _scrollTo = (index, value = 0) => {
|
|
33
|
-
const {
|
|
34
|
-
scrollTo
|
|
35
|
-
} = Object.values(screenRefs.refs.current)[index]?.current ?? {
|
|
36
|
-
scrollTo: () => null
|
|
37
|
-
};
|
|
38
|
-
scrollTo({
|
|
39
|
-
y: value,
|
|
40
|
-
animated: false
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
32
|
const gesture = useMemo(() => Gesture.Pan().activeOffsetY([-10, 10]).onTouchesMove(({
|
|
44
33
|
state
|
|
45
34
|
}, stateManager) => {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if ((current?.value ?? 0) > 0 && state !== 4 && state !== 3) {
|
|
35
|
+
'worklet';
|
|
36
|
+
|
|
37
|
+
if (currentScreenScrollOffset.value > 0 && state !== 4 && state !== 3) {
|
|
50
38
|
stateManager.fail();
|
|
51
39
|
}
|
|
52
40
|
}).onUpdate(({
|
|
53
41
|
translationY
|
|
54
42
|
}) => {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
43
|
+
'worklet';
|
|
44
|
+
|
|
58
45
|
transformationY.value = currentYPosition.value + translationY - movedY.value;
|
|
59
46
|
}).onEnd(({
|
|
60
47
|
translationY,
|
|
61
48
|
velocityY
|
|
62
49
|
}) => {
|
|
50
|
+
'worklet';
|
|
51
|
+
|
|
63
52
|
const gestureValue = translationY + velocityY * 0.2;
|
|
64
53
|
const changeOffset = 0.2 * headerHeight.value;
|
|
65
54
|
if (gestureValue < -changeOffset && transformationY.value < 0) {
|
|
@@ -73,8 +62,10 @@ export const GestureWrapper = ({
|
|
|
73
62
|
transformationY.value = withTiming(currentYPosition.value, withTimingConfig);
|
|
74
63
|
}
|
|
75
64
|
}).onFinalize(() => {
|
|
65
|
+
'worklet';
|
|
66
|
+
|
|
76
67
|
movedY.value = 0;
|
|
77
|
-
}).simultaneousWithExternalGesture(...Object.values(
|
|
68
|
+
}).simultaneousWithExternalGesture(...Object.values(context.screen.properties).map(({
|
|
78
69
|
nativeGesture
|
|
79
70
|
}) => nativeGesture)).withRef(gestureRef).enabled(_gestureEnabled), [_gestureEnabled]);
|
|
80
71
|
const style = useAnimatedStyle(() => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useRef","useState","Gesture","GestureDetector","Reanimated","Easing","interpolate","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withTiming","useTabContext","jsx","_jsx","GestureWrapper","children","currentScreenIndex","currentYPosition","gestureEnabled","headerHeight","
|
|
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","nextValue","gesture","activeOffsetY","onTouchesMove","state","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":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useRoute } from '@react-navigation/native';
|
|
4
4
|
import Reanimated from 'react-native-reanimated';
|
|
5
|
-
import { useTabContext } from
|
|
5
|
+
import { useTabContext } from '../../hooks/useTabContext';
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
7
|
export const ScreenWrapper = ({
|
|
8
8
|
children,
|
|
@@ -12,10 +12,10 @@ export const ScreenWrapper = ({
|
|
|
12
12
|
key
|
|
13
13
|
} = useRoute();
|
|
14
14
|
const {
|
|
15
|
-
|
|
15
|
+
context
|
|
16
16
|
} = useTabContext();
|
|
17
17
|
const onLayout = event => {
|
|
18
|
-
const screen =
|
|
18
|
+
const screen = context.screen.properties[key];
|
|
19
19
|
if (!screen) throw 'No screen property registered for this route';
|
|
20
20
|
screen.outerLayout.value = event.nativeEvent.layout;
|
|
21
21
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRoute","Reanimated","useTabContext","jsx","_jsx","ScreenWrapper","children","viewProps","key","
|
|
1
|
+
{"version":3,"names":["useRoute","Reanimated","useTabContext","jsx","_jsx","ScreenWrapper","children","viewProps","key","context","onLayout","event","screen","properties","outerLayout","value","nativeEvent","layout","View"],"sourceRoot":"../../../../src","sources":["components/wrappers/ScreenWrapper.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,0BAA0B;AAEnD,OAAOC,UAAU,MAA8B,yBAAyB;AAExE,SAASC,aAAa,QAAQ,2BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAK1D,OAAO,MAAMC,aAAa,GAAGA,CAAC;EAC5BC,QAAQ;EACR,GAAGC;AACe,CAAC,KAAK;EACxB,MAAM;IAAEC;EAAI,CAAC,GAAGR,QAAQ,CAAC,CAAC;EAC1B,MAAM;IAAES;EAAQ,CAAC,GAAGP,aAAa,CAAC,CAAC;EAEnC,MAAMQ,QAAQ,GAAIC,KAAwB,IAAK;IAC7C,MAAMC,MAAM,GAAGH,OAAO,CAACG,MAAM,CAACC,UAAU,CAACL,GAAG,CAAC;IAC7C,IAAI,CAACI,MAAM,EAAE,MAAM,8CAA8C;IACjEA,MAAM,CAACE,WAAW,CAACC,KAAK,GAAGJ,KAAK,CAACK,WAAW,CAACC,MAAM;EACrD,CAAC;EAED,oBACEb,IAAA,CAACH,UAAU,CAACiB,IAAI;IAAA,GAAKX,SAAS;IAAEG,QAAQ,EAAEA,QAAS;IAAAJ,QAAA,EAChDA;EAAQ,CACM,CAAC;AAEtB,CAAC","ignoreList":[]}
|
|
@@ -3,48 +3,59 @@
|
|
|
3
3
|
import { StyleSheet } from 'react-native';
|
|
4
4
|
import { GestureDetector } from 'react-native-gesture-handler';
|
|
5
5
|
import Reanimated from 'react-native-reanimated';
|
|
6
|
-
import { useScreenGesture, useScreenProperties, useScreenScrollable, useTabContext } from "../../hooks/TopTab.hooks.js";
|
|
7
6
|
import { useRef } from 'react';
|
|
8
7
|
import { useRoute } from '@react-navigation/native';
|
|
8
|
+
import { useTabContext } from '../../hooks/useTabContext';
|
|
9
|
+
import { useScreenGesture } from '../../hooks/useScreenGesture';
|
|
10
|
+
import { useScreenScrollable } from '../../hooks/useScreenScrollable';
|
|
11
|
+
import { useScreenProperties } from '../../hooks/useScreenProperties';
|
|
9
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
13
|
export const ScrollView = ({
|
|
11
14
|
children,
|
|
12
15
|
style,
|
|
16
|
+
contentContainerStyle,
|
|
17
|
+
onLayout,
|
|
13
18
|
...props
|
|
14
19
|
}) => {
|
|
15
20
|
const gesture = useScreenGesture();
|
|
16
21
|
const {
|
|
17
|
-
style:
|
|
18
|
-
|
|
22
|
+
style: _style,
|
|
23
|
+
contentContainerStyle: _contentContainerStyle,
|
|
24
|
+
onScroll,
|
|
25
|
+
bounces,
|
|
26
|
+
animatedProps
|
|
19
27
|
} = useScreenScrollable();
|
|
20
28
|
const {
|
|
21
29
|
innerLayout
|
|
22
30
|
} = useScreenProperties();
|
|
23
31
|
const {
|
|
24
|
-
|
|
32
|
+
context
|
|
25
33
|
} = useTabContext();
|
|
26
34
|
const {
|
|
27
35
|
key
|
|
28
36
|
} = useRoute();
|
|
29
37
|
const _ref = useRef(null);
|
|
30
|
-
const
|
|
38
|
+
const _onLayout = event => {
|
|
39
|
+
onLayout?.(event);
|
|
31
40
|
innerLayout.value = event.nativeEvent.layout;
|
|
32
|
-
|
|
41
|
+
context.screen.setRef(key, _ref.current);
|
|
33
42
|
};
|
|
34
43
|
return /*#__PURE__*/_jsx(GestureDetector, {
|
|
35
44
|
gesture: gesture,
|
|
36
45
|
children: /*#__PURE__*/_jsx(Reanimated.ScrollView, {
|
|
37
|
-
...scrollProps,
|
|
38
|
-
...props,
|
|
39
46
|
ref: _ref,
|
|
40
|
-
contentContainerStyle:
|
|
41
|
-
onLayout:
|
|
42
|
-
style: [
|
|
47
|
+
contentContainerStyle: [_contentContainerStyle, styleSheet.contentContainerStyle, contentContainerStyle],
|
|
48
|
+
onLayout: _onLayout,
|
|
49
|
+
style: [_style, style],
|
|
50
|
+
onScroll: onScroll,
|
|
51
|
+
bounces: bounces,
|
|
52
|
+
animatedProps: animatedProps,
|
|
53
|
+
...props,
|
|
43
54
|
children: children
|
|
44
55
|
})
|
|
45
56
|
});
|
|
46
57
|
};
|
|
47
|
-
const
|
|
58
|
+
const styleSheet = StyleSheet.create({
|
|
48
59
|
contentContainerStyle: {
|
|
49
60
|
flexGrow: 1
|
|
50
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","GestureDetector","Reanimated","
|
|
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,GAAGf,mBAAmB,CAAC,CAAC;EACzB,MAAM;IAAEgB;EAAY,CAAC,GAAGf,mBAAmB,CAAC,CAAC;EAC7C,MAAM;IAAEgB;EAAQ,CAAC,GAAGnB,aAAa,CAAC,CAAC;EAEnC,MAAM;IAAEoB;EAAI,CAAC,GAAGrB,QAAQ,CAAC,CAAC;EAC1B,MAAMsB,IAAI,GAAGvB,MAAM,CAAwB,IAAI,CAAC;EAEhD,MAAMwB,SAAS,GAAIC,KAAwB,IAAK;IAC9Cb,QAAQ,GAAGa,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,oBACExB,IAAA,CAACT,eAAe;IAACgB,OAAO,EAAEA,OAAQ;IAAAL,QAAA,eAChCF,IAAA,CAACR,UAAU,CAACS,UAAU;MACpBwB,GAAG,EAAET,IAAK;MACVZ,qBAAqB,EAAE,CACrBK,sBAAsB,EACtBiB,UAAU,CAACtB,qBAAqB,EAChCA,qBAAqB,CACrB;MACFC,QAAQ,EAAEY,SAAU;MACpBd,KAAK,EAAE,CAACK,MAAM,EAAEL,KAAK,CAAE;MACvBO,QAAQ,EAAEA,QAAS;MACnBC,OAAO,EAAEA,OAAQ;MACjBC,aAAa,EAAEA,aAAc;MAAA,GACzBN,KAAK;MAAAJ,QAAA,EAERA;IAAQ,CACY;EAAC,CACT,CAAC;AAEtB,CAAC;AAED,MAAMwB,UAAU,GAAGpC,UAAU,CAACqC,MAAM,CAAC;EACnCvB,qBAAqB,EAAE;IACrBwB,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const getTargetIndex = (currentValue, previousValue) => {
|
|
4
|
+
'worklet';
|
|
5
|
+
|
|
6
|
+
if (currentValue > (previousValue ?? 0)) {
|
|
7
|
+
return Math.ceil(currentValue);
|
|
8
|
+
} else {
|
|
9
|
+
return Math.floor(currentValue);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
export const ContextHelpers = {
|
|
13
|
+
getTargetIndex
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=Context.helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getTargetIndex","currentValue","previousValue","Math","ceil","floor","ContextHelpers"],"sourceRoot":"../../../src","sources":["context/Context.helpers.tsx"],"mappings":";;AAAA,MAAMA,cAAc,GAAGA,CAACC,YAAoB,EAAEC,aAA4B,KAAK;EAC7E,SAAS;;EACT,IAAID,YAAY,IAAIC,aAAa,IAAI,CAAC,CAAC,EAAE;IACvC,OAAOC,IAAI,CAACC,IAAI,CAACH,YAAY,CAAC;EAChC,CAAC,MAAM;IACL,OAAOE,IAAI,CAACE,KAAK,CAACJ,YAAY,CAAC;EACjC;AACF,CAAC;AAED,OAAO,MAAMK,cAAc,GAAG;EAAEN;AAAe,CAAC","ignoreList":[]}
|