react-navigation-reanimated-top-tabs 0.6.2 → 0.8.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/lib/commonjs/components/ReanimatedTopTab/AnimationHelper.js +1 -1
- package/lib/commonjs/components/ReanimatedTopTab/AnimationHelper.js.map +1 -1
- package/lib/commonjs/components/ReanimatedTopTab/ReanimatedTabView.js +4 -2
- package/lib/commonjs/components/ReanimatedTopTab/ReanimatedTabView.js.map +1 -1
- package/lib/commonjs/components/ReanimatedTopTab/types.js.map +1 -1
- package/lib/commonjs/components/elements/TabBarBaseComponent.js +42 -17
- package/lib/commonjs/components/elements/TabBarBaseComponent.js.map +1 -1
- package/lib/commonjs/components/elements/TabBarBaseItem.js +52 -0
- package/lib/commonjs/components/elements/TabBarBaseItem.js.map +1 -0
- package/lib/commonjs/components/wrappers/GestureWrapper.js +14 -4
- package/lib/commonjs/components/wrappers/GestureWrapper.js.map +1 -1
- package/lib/commonjs/components/wrappers/SectionList.js +72 -0
- package/lib/commonjs/components/wrappers/SectionList.js.map +1 -0
- package/lib/commonjs/context/Context.hooks.js +10 -7
- package/lib/commonjs/context/Context.hooks.js.map +1 -1
- package/lib/commonjs/hooks/useHeader.js +2 -10
- package/lib/commonjs/hooks/useHeader.js.map +1 -1
- package/lib/commonjs/hooks/useScreenDimensions.js +23 -0
- package/lib/commonjs/hooks/useScreenDimensions.js.map +1 -0
- package/lib/commonjs/hooks/useScreenScrollable.js +2 -2
- package/lib/commonjs/hooks/useScreenScrollable.js.map +1 -1
- package/lib/commonjs/index.js +2 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/navigator/createReanimatedTopTabNavigator.js +24 -22
- package/lib/commonjs/navigator/createReanimatedTopTabNavigator.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/components/ReanimatedTopTab/AnimationHelper.js +3 -3
- package/lib/module/components/ReanimatedTopTab/AnimationHelper.js.map +1 -1
- package/lib/module/components/ReanimatedTopTab/ReanimatedTabView.js +4 -2
- package/lib/module/components/ReanimatedTopTab/ReanimatedTabView.js.map +1 -1
- package/lib/module/components/ReanimatedTopTab/types.js.map +1 -1
- package/lib/module/components/elements/TabBarBaseComponent.js +44 -19
- package/lib/module/components/elements/TabBarBaseComponent.js.map +1 -1
- package/lib/module/components/elements/TabBarBaseItem.js +45 -0
- package/lib/module/components/elements/TabBarBaseItem.js.map +1 -0
- package/lib/module/components/wrappers/GestureWrapper.js +14 -4
- package/lib/module/components/wrappers/GestureWrapper.js.map +1 -1
- package/lib/module/components/wrappers/SectionList.js +66 -0
- package/lib/module/components/wrappers/SectionList.js.map +1 -0
- package/lib/module/context/Context.hooks.js +10 -7
- package/lib/module/context/Context.hooks.js.map +1 -1
- package/lib/module/hooks/useHeader.js +3 -11
- package/lib/module/hooks/useHeader.js.map +1 -1
- package/lib/module/hooks/useScreenDimensions.js +18 -0
- package/lib/module/hooks/useScreenDimensions.js.map +1 -0
- package/lib/module/hooks/useScreenScrollable.js +2 -2
- package/lib/module/hooks/useScreenScrollable.js.map +1 -1
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/navigator/createReanimatedTopTabNavigator.js +25 -23
- package/lib/module/navigator/createReanimatedTopTabNavigator.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/src/components/ReanimatedTopTab/ReanimatedTabView.d.ts +2 -0
- package/lib/typescript/src/components/ReanimatedTopTab/ReanimatedTabView.d.ts.map +1 -1
- package/lib/typescript/src/components/ReanimatedTopTab/types.d.ts +3 -1
- package/lib/typescript/src/components/ReanimatedTopTab/types.d.ts.map +1 -1
- package/lib/typescript/src/components/elements/TabBarBaseComponent.d.ts +1 -1
- package/lib/typescript/src/components/elements/TabBarBaseComponent.d.ts.map +1 -1
- package/lib/typescript/src/components/elements/TabBarBaseItem.d.ts +14 -0
- package/lib/typescript/src/components/elements/TabBarBaseItem.d.ts.map +1 -0
- package/lib/typescript/src/components/wrappers/GestureWrapper.d.ts.map +1 -1
- package/lib/typescript/src/components/wrappers/SectionList.d.ts +3 -0
- package/lib/typescript/src/components/wrappers/SectionList.d.ts.map +1 -0
- package/lib/typescript/src/context/Context.hooks.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useHeader.d.ts +0 -6
- package/lib/typescript/src/hooks/useHeader.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useScreenDimensions.d.ts +2 -0
- package/lib/typescript/src/hooks/useScreenDimensions.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useScreenProperties.d.ts +1 -1
- package/lib/typescript/src/index.d.ts +3 -8
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/navigator/createReanimatedTopTabNavigator.d.ts +1 -1
- package/lib/typescript/src/navigator/createReanimatedTopTabNavigator.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +8 -4
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/ReanimatedTopTab/AnimationHelper.ts +3 -3
- package/src/components/ReanimatedTopTab/ReanimatedTabView.tsx +4 -0
- package/src/components/ReanimatedTopTab/types.ts +3 -1
- package/src/components/elements/TabBarBaseComponent.tsx +53 -19
- package/src/components/elements/TabBarBaseItem.tsx +76 -0
- package/src/components/wrappers/GestureWrapper.tsx +12 -2
- package/src/components/wrappers/SectionList.tsx +75 -0
- package/src/context/Context.hooks.ts +13 -5
- package/src/hooks/useHeader.ts +3 -21
- package/src/hooks/useScreenDimensions.ts +17 -0
- package/src/hooks/useScreenScrollable.ts +2 -2
- package/src/index.tsx +2 -0
- package/src/navigator/createReanimatedTopTabNavigator.tsx +30 -26
- package/src/types.ts +18 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_native","require","
|
|
1
|
+
{"version":3,"names":["_native","require","_reactNativeSafeAreaContext","_useTabContext","React","_interopRequireWildcard","_elements","_reactNativeReanimated","_useScreenProperties","_useScreenDimensions","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","useScreenScrollable","key","useRoute","height","useScreenDimensions","bottom","top","useSafeAreaInsets","currentYPosition","gestureEnabled","headerHeight","context","topTabHeight","transformationY","isHeaderHeightSet","useTabContext","screen","useScreenProperties","navigationHeader","useContext","HeaderHeightContext","animatedProps","useAnimatedProps","scrollEnabled","value","onScroll","useAnimatedScrollHandler","contentOffset","scrollPosition","properties","scrollY","y","oppositeHeaderState","useDerivedValue","difference","clamp","outerLayout","innerLayout","Infinity","style","useAnimatedStyle","minHeight","bounces","contentContainerStyle","paddingBottom","overScrollMode","exports"],"sourceRoot":"../../../src","sources":["hooks/useScreenScrollable.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -11,6 +11,7 @@ Object.defineProperty(exports, "createReanimatedTopTabNavigator", {
|
|
|
11
11
|
}
|
|
12
12
|
});
|
|
13
13
|
var _ScrollView = require("./components/wrappers/ScrollView");
|
|
14
|
+
var _SectionList = require("./components/wrappers/SectionList");
|
|
14
15
|
var _ScreenWrapper = require("./components/wrappers/ScreenWrapper");
|
|
15
16
|
var _TabBarBaseComponent = require("./components/elements/TabBarBaseComponent");
|
|
16
17
|
var _TabBarLabelBaseComponent = require("./components/elements/TabBarLabelBaseComponent");
|
|
@@ -39,6 +40,7 @@ const TabHooks = exports.TabHooks = {
|
|
|
39
40
|
};
|
|
40
41
|
const Tab = exports.Tab = {
|
|
41
42
|
ScrollView: _ScrollView.ScrollView,
|
|
43
|
+
SectionList: _SectionList.SectionList,
|
|
42
44
|
ScreenWrapper: _ScreenWrapper.ScreenWrapper,
|
|
43
45
|
TabBarBaseComponent: _TabBarBaseComponent.TabBarBaseComponent,
|
|
44
46
|
TabBarLabelBaseComponent: _TabBarLabelBaseComponent.TabBarLabelBaseComponent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ScrollView","require","_ScreenWrapper","_TabBarBaseComponent","_TabBarLabelBaseComponent","_react","_Warning","_useTabContext2","_useTabOffset","_useScreenGesture","_useScreenScrollable","_useScreenProperties","_useHeader","_createReanimatedTopTabNavigator","_useTabContext","useEffect","WarningService","warn","useTabContext","TabHooks","exports","useHeader","useScreenProperties","useScreenScrollable","useScreenGesture","useTabOffset","Tab","ScrollView","ScreenWrapper","TabBarBaseComponent","TabBarLabelBaseComponent"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,
|
|
1
|
+
{"version":3,"names":["_ScrollView","require","_SectionList","_ScreenWrapper","_TabBarBaseComponent","_TabBarLabelBaseComponent","_react","_Warning","_useTabContext2","_useTabOffset","_useScreenGesture","_useScreenScrollable","_useScreenProperties","_useHeader","_createReanimatedTopTabNavigator","_useTabContext","useEffect","WarningService","warn","useTabContext","TabHooks","exports","useHeader","useScreenProperties","useScreenScrollable","useScreenGesture","useTabOffset","Tab","ScrollView","SectionList","ScreenWrapper","TabBarBaseComponent","TabBarLabelBaseComponent"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,yBAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,iBAAA,GAAAT,OAAA;AACA,IAAAU,oBAAA,GAAAV,OAAA;AACA,IAAAW,oBAAA,GAAAX,OAAA;AACA,IAAAY,UAAA,GAAAZ,OAAA;AAGA,IAAAa,gCAAA,GAAAb,OAAA;AAEA,MAAMc,cAAc,GAAGA,CAAA,KAAM;EAC3B,IAAAC,gBAAS,EAAC,MAAM;IACdC,uBAAc,CAACC,IAAI,CAAC,CAAC;EACvB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAAC,6BAAa,EAAC,CAAC;AACxB,CAAC;AAEM,MAAMC,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG;EACtBE,SAAS,EAATA,oBAAS;EACTC,mBAAmB,EAAnBA,wCAAmB;EACnBC,mBAAmB,EAAnBA,wCAAmB;EACnBC,gBAAgB,EAAhBA,kCAAgB;EAChBN,aAAa,EAAEJ,cAAc;EAC7BW,YAAY,EAAZA;AACF,CAAC;AAEM,MAAMC,GAAG,GAAAN,OAAA,CAAAM,GAAA,GAAG;EACjBC,UAAU,EAAVA,sBAAU;EACVC,WAAW,EAAXA,wBAAW;EACXC,aAAa,EAAbA,4BAAa;EACbC,mBAAmB,EAAnBA,wCAAmB;EACnBC,wBAAwB,EAAxBA;AACF,CAAC","ignoreList":[]}
|
|
@@ -17,6 +17,7 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
17
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
18
|
const TabViewNavigator = ({
|
|
19
19
|
HeaderComponent,
|
|
20
|
+
TopComponent,
|
|
20
21
|
TabBarComponent = _TabBarBaseComponent.TabBarBaseComponent,
|
|
21
22
|
children,
|
|
22
23
|
config,
|
|
@@ -50,8 +51,8 @@ const TabViewNavigator = ({
|
|
|
50
51
|
index: state.index,
|
|
51
52
|
routes: state.routes.map((route, index) => {
|
|
52
53
|
const restOptions = (0, _lodash.omit)(descriptors[route.key]?.options, 'tabBarLabel');
|
|
53
|
-
const tabBarLabel = descriptors[route.key]?.options.tabBarLabel ?
|
|
54
|
-
focused
|
|
54
|
+
const tabBarLabel = descriptors[route.key]?.options.tabBarLabel ? focused => descriptors[route.key]?.options.tabBarLabel?.({
|
|
55
|
+
focused,
|
|
55
56
|
title: descriptors[route.key]?.options.title || route.name,
|
|
56
57
|
index
|
|
57
58
|
}) : undefined;
|
|
@@ -72,26 +73,27 @@ const TabViewNavigator = ({
|
|
|
72
73
|
children: ({
|
|
73
74
|
headerHeight,
|
|
74
75
|
transformationY
|
|
75
|
-
}) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
76
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
76
|
+
}) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(NavigationContent, {
|
|
77
|
+
children: [TopComponent ? /*#__PURE__*/(0, _jsxRuntime.jsx)(TopComponent, {
|
|
78
|
+
transformationY: transformationY
|
|
79
|
+
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GestureWrapper.GestureWrapper, {
|
|
80
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
81
|
+
onLayout: ({
|
|
82
|
+
nativeEvent
|
|
83
|
+
}) => {
|
|
84
|
+
headerHeight.value = nativeEvent.layout.height;
|
|
85
|
+
},
|
|
86
|
+
children: HeaderComponent ? /*#__PURE__*/(0, _jsxRuntime.jsx)(HeaderComponent, {
|
|
87
|
+
headerHeight: headerHeight,
|
|
88
|
+
transformationY: transformationY
|
|
89
|
+
}) : null
|
|
90
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ReanimatedTabView.ReanimatedTabView, {
|
|
91
|
+
navigationState: navigationState,
|
|
92
|
+
navigate: navigate,
|
|
93
|
+
renderScene: renderScene,
|
|
94
|
+
renderTabBar: TabBarComponent,
|
|
95
|
+
screenOptions: screenOptions
|
|
96
|
+
})]
|
|
95
97
|
})]
|
|
96
98
|
})
|
|
97
99
|
});
|
|
@@ -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","navigate","index","route","dispatch","TabActions","jumpTo","name","navigationState","useMemo","restOptions","omit","key","options","tabBarLabel","focused","title","undefined","renderScene","render","jsx","Provider","headerHeight","transformationY","jsxs","
|
|
1
|
+
{"version":3,"names":["_native","require","_GestureWrapper","_TabBarBaseComponent","_Context","_lodash","_react","_reactNativeReanimated","_interopRequireDefault","_ReanimatedTabView","_Context2","_jsxRuntime","e","__esModule","default","TabViewNavigator","HeaderComponent","TopComponent","TabBarComponent","TabBarBaseComponent","children","config","initialRouteName","screenOptions","NavigationContent","descriptors","navigation","state","useNavigationBuilder","TabRouter","defaultScreenOptions","_config","routes","map","context","ContextHooks","usePrepareContext","navigate","index","route","dispatch","TabActions","jumpTo","name","navigationState","useMemo","restOptions","omit","key","options","tabBarLabel","focused","title","undefined","renderScene","render","jsx","Provider","headerHeight","transformationY","jsxs","GestureWrapper","View","onLayout","nativeEvent","value","layout","height","ReanimatedTabView","renderTabBar","createReanimatedTopTabNavigator","createNavigatorFactory","exports"],"sourceRoot":"../../../src","sources":["navigator/createReanimatedTopTabNavigator.tsx"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AASA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAEA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,sBAAA,GAAAC,sBAAA,CAAAP,OAAA;AAEA,IAAAQ,kBAAA,GAAAR,OAAA;AACA,IAAAS,SAAA,GAAAT,OAAA;AAAwD,IAAAU,WAAA,GAAAV,OAAA;AAAA,SAAAO,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAExD,MAAMG,gBAAgB,GAAGA,CAAC;EACxBC,eAAe;EACfC,YAAY;EACZC,eAAe,GAAGC,wCAAmB;EACrCC,QAAQ;EACRC,MAAM;EACNC,gBAAgB;EAChBC,aAAa,GAAG,CAAC;AAC+B,CAAC,KAAK;EACtD,MAAM;IAAEC,iBAAiB;IAAEC,WAAW;IAAEC,UAAU;IAAEC;EAAM,CAAC,GACzD,IAAAC,4BAAoB,EAMlBC,iBAAS,EAAE;IACXT,QAAQ;IACRU,oBAAoB,EAAEP,aAAa;IACnCD,gBAAgB;IAChBC;EACF,CAAC,CAAC;EAEJ,IAAIQ,OAAiB,GAAGV,MAAO;EAE/B,IAAI,CAACA,MAAM,EAAE;IACXU,OAAO,GAAGJ,KAAK,CAACK,MAAM,CAACC,GAAG,CAAC,MAAM,QAAQ,CAAC;EAC5C;EAEA,MAAMC,OAAO,GAAGC,sBAAY,CAACC,iBAAiB,CAAC;IAAET;EAAM,CAAC,CAAC;EAEzD,MAAMU,QAAQ,GAAIC,KAAa,IAAK;IAClC,MAAMC,KAAK,GAAGZ,KAAK,CAACK,MAAM,CAACM,KAAK,CAAC;IACjC,IAAI,CAACC,KAAK,EAAE;IACZb,UAAU,CAACc,QAAQ,CAACC,kBAAU,CAACC,MAAM,CAACH,KAAK,CAACI,IAAI,CAAC,CAAC;EACpD,CAAC;EAED,MAAMC,eAAe,GAAG,IAAAC,cAAO,EAC7B,OAAO;IACLP,KAAK,EAAEX,KAAK,CAACW,KAAK;IAClBN,MAAM,EAAEL,KAAK,CAACK,MAAM,CAACC,GAAG,CAAC,CAACM,KAAK,EAAED,KAAK,KAAK;MACzC,MAAMQ,WAAW,GAAG,IAAAC,YAAI,EACtBtB,WAAW,CAACc,KAAK,CAACS,GAAG,CAAC,EAAEC,OAAO,EAC/B,aACF,CAAC;MAED,MAAMC,WAAW,GAAGzB,WAAW,CAACc,KAAK,CAACS,GAAG,CAAC,EAAEC,OAAO,CAACC,WAAW,GAC1DC,OAAgB,IACf1B,WAAW,CAACc,KAAK,CAACS,GAAG,CAAC,EAAEC,OAAO,CAACC,WAAW,GAAG;QAC5CC,OAAO;QACPC,KAAK,EAAE3B,WAAW,CAACc,KAAK,CAACS,GAAG,CAAC,EAAEC,OAAO,CAACG,KAAK,IAAIb,KAAK,CAACI,IAAI;QAC1DL;MACF,CAAC,CAAC,GACJe,SAAS;MAEb,OAAO;QACL,GAAGd,KAAK;QACR,GAAGO,WAAW;QACdI,WAAW;QACXE,KAAK,EAAE3B,WAAW,CAACc,KAAK,CAACS,GAAG,CAAC,EAAEC,OAAO,CAACG,KAAK,IAAIb,KAAK,CAACI;MACxD,CAAC;IACH,CAAC;EACH,CAAC,CAAC,EACF,CAAChB,KAAK,CACR,CAAC;EAED,MAAM2B,WAAW,GAAGA,CAAC;IAAEf;EAAyC,CAAC,KAC/Dd,WAAW,CAACc,KAAK,CAACS,GAAG,CAAC,EAAEO,MAAM,CAAC,CAAC;EAElC,oBACE,IAAA5C,WAAA,CAAA6C,GAAA,EAACpD,QAAA,CAAAqD,QAAQ;IAACpC,MAAM,EAAEU,OAAQ;IAACG,OAAO,EAAEA,OAAQ;IAAAd,QAAA,EACzCA,CAAC;MAAEsC,YAAY;MAAEC;IAAgB,CAAC,kBACjC,IAAAhD,WAAA,CAAAiD,IAAA,EAACpC,iBAAiB;MAAAJ,QAAA,GACfH,YAAY,gBACX,IAAAN,WAAA,CAAA6C,GAAA,EAACvC,YAAY;QAAC0C,eAAe,EAAEA;MAAgB,CAAE,CAAC,GAChD,IAAI,eACR,IAAAhD,WAAA,CAAAiD,IAAA,EAAC1D,eAAA,CAAA2D,cAAc;QAAAzC,QAAA,gBACb,IAAAT,WAAA,CAAA6C,GAAA,EAACjD,sBAAA,CAAAO,OAAU,CAACgD,IAAI;UACdC,QAAQ,EAAEA,CAAC;YAAEC;UAAY,CAAC,KAAK;YAC7BN,YAAY,CAACO,KAAK,GAAGD,WAAW,CAACE,MAAM,CAACC,MAAM;UAChD,CAAE;UAAA/C,QAAA,EAEDJ,eAAe,gBACd,IAAAL,WAAA,CAAA6C,GAAA,EAACxC,eAAe;YACd0C,YAAY,EAAEA,YAAa;YAC3BC,eAAe,EAAEA;UAAgB,CAClC,CAAC,GACA;QAAI,CACO,CAAC,eAClB,IAAAhD,WAAA,CAAA6C,GAAA,EAAC/C,kBAAA,CAAA2D,iBAAiB;UAChBxB,eAAe,EAAEA,eAAgB;UACjCP,QAAQ,EAAEA,QAAS;UACnBiB,WAAW,EAAEA,WAAY;UACzBe,YAAY,EAAEnD,eAAgB;UAC9BK,aAAa,EAAEA;QAAc,CAC9B,CAAC;MAAA,CACY,CAAC;IAAA,CACA;EACpB,CACO,CAAC;AAEf,CAAC;AAEM,MAAM+C,+BAA+B,GAAGA,CAAA,KAG7C,IAAAC,8BAAsB,EAKpBxD,gBAAgB,CAAC,CAAC,CAAC;AAACyD,OAAA,CAAAF,+BAAA,GAAAA,+BAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ReanimatedTopTabNavigation","exports"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"names":["ReanimatedTopTabNavigation","exports"],"sourceRoot":"../../src","sources":["types.ts"],"mappings":";;;;;;IAaiBA,0BAA0B,GAAAC,OAAA,CAAAD,0BAAA","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { withTiming
|
|
3
|
+
import { withTiming } from 'react-native-reanimated';
|
|
4
4
|
const onChange = (event, animationValue, width, navigationState) => {
|
|
5
5
|
'worklet';
|
|
6
6
|
|
|
@@ -57,10 +57,10 @@ const onEnd = (event, minimumValueToChangeView, width, navigationState) => {
|
|
|
57
57
|
value: -width * navigationState.index
|
|
58
58
|
};
|
|
59
59
|
};
|
|
60
|
-
const animation = (newValue, duration =
|
|
60
|
+
const animation = (newValue, duration = 350) => {
|
|
61
61
|
'worklet';
|
|
62
62
|
|
|
63
|
-
return
|
|
63
|
+
return withTiming(newValue, {
|
|
64
64
|
duration
|
|
65
65
|
});
|
|
66
66
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["withTiming","
|
|
1
|
+
{"version":3,"names":["withTiming","onChange","event","animationValue","width","navigationState","routesLength","size","changeX","getIndex","type","index","onEnd","minimumValueToChangeView","velocityX","value","translationX","animation","newValue","duration","AnimationHelper"],"sourceRoot":"../../../../src","sources":["components/ReanimatedTopTab/AnimationHelper.ts"],"mappings":";;AAMA,SAASA,UAAU,QAAQ,yBAAyB;AAIpD,MAAMC,QAAQ,GAAGA,CACfC,KAEC,EACDC,cAAsB,EACtBC,KAAa,EACbC,eAAgC,KAC7B;EACH,SAAS;;EACT,IAAIF,cAAc,GAAG,CAAC,EAAE;IACtB,OAAO,CAAC;EACV;EACA,MAAMG,YAAY,GAAGD,eAAe,CAACE,IAAI,GAAG,CAAC;EAC7C,IAAIJ,cAAc,GAAG,CAACC,KAAK,GAAGE,YAAY,EAAE;IAC1C,OAAO,CAACF,KAAK,GAAGE,YAAY;EAC9B;EACA,OAAOH,cAAc,GAAGD,KAAK,CAACM,OAAO;AACvC,CAAC;AAED,MAAMC,QAAQ,GAAGA,CACfJ,eAAgC,EAChCK,IAA+B,KAC5B;EACH,SAAS;;EACT,IAAIA,IAAI,KAAK,WAAW,EAAE;IACxB,OAAOL,eAAe,CAACM,KAAK,KAAKN,eAAe,CAACE,IAAI,GAAG,CAAC,GACrDF,eAAe,CAACM,KAAK,GACrBN,eAAe,CAACM,KAAK,GAAG,CAAC;EAC/B;EACA,OAAON,eAAe,CAACM,KAAK,KAAK,CAAC,GAC9BN,eAAe,CAACM,KAAK,GACrBN,eAAe,CAACM,KAAK,GAAG,CAAC;AAC/B,CAAC;AAED,MAAMC,KAAK,GAAGA,CACZV,KAA6D,EAC7DW,wBAAgC,EAChCT,KAAa,EACbC,eAAgC,KAC7B;EACH,SAAS;;EACT,IAAIH,KAAK,CAACY,SAAS,GAAG,CAAC,GAAG,EAAE;IAC1B,OAAO;MACLH,KAAK,EAAEF,QAAQ,CAACJ,eAAe,EAAE,WAAW,CAAC;MAC7CU,KAAK,EAAE,CAACX,KAAK,IAAIC,eAAe,CAACM,KAAK,GAAG,CAAC;IAC5C,CAAC;EACH;EACA,IAAIT,KAAK,CAACY,SAAS,GAAG,GAAG,EAAE;IACzB,OAAO;MACLH,KAAK,EAAEF,QAAQ,CAACJ,eAAe,EAAE,WAAW,CAAC;MAC7CU,KAAK,EAAE,CAACX,KAAK,IAAIC,eAAe,CAACM,KAAK,GAAG,CAAC;IAC5C,CAAC;EACH;EACA,IAAIT,KAAK,CAACc,YAAY,GAAG,CAAC,EAAE;IAC1B,IAAId,KAAK,CAACc,YAAY,GAAG,CAACH,wBAAwB,EAAE;MAClD,OAAO;QACLF,KAAK,EAAEF,QAAQ,CAACJ,eAAe,EAAE,WAAW,CAAC;QAC7CU,KAAK,EAAE,CAACX,KAAK,IAAIC,eAAe,CAACM,KAAK,GAAG,CAAC;MAC5C,CAAC;IACH;EACF;EACA,IAAIT,KAAK,CAACc,YAAY,GAAG,CAAC,EAAE;IAC1B,IAAId,KAAK,CAACc,YAAY,GAAGH,wBAAwB,EAAE;MACjD,OAAO;QACLF,KAAK,EAAEF,QAAQ,CAACJ,eAAe,EAAE,WAAW,CAAC;QAC7CU,KAAK,EAAE,CAACX,KAAK,IAAIC,eAAe,CAACM,KAAK,GAAG,CAAC;MAC5C,CAAC;IACH;EACF;EACA,OAAO;IACLA,KAAK,EAAEN,eAAe,CAACM,KAAK;IAC5BI,KAAK,EAAE,CAACX,KAAK,GAAGC,eAAe,CAACM;EAClC,CAAC;AACH,CAAC;AAED,MAAMM,SAAS,GAAGA,CAACC,QAAgB,EAAEC,QAAQ,GAAG,GAAG,KAAK;EACtD,SAAS;;EACT,OAAOnB,UAAU,CAACkB,QAAQ,EAAE;IAAEC;EAAS,CAAC,CAAC;AAC3C,CAAC;AAED,OAAO,MAAMC,eAAe,GAAG;EAC7BH,SAAS;EACThB,QAAQ;EACRW;AACF,CAAC","ignoreList":[]}
|
|
@@ -14,7 +14,8 @@ export const ReanimatedTabView = /*#__PURE__*/React.memo(({
|
|
|
14
14
|
positionInterpolation,
|
|
15
15
|
renderScene,
|
|
16
16
|
renderTabBar,
|
|
17
|
-
navigate
|
|
17
|
+
navigate,
|
|
18
|
+
screenOptions
|
|
18
19
|
}) => {
|
|
19
20
|
const {
|
|
20
21
|
width
|
|
@@ -106,7 +107,8 @@ export const ReanimatedTabView = /*#__PURE__*/React.memo(({
|
|
|
106
107
|
children: [renderTabBar ? renderTabBar({
|
|
107
108
|
navigationState,
|
|
108
109
|
position,
|
|
109
|
-
navigate: _navigate
|
|
110
|
+
navigate: _navigate,
|
|
111
|
+
screenOptions
|
|
110
112
|
}) : null, /*#__PURE__*/_jsx(GestureDetector, {
|
|
111
113
|
gesture: panGesture,
|
|
112
114
|
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","runOnUI","useAnimatedStyle","useDerivedValue","useSharedValue","AnimationHelper","jsx","_jsx","jsxs","_jsxs","ReanimatedTabView","memo","LazyPlaceholder","lazy","navigationState","percentageTrigger","positionInterpolation","renderScene","renderTabBar","navigate","width","loadedScreens","routes","index","scrollPosition","position","value","input","output","CLAMP","_navigate","animation","minimumValueToChangeView","_navigationState","size","length","panGesture","Pan","failOffsetY","activeOffsetX","onChange","event","onEnd","state","scrollPositionStyle","transform","translateX","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":";;AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AACtE,SAASC,UAAU,EAAEC,mBAAmB,EAAEC,IAAI,QAAQ,cAAc;AACpE,SACEC,OAAO,EACPC,eAAe,EACfC,sBAAsB,QACjB,8BAA8B;AACrC,OAAOC,UAAU,IACfC,aAAa,EACbC,WAAW,EACXC,gBAAgB,EAChBC,OAAO,EACPC,OAAO,EACPC,gBAAgB,EAChBC,eAAe,EACfC,cAAc,QACT,yBAAyB;
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","StyleSheet","useWindowDimensions","View","Gesture","GestureDetector","GestureHandlerRootView","Reanimated","Extrapolation","interpolate","LinearTransition","runOnJS","runOnUI","useAnimatedStyle","useDerivedValue","useSharedValue","AnimationHelper","jsx","_jsx","jsxs","_jsxs","ReanimatedTabView","memo","LazyPlaceholder","lazy","navigationState","percentageTrigger","positionInterpolation","renderScene","renderTabBar","navigate","screenOptions","width","loadedScreens","routes","index","scrollPosition","position","value","input","output","CLAMP","_navigate","animation","minimumValueToChangeView","_navigationState","size","length","panGesture","Pan","failOffsetY","activeOffsetX","onChange","event","onEnd","state","scrollPositionStyle","transform","translateX","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":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ReanimatedTabViewTypes"],"sourceRoot":"../../../../src","sources":["components/ReanimatedTopTab/types.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["ReanimatedTabViewTypes"],"sourceRoot":"../../../../src","sources":["components/ReanimatedTopTab/types.ts"],"mappings":";;WAIiBA,sBAAsB","ignoreList":[]}
|
|
@@ -1,22 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import {
|
|
5
|
-
import Reanimated, { interpolate, useAnimatedReaction } from 'react-native-reanimated';
|
|
4
|
+
import { StyleSheet, useWindowDimensions } from 'react-native';
|
|
5
|
+
import Reanimated, { interpolate, useAnimatedReaction, useAnimatedStyle, useSharedValue } from 'react-native-reanimated';
|
|
6
6
|
import { useTabContext } from '../../hooks/useTabContext';
|
|
7
|
+
import { TabBarBaseItem } from './TabBarBaseItem';
|
|
7
8
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
9
|
export const TabBarBaseComponent = ({
|
|
9
10
|
children,
|
|
10
11
|
navigationState,
|
|
11
12
|
position,
|
|
12
13
|
style,
|
|
13
|
-
navigate
|
|
14
|
+
navigate,
|
|
15
|
+
screenOptions
|
|
14
16
|
}) => {
|
|
15
17
|
const layout = useWindowDimensions();
|
|
16
18
|
const {
|
|
17
19
|
topTabHeight,
|
|
18
20
|
transformationX
|
|
19
21
|
} = useTabContext();
|
|
22
|
+
const width = useSharedValue(0);
|
|
23
|
+
const {
|
|
24
|
+
tabBarIndicatorStyle,
|
|
25
|
+
tabBarItemStyle,
|
|
26
|
+
tabBarStyle
|
|
27
|
+
} = screenOptions ?? {};
|
|
28
|
+
const inputRange = navigationState.routes.map((_, index) => index);
|
|
29
|
+
const indicatorStyle = useAnimatedStyle(() => {
|
|
30
|
+
const outputRange = navigationState.routes.map((_, index) => index * (width.value / navigationState.routes.length));
|
|
31
|
+
return {
|
|
32
|
+
transform: [{
|
|
33
|
+
translateX: interpolate(transformationX.value, inputRange, outputRange)
|
|
34
|
+
}],
|
|
35
|
+
width: width.value / navigationState.routes.length
|
|
36
|
+
};
|
|
37
|
+
});
|
|
20
38
|
|
|
21
39
|
//Assign interpolated offsetX to transformationX
|
|
22
40
|
useAnimatedReaction(() => interpolate(position.value, navigationState.routes.map((_, i) => i * layout.width), navigationState.routes.map((_, i) => i), 'clamp'), value => {
|
|
@@ -28,18 +46,25 @@ export const TabBarBaseComponent = ({
|
|
|
28
46
|
}) => {
|
|
29
47
|
topTabHeight.value = nativeEvent.layout.height;
|
|
30
48
|
},
|
|
31
|
-
children: [/*#__PURE__*/
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
49
|
+
children: [/*#__PURE__*/_jsxs(Reanimated.View, {
|
|
50
|
+
onLayout: ({
|
|
51
|
+
nativeEvent
|
|
52
|
+
}) => {
|
|
53
|
+
width.value = nativeEvent.layout.width;
|
|
54
|
+
},
|
|
55
|
+
style: [styles.wrapper, tabBarStyle, style],
|
|
56
|
+
children: [/*#__PURE__*/_jsx(Reanimated.View, {
|
|
57
|
+
style: [styles.indicator, indicatorStyle, tabBarIndicatorStyle]
|
|
58
|
+
}), navigationState.routes.map((route, index) => /*#__PURE__*/_jsx(TabBarBaseItem, {
|
|
59
|
+
index: index,
|
|
60
|
+
inputRange: inputRange,
|
|
61
|
+
position: transformationX,
|
|
35
62
|
onPress: () => {
|
|
36
63
|
navigate(index);
|
|
37
64
|
},
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
})
|
|
42
|
-
}, route.key))
|
|
65
|
+
route: route,
|
|
66
|
+
style: tabBarItemStyle
|
|
67
|
+
}, route.key))]
|
|
43
68
|
}), children]
|
|
44
69
|
});
|
|
45
70
|
};
|
|
@@ -51,15 +76,15 @@ const styles = StyleSheet.create({
|
|
|
51
76
|
alignItems: 'center',
|
|
52
77
|
justifyContent: 'center'
|
|
53
78
|
},
|
|
54
|
-
label: {
|
|
55
|
-
color: 'red'
|
|
56
|
-
},
|
|
57
79
|
wrapper: {
|
|
58
|
-
width: '100%',
|
|
59
80
|
flexDirection: 'row',
|
|
60
|
-
backgroundColor: 'white'
|
|
61
|
-
|
|
62
|
-
|
|
81
|
+
backgroundColor: 'white'
|
|
82
|
+
},
|
|
83
|
+
indicator: {
|
|
84
|
+
backgroundColor: 'black',
|
|
85
|
+
bottom: 0,
|
|
86
|
+
height: 2,
|
|
87
|
+
position: 'absolute'
|
|
63
88
|
}
|
|
64
89
|
});
|
|
65
90
|
//# sourceMappingURL=TabBarBaseComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","useWindowDimensions","Reanimated","interpolate","useAnimatedReaction","useAnimatedStyle","useSharedValue","useTabContext","TabBarBaseItem","jsx","_jsx","jsxs","_jsxs","TabBarBaseComponent","children","navigationState","position","style","navigate","screenOptions","layout","topTabHeight","transformationX","width","tabBarIndicatorStyle","tabBarItemStyle","tabBarStyle","inputRange","routes","map","_","index","indicatorStyle","outputRange","value","length","transform","translateX","i","View","onLayout","nativeEvent","height","styles","wrapper","indicator","route","onPress","key","create","labelWrapper","flex","alignItems","justifyContent","flexDirection","backgroundColor","bottom"],"sourceRoot":"../../../../src","sources":["components/elements/TabBarBaseComponent.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Pressable, StyleSheet, Text } from 'react-native';
|
|
4
|
+
import Animated, { useAnimatedStyle, interpolate } from 'react-native-reanimated';
|
|
5
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
+
export const TabBarBaseItem = ({
|
|
7
|
+
position,
|
|
8
|
+
index,
|
|
9
|
+
inputRange,
|
|
10
|
+
onPress,
|
|
11
|
+
route,
|
|
12
|
+
style
|
|
13
|
+
}) => {
|
|
14
|
+
const activeStyle = useAnimatedStyle(() => ({
|
|
15
|
+
opacity: interpolate(position.value, inputRange, inputRange.map(i => i === index ? 1 : 0)),
|
|
16
|
+
position: 'absolute'
|
|
17
|
+
}));
|
|
18
|
+
const inactiveStyle = useAnimatedStyle(() => ({
|
|
19
|
+
opacity: interpolate(position.value, inputRange, inputRange.map(i => i === index ? 0 : 1))
|
|
20
|
+
}));
|
|
21
|
+
return /*#__PURE__*/_jsxs(Pressable, {
|
|
22
|
+
onPress: () => onPress(index),
|
|
23
|
+
style: [styles.container, style],
|
|
24
|
+
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
25
|
+
style: activeStyle,
|
|
26
|
+
children: route.tabBarLabel ? route.tabBarLabel(true) : /*#__PURE__*/_jsx(Text, {
|
|
27
|
+
children: route.title
|
|
28
|
+
})
|
|
29
|
+
}), /*#__PURE__*/_jsx(Animated.View, {
|
|
30
|
+
style: inactiveStyle,
|
|
31
|
+
children: route.tabBarLabel ? route.tabBarLabel(false) : /*#__PURE__*/_jsx(Text, {
|
|
32
|
+
children: route.title
|
|
33
|
+
})
|
|
34
|
+
})]
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
const styles = StyleSheet.create({
|
|
38
|
+
container: {
|
|
39
|
+
alignItems: 'center',
|
|
40
|
+
flex: 1,
|
|
41
|
+
justifyContent: 'center',
|
|
42
|
+
minHeight: 50
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=TabBarBaseItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Pressable","StyleSheet","Text","Animated","useAnimatedStyle","interpolate","jsx","_jsx","jsxs","_jsxs","TabBarBaseItem","position","index","inputRange","onPress","route","style","activeStyle","opacity","value","map","i","inactiveStyle","styles","container","children","View","tabBarLabel","title","create","alignItems","flex","justifyContent","minHeight"],"sourceRoot":"../../../../src","sources":["components/elements/TabBarBaseItem.tsx"],"mappings":";;AAAA,SACEA,SAAS,EACTC,UAAU,EACVC,IAAI,QAGC,cAAc;AACrB,OAAOC,QAAQ,IAEbC,gBAAgB,EAChBC,WAAW,QACN,yBAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAYjC,OAAO,MAAMC,cAAc,GAAGA,CAAC;EAC7BC,QAAQ;EACRC,KAAK;EACLC,UAAU;EACVC,OAAO;EACPC,KAAK;EACLC;AACmB,CAAC,KAAK;EACzB,MAAMC,WAAW,GAAGb,gBAAgB,CAAC,OAAO;IAC1Cc,OAAO,EAAEb,WAAW,CAClBM,QAAQ,CAACQ,KAAK,EACdN,UAAU,EACVA,UAAU,CAACO,GAAG,CAAEC,CAAC,IAAMA,CAAC,KAAKT,KAAK,GAAG,CAAC,GAAG,CAAE,CAC7C,CAAC;IACDD,QAAQ,EAAE;EACZ,CAAC,CAAC,CAAC;EAEH,MAAMW,aAAa,GAAGlB,gBAAgB,CAAC,OAAO;IAC5Cc,OAAO,EAAEb,WAAW,CAClBM,QAAQ,CAACQ,KAAK,EACdN,UAAU,EACVA,UAAU,CAACO,GAAG,CAAEC,CAAC,IAAMA,CAAC,KAAKT,KAAK,GAAG,CAAC,GAAG,CAAE,CAC7C;EACF,CAAC,CAAC,CAAC;EAEH,oBACEH,KAAA,CAACT,SAAS;IAACc,OAAO,EAAEA,CAAA,KAAMA,OAAO,CAACF,KAAK,CAAE;IAACI,KAAK,EAAE,CAACO,MAAM,CAACC,SAAS,EAAER,KAAK,CAAE;IAAAS,QAAA,gBACzElB,IAAA,CAACJ,QAAQ,CAACuB,IAAI;MAACV,KAAK,EAAEC,WAAY;MAAAQ,QAAA,EAC/BV,KAAK,CAACY,WAAW,GAChBZ,KAAK,CAACY,WAAW,CAAC,IAAI,CAAC,gBAEvBpB,IAAA,CAACL,IAAI;QAAAuB,QAAA,EAAEV,KAAK,CAACa;MAAK,CAAO;IAC1B,CACY,CAAC,eAChBrB,IAAA,CAACJ,QAAQ,CAACuB,IAAI;MAACV,KAAK,EAAEM,aAAc;MAAAG,QAAA,EACjCV,KAAK,CAACY,WAAW,GAChBZ,KAAK,CAACY,WAAW,CAAC,KAAK,CAAC,gBAExBpB,IAAA,CAACL,IAAI;QAAAuB,QAAA,EAAEV,KAAK,CAACa;MAAK,CAAO;IAC1B,CACY,CAAC;EAAA,CACP,CAAC;AAEhB,CAAC;AAED,MAAML,MAAM,GAAGtB,UAAU,CAAC4B,MAAM,CAAC;EAC/BL,SAAS,EAAE;IACTM,UAAU,EAAE,QAAQ;IACpBC,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE,QAAQ;IACxBC,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ import React, { useMemo, useRef, useState } from 'react';
|
|
|
4
4
|
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
|
|
5
5
|
import Reanimated, { Easing, interpolate, runOnJS, useAnimatedReaction, useAnimatedStyle, useDerivedValue, useSharedValue, withTiming } from 'react-native-reanimated';
|
|
6
6
|
import { useTabContext } from '../../hooks/useTabContext';
|
|
7
|
+
import { StyleSheet, View } from 'react-native';
|
|
7
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
9
|
export const GestureWrapper = ({
|
|
9
10
|
children
|
|
@@ -25,7 +26,7 @@ export const GestureWrapper = ({
|
|
|
25
26
|
duration: 300,
|
|
26
27
|
easing: Easing.bezier(0.25, 0.1, 0.25, 1)
|
|
27
28
|
};
|
|
28
|
-
const [_gestureEnabled, setGestureEnabled] = useState(
|
|
29
|
+
const [_gestureEnabled, setGestureEnabled] = useState(true);
|
|
29
30
|
useAnimatedReaction(() => gestureEnabled.value, (next, prev) => {
|
|
30
31
|
if (next === prev) return;
|
|
31
32
|
runOnJS(setGestureEnabled)(next);
|
|
@@ -75,10 +76,19 @@ export const GestureWrapper = ({
|
|
|
75
76
|
}), []);
|
|
76
77
|
return /*#__PURE__*/_jsx(GestureDetector, {
|
|
77
78
|
gesture: gesture,
|
|
78
|
-
children: /*#__PURE__*/_jsx(
|
|
79
|
-
style:
|
|
80
|
-
children:
|
|
79
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
80
|
+
style: styles.container,
|
|
81
|
+
children: /*#__PURE__*/_jsx(Reanimated.View, {
|
|
82
|
+
style: style,
|
|
83
|
+
children: children
|
|
84
|
+
})
|
|
81
85
|
})
|
|
82
86
|
});
|
|
83
87
|
};
|
|
88
|
+
const styles = StyleSheet.create({
|
|
89
|
+
container: {
|
|
90
|
+
overflow: 'hidden',
|
|
91
|
+
flex: 1
|
|
92
|
+
}
|
|
93
|
+
});
|
|
84
94
|
//# sourceMappingURL=GestureWrapper.js.map
|
|
@@ -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","next","prev","gesture","activeOffsetY","onTouchesMove","_","stateManager","fail","onUpdate","translationY","onEnd","velocityY","gestureValue","changeOffset","destination","onFinalize","simultaneousWithExternalGesture","nativeGesture","withRef","enabled","style","flex","transform","translateY","
|
|
1
|
+
{"version":3,"names":["React","useMemo","useRef","useState","Gesture","GestureDetector","Reanimated","Easing","interpolate","runOnJS","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","withTiming","useTabContext","StyleSheet","View","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","styles","container","create","overflow"],"sourceRoot":"../../../../src","sources":["components/wrappers/GestureWrapper.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { SectionList as RNSectionList, StyleSheet } from 'react-native';
|
|
4
|
+
import { GestureDetector } from 'react-native-gesture-handler';
|
|
5
|
+
import Reanimated from 'react-native-reanimated';
|
|
6
|
+
import { useRef } from 'react';
|
|
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';
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
export const SectionList = ({
|
|
14
|
+
children,
|
|
15
|
+
style,
|
|
16
|
+
contentContainerStyle,
|
|
17
|
+
onLayout,
|
|
18
|
+
...props
|
|
19
|
+
}) => {
|
|
20
|
+
const gesture = useScreenGesture();
|
|
21
|
+
const {
|
|
22
|
+
style: _style,
|
|
23
|
+
contentContainerStyle: _contentContainerStyle,
|
|
24
|
+
onScroll,
|
|
25
|
+
bounces,
|
|
26
|
+
animatedProps,
|
|
27
|
+
overScrollMode
|
|
28
|
+
} = useScreenScrollable();
|
|
29
|
+
const {
|
|
30
|
+
innerLayout
|
|
31
|
+
} = useScreenProperties();
|
|
32
|
+
const {
|
|
33
|
+
context
|
|
34
|
+
} = useTabContext();
|
|
35
|
+
const {
|
|
36
|
+
key
|
|
37
|
+
} = useRoute();
|
|
38
|
+
const _ref = useRef(null);
|
|
39
|
+
const _onLayout = event => {
|
|
40
|
+
onLayout?.(event);
|
|
41
|
+
innerLayout.value = event.nativeEvent.layout;
|
|
42
|
+
context.screen.setRef(key, _ref.current);
|
|
43
|
+
};
|
|
44
|
+
return /*#__PURE__*/_jsx(GestureDetector, {
|
|
45
|
+
gesture: gesture,
|
|
46
|
+
children: /*#__PURE__*/_jsx(AnimatedSectionList, {
|
|
47
|
+
ref: _ref,
|
|
48
|
+
contentContainerStyle: [_contentContainerStyle, styleSheet.contentContainerStyle, contentContainerStyle],
|
|
49
|
+
onLayout: _onLayout,
|
|
50
|
+
style: [_style, style],
|
|
51
|
+
onScroll: onScroll,
|
|
52
|
+
bounces: bounces,
|
|
53
|
+
animatedProps: animatedProps,
|
|
54
|
+
overScrollMode: overScrollMode,
|
|
55
|
+
...props,
|
|
56
|
+
children: children
|
|
57
|
+
})
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
const styleSheet = StyleSheet.create({
|
|
61
|
+
contentContainerStyle: {
|
|
62
|
+
flexGrow: 1
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
const AnimatedSectionList = Reanimated.createAnimatedComponent(RNSectionList);
|
|
66
|
+
//# sourceMappingURL=SectionList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["SectionList","RNSectionList","StyleSheet","GestureDetector","Reanimated","useRef","useRoute","useTabContext","useScreenGesture","useScreenScrollable","useScreenProperties","jsx","_jsx","children","style","contentContainerStyle","onLayout","props","gesture","_style","_contentContainerStyle","onScroll","bounces","animatedProps","overScrollMode","innerLayout","context","key","_ref","_onLayout","event","value","nativeEvent","layout","screen","setRef","current","AnimatedSectionList","ref","styleSheet","create","flexGrow","createAnimatedComponent"],"sourceRoot":"../../../../src","sources":["components/wrappers/SectionList.tsx"],"mappings":";;AAAA,SAIEA,WAAW,IAAIC,aAAa,EAC5BC,UAAU,QACL,cAAc;AACrB,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,OAAOC,UAAU,MAAM,yBAAyB;AAChD,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;AAEtE,OAAO,MAAMZ,WAAW,GAAGA,CAAoC;EAC7Da,QAAQ;EACRC,KAAK;EACLC,qBAAqB;EACrBC,QAAQ;EACR,GAAGC;AAC8B,CAAC,KAAK;EACvC,MAAMC,OAAO,GAAGV,gBAAgB,CAAC,CAAC;EAClC,MAAM;IACJM,KAAK,EAAEK,MAAM;IACbJ,qBAAqB,EAAEK,sBAAsB;IAC7CC,QAAQ;IACRC,OAAO;IACPC,aAAa;IACbC;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,CAAqB,IAAI,CAAC;EAE7C,MAAMwB,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,oBACExB,IAAA,CAACT,eAAe;IAACe,OAAO,EAAEA,OAAQ;IAAAL,QAAA,eAChCD,IAAA,CAACyB,mBAAmB;MAClBC,GAAG,EAAEV,IAAK;MACVb,qBAAqB,EAAE,CACrBK,sBAAsB,EACtBmB,UAAU,CAACxB,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,CACU;EAAC,CACP,CAAC;AAEtB,CAAC;AAED,MAAM0B,UAAU,GAAGrC,UAAU,CAACsC,MAAM,CAAC;EACnCzB,qBAAqB,EAAE;IACrB0B,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAEF,MAAMJ,mBAAmB,GACvBjC,UAAU,CAACsC,uBAAuB,CAA6BzC,aAAa,CAAC","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ import { useRef } from 'react';
|
|
|
5
5
|
import { Gesture } from 'react-native-gesture-handler';
|
|
6
6
|
import { assign, throttle } from 'lodash';
|
|
7
7
|
import { ContextHelpers } from './Context.helpers';
|
|
8
|
+
import { SectionList } from 'react-native';
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* Hook to reset the scroll offset for the approaching screen in a tab navigation context.
|
|
@@ -29,13 +30,15 @@ const useResetApproachingScreenScrollOffset = ({
|
|
|
29
30
|
}) => scrollY.value));
|
|
30
31
|
const resetApproachingScreenOffset = (index, shouldReset) => {
|
|
31
32
|
if (shouldReset) {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
const ref = context.screen.getRef(context.route.getKeyForIndex(index)).current;
|
|
34
|
+
if (ref instanceof SectionList) {
|
|
35
|
+
ref.scrollToLocation({
|
|
36
|
+
animated: false,
|
|
37
|
+
sectionIndex: 0,
|
|
38
|
+
itemIndex: 0,
|
|
39
|
+
viewOffset: 0
|
|
40
|
+
});
|
|
41
|
+
} else ref?.scrollTo({
|
|
39
42
|
y: 0,
|
|
40
43
|
animated: false
|
|
41
44
|
});
|