@amazon-devices/react-navigation__react-native-tab-view 2.0.1758683737
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/LICENSE +7 -0
- package/README.md +649 -0
- package/SystemBundles/c5889b273a6efc2a3c30241851055c37630fbf3381df86d403967369775f0536.bundle +14497 -0
- package/SystemBundles/c5889b273a6efc2a3c30241851055c37630fbf3381df86d403967369775f0536.map +1 -0
- package/SystemModules/amzn__react-navigation__react-native-tab-view-2.modules.txt +41 -0
- package/SystemModules/amzn__react-navigation__react-native-tab-view-2.private.modules.txt +98 -0
- package/SystemModules/keplerscript-system-bundle-config.json +7 -0
- package/THIRD_PARTY_NOTICES.txt +24 -0
- package/kepler-compatibility.json +8 -0
- package/kepler-transformed-package-info.json +3 -0
- package/lib/commonjs/Pager.android.js +14 -0
- package/lib/commonjs/Pager.android.js.map +1 -0
- package/lib/commonjs/Pager.ios.js +14 -0
- package/lib/commonjs/Pager.ios.js.map +1 -0
- package/lib/commonjs/Pager.js +14 -0
- package/lib/commonjs/Pager.js.map +1 -0
- package/lib/commonjs/PagerViewAdapter.js +132 -0
- package/lib/commonjs/PagerViewAdapter.js.map +1 -0
- package/lib/commonjs/PanResponderAdapter.js +204 -0
- package/lib/commonjs/PanResponderAdapter.js.map +1 -0
- package/lib/commonjs/PlatformPressable.js +43 -0
- package/lib/commonjs/PlatformPressable.js.map +1 -0
- package/lib/commonjs/SceneMap.js +29 -0
- package/lib/commonjs/SceneMap.js.map +1 -0
- package/lib/commonjs/SceneView.js +78 -0
- package/lib/commonjs/SceneView.js.map +1 -0
- package/lib/commonjs/TabBar.js +405 -0
- package/lib/commonjs/TabBar.js.map +1 -0
- package/lib/commonjs/TabBarIndicator.js +110 -0
- package/lib/commonjs/TabBarIndicator.js.map +1 -0
- package/lib/commonjs/TabBarItem.js +227 -0
- package/lib/commonjs/TabBarItem.js.map +1 -0
- package/lib/commonjs/TabView.js +122 -0
- package/lib/commonjs/TabView.js.map +1 -0
- package/lib/commonjs/index.js +42 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/types.js +6 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/useAnimatedValue.js +18 -0
- package/lib/commonjs/useAnimatedValue.js.map +1 -0
- package/lib/module/Pager.android.js +2 -0
- package/lib/module/Pager.android.js.map +1 -0
- package/lib/module/Pager.ios.js +2 -0
- package/lib/module/Pager.ios.js.map +1 -0
- package/lib/module/Pager.js +2 -0
- package/lib/module/Pager.js.map +1 -0
- package/lib/module/PagerViewAdapter.js +123 -0
- package/lib/module/PagerViewAdapter.js.map +1 -0
- package/lib/module/PanResponderAdapter.js +195 -0
- package/lib/module/PanResponderAdapter.js.map +1 -0
- package/lib/module/PlatformPressable.js +35 -0
- package/lib/module/PlatformPressable.js.map +1 -0
- package/lib/module/SceneMap.js +21 -0
- package/lib/module/SceneMap.js.map +1 -0
- package/lib/module/SceneView.js +70 -0
- package/lib/module/SceneView.js.map +1 -0
- package/lib/module/TabBar.js +396 -0
- package/lib/module/TabBar.js.map +1 -0
- package/lib/module/TabBarIndicator.js +101 -0
- package/lib/module/TabBarIndicator.js.map +1 -0
- package/lib/module/TabBarItem.js +218 -0
- package/lib/module/TabBarItem.js.map +1 -0
- package/lib/module/TabView.js +113 -0
- package/lib/module/TabView.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/useAnimatedValue.js +10 -0
- package/lib/module/useAnimatedValue.js.map +1 -0
- package/lib/typescript/src/Pager.android.d.ts +2 -0
- package/lib/typescript/src/Pager.android.d.ts.map +1 -0
- package/lib/typescript/src/Pager.d.ts +2 -0
- package/lib/typescript/src/Pager.d.ts.map +1 -0
- package/lib/typescript/src/Pager.ios.d.ts +2 -0
- package/lib/typescript/src/Pager.ios.d.ts.map +1 -0
- package/lib/typescript/src/PagerViewAdapter.d.ts +15 -0
- package/lib/typescript/src/PagerViewAdapter.d.ts.map +1 -0
- package/lib/typescript/src/PanResponderAdapter.d.ts +16 -0
- package/lib/typescript/src/PanResponderAdapter.d.ts.map +1 -0
- package/lib/typescript/src/PlatformPressable.d.ts +16 -0
- package/lib/typescript/src/PlatformPressable.d.ts.map +1 -0
- package/lib/typescript/src/SceneMap.d.ts +10 -0
- package/lib/typescript/src/SceneMap.d.ts.map +1 -0
- package/lib/typescript/src/SceneView.d.ts +16 -0
- package/lib/typescript/src/SceneView.d.ts.map +1 -0
- package/lib/typescript/src/TabBar.d.ts +44 -0
- package/lib/typescript/src/TabBar.d.ts.map +1 -0
- package/lib/typescript/src/TabBarIndicator.d.ts +13 -0
- package/lib/typescript/src/TabBarIndicator.d.ts.map +1 -0
- package/lib/typescript/src/TabBarItem.d.ts +37 -0
- package/lib/typescript/src/TabBarItem.d.ts.map +1 -0
- package/lib/typescript/src/TabView.d.ts +27 -0
- package/lib/typescript/src/TabView.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +11 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +42 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/lib/typescript/src/useAnimatedValue.d.ts +3 -0
- package/lib/typescript/src/useAnimatedValue.d.ts.map +1 -0
- package/package.json +1 -0
- package/src/Pager.android.tsx +1 -0
- package/src/Pager.ios.tsx +1 -0
- package/src/Pager.tsx +1 -0
- package/src/PagerViewAdapter.tsx +180 -0
- package/src/PanResponderAdapter.tsx +340 -0
- package/src/PlatformPressable.tsx +42 -0
- package/src/SceneMap.tsx +30 -0
- package/src/SceneView.tsx +107 -0
- package/src/TabBar.tsx +639 -0
- package/src/TabBarIndicator.tsx +153 -0
- package/src/TabBarItem.tsx +319 -0
- package/src/TabView.tsx +155 -0
- package/src/index.tsx +10 -0
- package/src/types.tsx +59 -0
- package/src/useAnimatedValue.tsx +12 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = PlatformPressable;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
10
|
+
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; }
|
|
11
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
12
|
+
const ANDROID_VERSION_LOLLIPOP = 21;
|
|
13
|
+
const ANDROID_SUPPORTS_RIPPLE = _reactNative.Platform.OS === 'android' && _reactNative.Platform.Version >= ANDROID_VERSION_LOLLIPOP;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* PlatformPressable provides an abstraction on top of TouchableNativeFeedback and
|
|
17
|
+
* TouchableOpacity to handle platform differences.
|
|
18
|
+
*
|
|
19
|
+
* On Android, you can pass the props of TouchableNativeFeedback.
|
|
20
|
+
* On other platforms, you can pass the props of TouchableOpacity.
|
|
21
|
+
*/
|
|
22
|
+
function PlatformPressable({
|
|
23
|
+
android_ripple,
|
|
24
|
+
pressColor = 'rgba(0, 0, 0, .32)',
|
|
25
|
+
pressOpacity,
|
|
26
|
+
style,
|
|
27
|
+
...rest
|
|
28
|
+
}) {
|
|
29
|
+
return /*#__PURE__*/React.createElement(_reactNative.Pressable, _extends({
|
|
30
|
+
android_ripple: ANDROID_SUPPORTS_RIPPLE ? {
|
|
31
|
+
color: pressColor,
|
|
32
|
+
...android_ripple
|
|
33
|
+
} : undefined,
|
|
34
|
+
style: ({
|
|
35
|
+
pressed
|
|
36
|
+
}) => [{
|
|
37
|
+
opacity: pressed && !ANDROID_SUPPORTS_RIPPLE ? pressOpacity : 1
|
|
38
|
+
}, typeof style === 'function' ? style({
|
|
39
|
+
pressed
|
|
40
|
+
}) : style]
|
|
41
|
+
}, rest));
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=PlatformPressable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","ANDROID_VERSION_LOLLIPOP","ANDROID_SUPPORTS_RIPPLE","Platform","OS","Version","PlatformPressable","android_ripple","pressColor","pressOpacity","style","rest","createElement","Pressable","color","undefined","pressed","opacity"],"sourceRoot":"../../src","sources":["PlatformPressable.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAAmE,SAAAE,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAJ,wBAAAI,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAW,SAAA,WAAAA,QAAA,GAAAR,MAAA,CAAAS,MAAA,GAAAT,MAAA,CAAAS,MAAA,CAAAC,IAAA,eAAAb,CAAA,aAAAR,CAAA,MAAAA,CAAA,GAAAsB,SAAA,CAAAC,MAAA,EAAAvB,CAAA,UAAAG,CAAA,GAAAmB,SAAA,CAAAtB,CAAA,YAAAE,CAAA,IAAAC,CAAA,OAAAY,cAAA,CAAAC,IAAA,CAAAb,CAAA,EAAAD,CAAA,MAAAM,CAAA,CAAAN,CAAA,IAAAC,CAAA,CAAAD,CAAA,aAAAM,CAAA,KAAAW,QAAA,CAAAK,KAAA,OAAAF,SAAA;AAQnE,MAAMG,wBAAwB,GAAG,EAAE;AACnC,MAAMC,uBAAuB,GAC3BC,qBAAQ,CAACC,EAAE,KAAK,SAAS,IAAID,qBAAQ,CAACE,OAAO,IAAIJ,wBAAwB;;AAE3E;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASK,iBAAiBA,CAAC;EACxCC,cAAc;EACdC,UAAU,GAAG,oBAAoB;EACjCC,YAAY;EACZC,KAAK;EACL,GAAGC;AACE,CAAC,EAAE;EACR,oBACExC,KAAA,CAAAyC,aAAA,CAACtC,YAAA,CAAAuC,SAAS,EAAAlB,QAAA;IACRY,cAAc,EACZL,uBAAuB,GACnB;MAAEY,KAAK,EAAEN,UAAU;MAAE,GAAGD;IAAe,CAAC,GACxCQ,SACL;IACDL,KAAK,EAAEA,CAAC;MAAEM;IAAQ,CAAC,KAAK,CACtB;MAAEC,OAAO,EAAED,OAAO,IAAI,CAACd,uBAAuB,GAAGO,YAAY,GAAG;IAAE,CAAC,EACnE,OAAOC,KAAK,KAAK,UAAU,GAAGA,KAAK,CAAC;MAAEM;IAAQ,CAAC,CAAC,GAAGN,KAAK;EACxD,GACEC,IAAI,CACT,CAAC;AAEN","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = SceneMap;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
9
|
+
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; }
|
|
10
|
+
const SceneComponent = /*#__PURE__*/React.memo(({
|
|
11
|
+
component,
|
|
12
|
+
...rest
|
|
13
|
+
}) => {
|
|
14
|
+
return /*#__PURE__*/React.createElement(component, rest);
|
|
15
|
+
});
|
|
16
|
+
function SceneMap(scenes) {
|
|
17
|
+
return ({
|
|
18
|
+
route,
|
|
19
|
+
jumpTo,
|
|
20
|
+
position
|
|
21
|
+
}) => /*#__PURE__*/React.createElement(SceneComponent, {
|
|
22
|
+
key: route.key,
|
|
23
|
+
component: scenes[route.key],
|
|
24
|
+
route: route,
|
|
25
|
+
jumpTo: jumpTo,
|
|
26
|
+
position: position
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=SceneMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","SceneComponent","memo","component","rest","createElement","SceneMap","scenes","route","jumpTo","position","key"],"sourceRoot":"../../src","sources":["SceneMap.tsx"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA+B,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAQ/B,MAAMW,cAAc,gBAAGvB,KAAK,CAACwB,IAAI,CAC/B,CAAiE;EAC/DC,SAAS;EACT,GAAGC;AACF,CAAC,KAAK;EACP,oBAAO1B,KAAK,CAAC2B,aAAa,CAACF,SAAS,EAAEC,IAAI,CAAC;AAC7C,CACF,CAAC;AAEc,SAASE,QAAQA,CAAgBC,MAE/C,EAAE;EACD,OAAO,CAAC;IAAEC,KAAK;IAAEC,MAAM;IAAEC;EAAqB,CAAC,kBAC7ChC,KAAA,CAAA2B,aAAA,CAACJ,cAAc;IACbU,GAAG,EAAEH,KAAK,CAACG,GAAI;IACfR,SAAS,EAAEI,MAAM,CAACC,KAAK,CAACG,GAAG,CAAE;IAC7BH,KAAK,EAAEA,KAAM;IACbC,MAAM,EAAEA,MAAO;IACfC,QAAQ,EAAEA;EAAS,CACpB,CACF;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = SceneView;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
10
|
+
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; }
|
|
11
|
+
function SceneView({
|
|
12
|
+
children,
|
|
13
|
+
navigationState,
|
|
14
|
+
lazy,
|
|
15
|
+
layout,
|
|
16
|
+
index,
|
|
17
|
+
lazyPreloadDistance,
|
|
18
|
+
addEnterListener,
|
|
19
|
+
style
|
|
20
|
+
}) {
|
|
21
|
+
const [isLoading, setIsLoading] = React.useState(Math.abs(navigationState.index - index) > lazyPreloadDistance);
|
|
22
|
+
if (isLoading && Math.abs(navigationState.index - index) <= lazyPreloadDistance) {
|
|
23
|
+
// Always render the route when it becomes focused
|
|
24
|
+
setIsLoading(false);
|
|
25
|
+
}
|
|
26
|
+
React.useEffect(() => {
|
|
27
|
+
const handleEnter = value => {
|
|
28
|
+
// If we're entering the current route, we need to load it
|
|
29
|
+
if (value === index) {
|
|
30
|
+
setIsLoading(prevState => {
|
|
31
|
+
if (prevState) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
return prevState;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
let unsubscribe;
|
|
39
|
+
let timer;
|
|
40
|
+
if (lazy && isLoading) {
|
|
41
|
+
// If lazy mode is enabled, listen to when we enter screens
|
|
42
|
+
unsubscribe = addEnterListener(handleEnter);
|
|
43
|
+
} else if (isLoading) {
|
|
44
|
+
// If lazy mode is not enabled, render the scene with a delay if not loaded already
|
|
45
|
+
// This improves the initial startup time as the scene is no longer blocking
|
|
46
|
+
timer = setTimeout(() => setIsLoading(false), 0);
|
|
47
|
+
}
|
|
48
|
+
return () => {
|
|
49
|
+
var _unsubscribe;
|
|
50
|
+
(_unsubscribe = unsubscribe) === null || _unsubscribe === void 0 || _unsubscribe();
|
|
51
|
+
clearTimeout(timer);
|
|
52
|
+
};
|
|
53
|
+
}, [addEnterListener, index, isLoading, lazy]);
|
|
54
|
+
const focused = navigationState.index === index;
|
|
55
|
+
return /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
56
|
+
accessibilityElementsHidden: !focused,
|
|
57
|
+
importantForAccessibility: focused ? 'auto' : 'no-hide-descendants',
|
|
58
|
+
style: [styles.route,
|
|
59
|
+
// If we don't have the layout yet, make the focused screen fill the container
|
|
60
|
+
// This avoids delay before we are able to render pages side by side
|
|
61
|
+
layout.width ? {
|
|
62
|
+
width: layout.width
|
|
63
|
+
} : focused ? _reactNative.StyleSheet.absoluteFill : null, style]
|
|
64
|
+
},
|
|
65
|
+
// Only render the route only if it's either focused or layout is available
|
|
66
|
+
// When layout is not available, we must not render unfocused routes
|
|
67
|
+
// so that the focused route can fill the screen
|
|
68
|
+
focused || layout.width ? children({
|
|
69
|
+
loading: isLoading
|
|
70
|
+
}) : null);
|
|
71
|
+
}
|
|
72
|
+
const styles = _reactNative.StyleSheet.create({
|
|
73
|
+
route: {
|
|
74
|
+
flex: 1,
|
|
75
|
+
overflow: 'hidden'
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
//# sourceMappingURL=SceneView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","SceneView","children","navigationState","lazy","layout","index","lazyPreloadDistance","addEnterListener","style","isLoading","setIsLoading","useState","Math","abs","useEffect","handleEnter","value","prevState","unsubscribe","timer","setTimeout","_unsubscribe","clearTimeout","focused","createElement","View","accessibilityElementsHidden","importantForAccessibility","styles","route","width","StyleSheet","absoluteFill","loading","create","flex","overflow"],"sourceRoot":"../../src","sources":["SceneView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = TabBar;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _useLatestCallback = _interopRequireDefault(require("use-latest-callback"));
|
|
10
|
+
var _TabBarIndicator = _interopRequireDefault(require("./TabBarIndicator"));
|
|
11
|
+
var _TabBarItem = _interopRequireDefault(require("./TabBarItem"));
|
|
12
|
+
var _useAnimatedValue = _interopRequireDefault(require("./useAnimatedValue"));
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
|
+
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; }
|
|
16
|
+
const Separator = ({
|
|
17
|
+
width
|
|
18
|
+
}) => {
|
|
19
|
+
return /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
20
|
+
style: {
|
|
21
|
+
width
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
const getFlattenedTabWidth = style => {
|
|
26
|
+
const tabStyle = _reactNative.StyleSheet.flatten(style);
|
|
27
|
+
return tabStyle === null || tabStyle === void 0 ? void 0 : tabStyle.width;
|
|
28
|
+
};
|
|
29
|
+
const getComputedTabWidth = (index, layout, routes, scrollEnabled, tabWidths, flattenedWidth) => {
|
|
30
|
+
if (flattenedWidth === 'auto') {
|
|
31
|
+
return tabWidths[routes[index].key] || 0;
|
|
32
|
+
}
|
|
33
|
+
switch (typeof flattenedWidth) {
|
|
34
|
+
case 'number':
|
|
35
|
+
return flattenedWidth;
|
|
36
|
+
case 'string':
|
|
37
|
+
if (flattenedWidth.endsWith('%')) {
|
|
38
|
+
const width = parseFloat(flattenedWidth);
|
|
39
|
+
if (Number.isFinite(width)) {
|
|
40
|
+
return layout.width * (width / 100);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (scrollEnabled) {
|
|
45
|
+
return layout.width / 5 * 2;
|
|
46
|
+
}
|
|
47
|
+
return layout.width / routes.length;
|
|
48
|
+
};
|
|
49
|
+
const getMaxScrollDistance = (tabBarWidth, layoutWidth) => tabBarWidth - layoutWidth;
|
|
50
|
+
const getTranslateX = (scrollAmount, maxScrollDistance) => _reactNative.Animated.multiply(_reactNative.Platform.OS === 'android' && _reactNative.I18nManager.isRTL ? _reactNative.Animated.add(maxScrollDistance, _reactNative.Animated.multiply(scrollAmount, -1)) : scrollAmount, _reactNative.I18nManager.isRTL ? 1 : -1);
|
|
51
|
+
const getTabBarWidth = ({
|
|
52
|
+
navigationState,
|
|
53
|
+
layout,
|
|
54
|
+
gap,
|
|
55
|
+
scrollEnabled,
|
|
56
|
+
flattenedTabWidth,
|
|
57
|
+
tabWidths
|
|
58
|
+
}) => {
|
|
59
|
+
const {
|
|
60
|
+
routes
|
|
61
|
+
} = navigationState;
|
|
62
|
+
return routes.reduce((acc, _, i) => acc + (i > 0 ? gap ?? 0 : 0) + getComputedTabWidth(i, layout, routes, scrollEnabled, tabWidths, flattenedTabWidth), 0);
|
|
63
|
+
};
|
|
64
|
+
const normalizeScrollValue = ({
|
|
65
|
+
layout,
|
|
66
|
+
navigationState,
|
|
67
|
+
gap,
|
|
68
|
+
scrollEnabled,
|
|
69
|
+
tabWidths,
|
|
70
|
+
value,
|
|
71
|
+
flattenedTabWidth
|
|
72
|
+
}) => {
|
|
73
|
+
const tabBarWidth = getTabBarWidth({
|
|
74
|
+
layout,
|
|
75
|
+
navigationState,
|
|
76
|
+
tabWidths,
|
|
77
|
+
gap,
|
|
78
|
+
scrollEnabled,
|
|
79
|
+
flattenedTabWidth
|
|
80
|
+
});
|
|
81
|
+
const maxDistance = getMaxScrollDistance(tabBarWidth, layout.width);
|
|
82
|
+
const scrollValue = Math.max(Math.min(value, maxDistance), 0);
|
|
83
|
+
if (_reactNative.Platform.OS === 'android' && _reactNative.I18nManager.isRTL) {
|
|
84
|
+
// On Android, scroll value is not applied in reverse in RTL
|
|
85
|
+
// so we need to manually adjust it to apply correct value
|
|
86
|
+
return maxDistance - scrollValue;
|
|
87
|
+
}
|
|
88
|
+
return scrollValue;
|
|
89
|
+
};
|
|
90
|
+
const getScrollAmount = ({
|
|
91
|
+
layout,
|
|
92
|
+
navigationState,
|
|
93
|
+
gap,
|
|
94
|
+
scrollEnabled,
|
|
95
|
+
flattenedTabWidth,
|
|
96
|
+
tabWidths
|
|
97
|
+
}) => {
|
|
98
|
+
const centerDistance = Array.from({
|
|
99
|
+
length: navigationState.index + 1
|
|
100
|
+
}).reduce((total, _, i) => {
|
|
101
|
+
const tabWidth = getComputedTabWidth(i, layout, navigationState.routes, scrollEnabled, tabWidths, flattenedTabWidth);
|
|
102
|
+
|
|
103
|
+
// To get the current index centered we adjust scroll amount by width of indexes
|
|
104
|
+
// 0 through (i - 1) and add half the width of current index i
|
|
105
|
+
return total + (navigationState.index === i ? (tabWidth + (gap ?? 0)) / 2 : tabWidth + (gap ?? 0));
|
|
106
|
+
}, 0);
|
|
107
|
+
const scrollAmount = centerDistance - layout.width / 2;
|
|
108
|
+
return normalizeScrollValue({
|
|
109
|
+
layout,
|
|
110
|
+
navigationState,
|
|
111
|
+
tabWidths,
|
|
112
|
+
value: scrollAmount,
|
|
113
|
+
gap,
|
|
114
|
+
scrollEnabled,
|
|
115
|
+
flattenedTabWidth
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
const getLabelTextDefault = ({
|
|
119
|
+
route
|
|
120
|
+
}) => route.title;
|
|
121
|
+
const getAccessibleDefault = ({
|
|
122
|
+
route
|
|
123
|
+
}) => typeof route.accessible !== 'undefined' ? route.accessible : true;
|
|
124
|
+
const getAccessibilityLabelDefault = ({
|
|
125
|
+
route
|
|
126
|
+
}) => typeof route.accessibilityLabel === 'string' ? route.accessibilityLabel : typeof route.title === 'string' ? route.title : undefined;
|
|
127
|
+
const renderIndicatorDefault = props => /*#__PURE__*/React.createElement(_TabBarIndicator.default, props);
|
|
128
|
+
const getTestIdDefault = ({
|
|
129
|
+
route
|
|
130
|
+
}) => route.testID;
|
|
131
|
+
|
|
132
|
+
// How many items measurements should we update per batch.
|
|
133
|
+
// Defaults to 10, since that's whats FlatList is using in initialNumToRender.
|
|
134
|
+
const MEASURE_PER_BATCH = 10;
|
|
135
|
+
function TabBar({
|
|
136
|
+
getLabelText = getLabelTextDefault,
|
|
137
|
+
getAccessible = getAccessibleDefault,
|
|
138
|
+
getAccessibilityLabel = getAccessibilityLabelDefault,
|
|
139
|
+
getTestID = getTestIdDefault,
|
|
140
|
+
renderIndicator = renderIndicatorDefault,
|
|
141
|
+
gap = 0,
|
|
142
|
+
scrollEnabled,
|
|
143
|
+
jumpTo,
|
|
144
|
+
navigationState,
|
|
145
|
+
position,
|
|
146
|
+
activeColor,
|
|
147
|
+
bounces,
|
|
148
|
+
contentContainerStyle,
|
|
149
|
+
inactiveColor,
|
|
150
|
+
indicatorContainerStyle,
|
|
151
|
+
indicatorStyle,
|
|
152
|
+
labelStyle,
|
|
153
|
+
onTabLongPress,
|
|
154
|
+
onTabPress,
|
|
155
|
+
pressColor,
|
|
156
|
+
pressOpacity,
|
|
157
|
+
renderBadge,
|
|
158
|
+
renderIcon,
|
|
159
|
+
renderLabel,
|
|
160
|
+
renderTabBarItem,
|
|
161
|
+
style,
|
|
162
|
+
tabStyle,
|
|
163
|
+
testID,
|
|
164
|
+
android_ripple
|
|
165
|
+
}) {
|
|
166
|
+
const [layout, setLayout] = React.useState({
|
|
167
|
+
width: 0,
|
|
168
|
+
height: 0
|
|
169
|
+
});
|
|
170
|
+
const [tabWidths, setTabWidths] = React.useState({});
|
|
171
|
+
const flatListRef = React.useRef(null);
|
|
172
|
+
const isFirst = React.useRef(true);
|
|
173
|
+
const scrollAmount = (0, _useAnimatedValue.default)(0);
|
|
174
|
+
const measuredTabWidths = React.useRef({});
|
|
175
|
+
const {
|
|
176
|
+
routes
|
|
177
|
+
} = navigationState;
|
|
178
|
+
const flattenedTabWidth = getFlattenedTabWidth(tabStyle);
|
|
179
|
+
const isWidthDynamic = flattenedTabWidth === 'auto';
|
|
180
|
+
const scrollOffset = getScrollAmount({
|
|
181
|
+
layout,
|
|
182
|
+
navigationState,
|
|
183
|
+
tabWidths,
|
|
184
|
+
gap,
|
|
185
|
+
scrollEnabled,
|
|
186
|
+
flattenedTabWidth
|
|
187
|
+
});
|
|
188
|
+
const hasMeasuredTabWidths = Boolean(layout.width) && routes.slice(0, navigationState.index).every(r => typeof tabWidths[r.key] === 'number');
|
|
189
|
+
React.useEffect(() => {
|
|
190
|
+
if (isFirst.current) {
|
|
191
|
+
isFirst.current = false;
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
if (isWidthDynamic && !hasMeasuredTabWidths) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
if (scrollEnabled) {
|
|
198
|
+
var _flatListRef$current;
|
|
199
|
+
(_flatListRef$current = flatListRef.current) === null || _flatListRef$current === void 0 || _flatListRef$current.scrollToOffset({
|
|
200
|
+
offset: scrollOffset,
|
|
201
|
+
animated: true
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
}, [hasMeasuredTabWidths, isWidthDynamic, scrollEnabled, scrollOffset]);
|
|
205
|
+
const handleLayout = e => {
|
|
206
|
+
const {
|
|
207
|
+
height,
|
|
208
|
+
width
|
|
209
|
+
} = e.nativeEvent.layout;
|
|
210
|
+
setLayout(layout => layout.width === width && layout.height === height ? layout : {
|
|
211
|
+
width,
|
|
212
|
+
height
|
|
213
|
+
});
|
|
214
|
+
};
|
|
215
|
+
const tabBarWidth = getTabBarWidth({
|
|
216
|
+
layout,
|
|
217
|
+
navigationState,
|
|
218
|
+
tabWidths,
|
|
219
|
+
gap,
|
|
220
|
+
scrollEnabled,
|
|
221
|
+
flattenedTabWidth
|
|
222
|
+
});
|
|
223
|
+
const separatorsWidth = Math.max(0, routes.length - 1) * gap;
|
|
224
|
+
const separatorPercent = separatorsWidth / tabBarWidth * 100;
|
|
225
|
+
const tabBarWidthPercent = `${routes.length * 40}%`;
|
|
226
|
+
const translateX = React.useMemo(() => getTranslateX(scrollAmount, getMaxScrollDistance(tabBarWidth, layout.width)), [layout.width, scrollAmount, tabBarWidth]);
|
|
227
|
+
const renderItem = React.useCallback(({
|
|
228
|
+
item: route,
|
|
229
|
+
index
|
|
230
|
+
}) => {
|
|
231
|
+
const props = {
|
|
232
|
+
key: route.key,
|
|
233
|
+
position: position,
|
|
234
|
+
route: route,
|
|
235
|
+
navigationState: navigationState,
|
|
236
|
+
getAccessibilityLabel: getAccessibilityLabel,
|
|
237
|
+
getAccessible: getAccessible,
|
|
238
|
+
getLabelText: getLabelText,
|
|
239
|
+
getTestID: getTestID,
|
|
240
|
+
renderBadge: renderBadge,
|
|
241
|
+
renderIcon: renderIcon,
|
|
242
|
+
renderLabel: renderLabel,
|
|
243
|
+
activeColor: activeColor,
|
|
244
|
+
inactiveColor: inactiveColor,
|
|
245
|
+
pressColor: pressColor,
|
|
246
|
+
pressOpacity: pressOpacity,
|
|
247
|
+
onLayout: isWidthDynamic ? e => {
|
|
248
|
+
measuredTabWidths.current[route.key] = e.nativeEvent.layout.width;
|
|
249
|
+
|
|
250
|
+
// When we have measured widths for all of the tabs, we should updates the state
|
|
251
|
+
// We avoid doing separate setState for each layout since it triggers multiple renders and slows down app
|
|
252
|
+
// If we have more than 10 routes divide updating tabWidths into multiple batches. Here we update only first batch of 10 items.
|
|
253
|
+
if (routes.length > MEASURE_PER_BATCH && index === MEASURE_PER_BATCH && routes.slice(0, MEASURE_PER_BATCH).every(r => typeof measuredTabWidths.current[r.key] === 'number')) {
|
|
254
|
+
setTabWidths({
|
|
255
|
+
...measuredTabWidths.current
|
|
256
|
+
});
|
|
257
|
+
} else if (routes.every(r => typeof measuredTabWidths.current[r.key] === 'number')) {
|
|
258
|
+
// When we have measured widths for all of the tabs, we should updates the state
|
|
259
|
+
// We avoid doing separate setState for each layout since it triggers multiple renders and slows down app
|
|
260
|
+
setTabWidths({
|
|
261
|
+
...measuredTabWidths.current
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
} : undefined,
|
|
265
|
+
onPress: () => {
|
|
266
|
+
const event = {
|
|
267
|
+
route,
|
|
268
|
+
defaultPrevented: false,
|
|
269
|
+
preventDefault: () => {
|
|
270
|
+
event.defaultPrevented = true;
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
onTabPress === null || onTabPress === void 0 || onTabPress(event);
|
|
274
|
+
if (event.defaultPrevented) {
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
jumpTo(route.key);
|
|
278
|
+
},
|
|
279
|
+
onLongPress: () => onTabLongPress === null || onTabLongPress === void 0 ? void 0 : onTabLongPress({
|
|
280
|
+
route
|
|
281
|
+
}),
|
|
282
|
+
labelStyle: labelStyle,
|
|
283
|
+
style: tabStyle,
|
|
284
|
+
// Calculate the deafult width for tab for FlatList to work
|
|
285
|
+
defaultTabWidth: !isWidthDynamic ? getComputedTabWidth(index, layout, routes, scrollEnabled, tabWidths, getFlattenedTabWidth(tabStyle)) : undefined,
|
|
286
|
+
android_ripple
|
|
287
|
+
};
|
|
288
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, gap > 0 && index > 0 ? /*#__PURE__*/React.createElement(Separator, {
|
|
289
|
+
width: gap
|
|
290
|
+
}) : null, renderTabBarItem ? renderTabBarItem(props) : /*#__PURE__*/React.createElement(_TabBarItem.default, props));
|
|
291
|
+
}, [activeColor, android_ripple, gap, getAccessibilityLabel, getAccessible, getLabelText, getTestID, inactiveColor, isWidthDynamic, jumpTo, labelStyle, layout, navigationState, onTabLongPress, onTabPress, position, pressColor, pressOpacity, renderBadge, renderIcon, renderLabel, renderTabBarItem, routes, scrollEnabled, tabStyle, tabWidths]);
|
|
292
|
+
const keyExtractor = React.useCallback(item => item.key, []);
|
|
293
|
+
const contentContainerStyleMemoized = React.useMemo(() => [styles.tabContent, scrollEnabled ? {
|
|
294
|
+
width: tabBarWidth > separatorsWidth ? tabBarWidth : tabBarWidthPercent
|
|
295
|
+
} : styles.container, contentContainerStyle], [contentContainerStyle, scrollEnabled, separatorsWidth, tabBarWidth, tabBarWidthPercent]);
|
|
296
|
+
const handleScroll = React.useMemo(() => _reactNative.Animated.event([{
|
|
297
|
+
nativeEvent: {
|
|
298
|
+
contentOffset: {
|
|
299
|
+
x: scrollAmount
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}], {
|
|
303
|
+
useNativeDriver: true
|
|
304
|
+
}), [scrollAmount]);
|
|
305
|
+
const handleViewableItemsChanged = (0, _useLatestCallback.default)(({
|
|
306
|
+
changed
|
|
307
|
+
}) => {
|
|
308
|
+
if (routes.length <= MEASURE_PER_BATCH) {
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
// Get next vievable item
|
|
312
|
+
const item = changed[changed.length - 1];
|
|
313
|
+
const index = (item === null || item === void 0 ? void 0 : item.index) || 0;
|
|
314
|
+
if (item.isViewable && (index % 10 === 0 || index === navigationState.index || index === routes.length - 1)) {
|
|
315
|
+
setTabWidths({
|
|
316
|
+
...measuredTabWidths.current
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
|
|
321
|
+
// FIXME: Not sure why i have to as-any here (x3) ..
|
|
322
|
+
return /*#__PURE__*/React.createElement(_reactNative.Animated.View, {
|
|
323
|
+
onLayout: handleLayout,
|
|
324
|
+
style: [styles.tabBar, style]
|
|
325
|
+
}, /*#__PURE__*/React.createElement(_reactNative.Animated.View, {
|
|
326
|
+
pointerEvents: "none",
|
|
327
|
+
style: [styles.indicatorContainer, scrollEnabled ? {
|
|
328
|
+
transform: [{
|
|
329
|
+
translateX
|
|
330
|
+
}]
|
|
331
|
+
} : null, tabBarWidth > separatorsWidth ? {
|
|
332
|
+
width: tabBarWidth - separatorsWidth
|
|
333
|
+
} : scrollEnabled ? {
|
|
334
|
+
width: tabBarWidthPercent
|
|
335
|
+
} : null, indicatorContainerStyle]
|
|
336
|
+
}, renderIndicator({
|
|
337
|
+
position,
|
|
338
|
+
layout,
|
|
339
|
+
navigationState,
|
|
340
|
+
jumpTo,
|
|
341
|
+
width: isWidthDynamic ? 'auto' : `${(100 - separatorPercent) / routes.length}%`,
|
|
342
|
+
style: indicatorStyle,
|
|
343
|
+
getTabWidth: i => getComputedTabWidth(i, layout, routes, scrollEnabled, tabWidths, flattenedTabWidth),
|
|
344
|
+
gap
|
|
345
|
+
})), /*#__PURE__*/React.createElement(_reactNative.View, {
|
|
346
|
+
style: styles.scroll
|
|
347
|
+
}, /*#__PURE__*/React.createElement(_reactNative.Animated.FlatList, {
|
|
348
|
+
data: routes,
|
|
349
|
+
keyExtractor: keyExtractor,
|
|
350
|
+
horizontal: true,
|
|
351
|
+
accessibilityRole: "tablist",
|
|
352
|
+
keyboardShouldPersistTaps: "handled",
|
|
353
|
+
scrollEnabled: scrollEnabled,
|
|
354
|
+
bounces: bounces,
|
|
355
|
+
initialNumToRender: MEASURE_PER_BATCH,
|
|
356
|
+
onViewableItemsChanged: handleViewableItemsChanged,
|
|
357
|
+
alwaysBounceHorizontal: false,
|
|
358
|
+
scrollsToTop: false,
|
|
359
|
+
showsHorizontalScrollIndicator: false,
|
|
360
|
+
showsVerticalScrollIndicator: false,
|
|
361
|
+
automaticallyAdjustContentInsets: false,
|
|
362
|
+
overScrollMode: "never",
|
|
363
|
+
contentContainerStyle: contentContainerStyleMemoized,
|
|
364
|
+
scrollEventThrottle: 16,
|
|
365
|
+
renderItem: renderItem,
|
|
366
|
+
onScroll: handleScroll,
|
|
367
|
+
ref: flatListRef,
|
|
368
|
+
testID: testID
|
|
369
|
+
})));
|
|
370
|
+
}
|
|
371
|
+
const styles = _reactNative.StyleSheet.create({
|
|
372
|
+
container: {
|
|
373
|
+
flex: 1
|
|
374
|
+
},
|
|
375
|
+
scroll: {
|
|
376
|
+
overflow: _reactNative.Platform.select({
|
|
377
|
+
default: 'scroll',
|
|
378
|
+
web: undefined
|
|
379
|
+
})
|
|
380
|
+
},
|
|
381
|
+
tabBar: {
|
|
382
|
+
backgroundColor: '#2196f3',
|
|
383
|
+
elevation: 4,
|
|
384
|
+
shadowColor: 'black',
|
|
385
|
+
shadowOpacity: 0.1,
|
|
386
|
+
shadowRadius: _reactNative.StyleSheet.hairlineWidth,
|
|
387
|
+
shadowOffset: {
|
|
388
|
+
height: _reactNative.StyleSheet.hairlineWidth,
|
|
389
|
+
width: 0
|
|
390
|
+
},
|
|
391
|
+
zIndex: 1
|
|
392
|
+
},
|
|
393
|
+
tabContent: {
|
|
394
|
+
flexDirection: 'row',
|
|
395
|
+
flexWrap: 'nowrap'
|
|
396
|
+
},
|
|
397
|
+
indicatorContainer: {
|
|
398
|
+
position: 'absolute',
|
|
399
|
+
top: 0,
|
|
400
|
+
left: 0,
|
|
401
|
+
right: 0,
|
|
402
|
+
bottom: 0
|
|
403
|
+
}
|
|
404
|
+
});
|
|
405
|
+
//# sourceMappingURL=TabBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_useLatestCallback","_interopRequireDefault","_TabBarIndicator","_TabBarItem","_useAnimatedValue","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Separator","width","createElement","View","style","getFlattenedTabWidth","tabStyle","StyleSheet","flatten","getComputedTabWidth","index","layout","routes","scrollEnabled","tabWidths","flattenedWidth","key","endsWith","parseFloat","Number","isFinite","length","getMaxScrollDistance","tabBarWidth","layoutWidth","getTranslateX","scrollAmount","maxScrollDistance","Animated","multiply","Platform","OS","I18nManager","isRTL","add","getTabBarWidth","navigationState","gap","flattenedTabWidth","reduce","acc","_","normalizeScrollValue","value","maxDistance","scrollValue","Math","max","min","getScrollAmount","centerDistance","Array","from","total","tabWidth","getLabelTextDefault","route","title","getAccessibleDefault","accessible","getAccessibilityLabelDefault","accessibilityLabel","undefined","renderIndicatorDefault","props","getTestIdDefault","testID","MEASURE_PER_BATCH","TabBar","getLabelText","getAccessible","getAccessibilityLabel","getTestID","renderIndicator","jumpTo","position","activeColor","bounces","contentContainerStyle","inactiveColor","indicatorContainerStyle","indicatorStyle","labelStyle","onTabLongPress","onTabPress","pressColor","pressOpacity","renderBadge","renderIcon","renderLabel","renderTabBarItem","android_ripple","setLayout","useState","height","setTabWidths","flatListRef","useRef","isFirst","useAnimatedValue","measuredTabWidths","isWidthDynamic","scrollOffset","hasMeasuredTabWidths","Boolean","slice","every","useEffect","current","_flatListRef$current","scrollToOffset","offset","animated","handleLayout","nativeEvent","separatorsWidth","separatorPercent","tabBarWidthPercent","translateX","useMemo","renderItem","useCallback","item","onLayout","onPress","event","defaultPrevented","preventDefault","onLongPress","defaultTabWidth","Fragment","keyExtractor","contentContainerStyleMemoized","styles","tabContent","container","handleScroll","contentOffset","x","useNativeDriver","handleViewableItemsChanged","useLatestCallback","changed","isViewable","tabBar","pointerEvents","indicatorContainer","transform","getTabWidth","scroll","FlatList","data","horizontal","accessibilityRole","keyboardShouldPersistTaps","initialNumToRender","onViewableItemsChanged","alwaysBounceHorizontal","scrollsToTop","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","automaticallyAdjustContentInsets","overScrollMode","scrollEventThrottle","onScroll","ref","create","flex","overflow","select","web","backgroundColor","elevation","shadowColor","shadowOpacity","shadowRadius","hairlineWidth","shadowOffset","zIndex","flexDirection","flexWrap","top","left","right","bottom"],"sourceRoot":"../../src","sources":["TabBar.tsx"],"mappings":"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","ignoreList":[]}
|