@react-navigation/bottom-tabs 7.0.0-alpha.1 → 7.0.0-alpha.3
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/TransitionConfigs/SceneStyleInterpolators.js +47 -0
- package/lib/commonjs/TransitionConfigs/SceneStyleInterpolators.js.map +1 -0
- package/lib/commonjs/TransitionConfigs/TransitionPresets.js +19 -0
- package/lib/commonjs/TransitionConfigs/TransitionPresets.js.map +1 -0
- package/lib/commonjs/TransitionConfigs/TransitionSpecs.js +24 -0
- package/lib/commonjs/TransitionConfigs/TransitionSpecs.js.map +1 -0
- package/lib/commonjs/index.js +9 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils/useAnimatedHashMap.js +31 -0
- package/lib/commonjs/utils/useAnimatedHashMap.js.map +1 -0
- package/lib/commonjs/views/BottomTabView.js +74 -4
- package/lib/commonjs/views/BottomTabView.js.map +1 -1
- package/lib/commonjs/views/ScreenFallback.js +6 -8
- package/lib/commonjs/views/ScreenFallback.js.map +1 -1
- package/lib/module/TransitionConfigs/SceneStyleInterpolators.js +40 -0
- package/lib/module/TransitionConfigs/SceneStyleInterpolators.js.map +1 -0
- package/lib/module/TransitionConfigs/TransitionPresets.js +11 -0
- package/lib/module/TransitionConfigs/TransitionPresets.js.map +1 -0
- package/lib/module/TransitionConfigs/TransitionSpecs.js +16 -0
- package/lib/module/TransitionConfigs/TransitionSpecs.js.map +1 -0
- package/lib/module/index.js +9 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/useAnimatedHashMap.js +23 -0
- package/lib/module/utils/useAnimatedHashMap.js.map +1 -0
- package/lib/module/views/BottomTabView.js +75 -5
- package/lib/module/views/BottomTabView.js.map +1 -1
- package/lib/module/views/ScreenFallback.js +6 -8
- package/lib/module/views/ScreenFallback.js.map +1 -1
- package/lib/typescript/src/TransitionConfigs/SceneStyleInterpolators.d.ts +10 -0
- package/lib/typescript/src/TransitionConfigs/SceneStyleInterpolators.d.ts.map +1 -0
- package/lib/typescript/src/TransitionConfigs/TransitionPresets.d.ts +4 -0
- package/lib/typescript/src/TransitionConfigs/TransitionPresets.d.ts.map +1 -0
- package/lib/typescript/src/TransitionConfigs/TransitionSpecs.d.ts +4 -0
- package/lib/typescript/src/TransitionConfigs/TransitionSpecs.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +7 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/navigators/createBottomTabNavigator.d.ts +0 -1
- package/lib/typescript/src/navigators/createBottomTabNavigator.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +50 -0
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/utils/useAnimatedHashMap.d.ts +4 -0
- package/lib/typescript/src/utils/useAnimatedHashMap.d.ts.map +1 -0
- package/lib/typescript/src/views/Badge.d.ts +0 -1
- package/lib/typescript/src/views/Badge.d.ts.map +1 -1
- package/lib/typescript/src/views/BottomTabBar.d.ts +0 -1
- package/lib/typescript/src/views/BottomTabBar.d.ts.map +1 -1
- package/lib/typescript/src/views/BottomTabView.d.ts +0 -1
- package/lib/typescript/src/views/BottomTabView.d.ts.map +1 -1
- package/lib/typescript/src/views/ScreenFallback.d.ts +4 -4
- package/lib/typescript/src/views/ScreenFallback.d.ts.map +1 -1
- package/package.json +10 -10
- package/src/TransitionConfigs/SceneStyleInterpolators.tsx +44 -0
- package/src/TransitionConfigs/TransitionPresets.tsx +13 -0
- package/src/TransitionConfigs/TransitionSpecs.tsx +19 -0
- package/src/index.tsx +9 -0
- package/src/types.tsx +70 -0
- package/src/utils/useAnimatedHashMap.tsx +25 -0
- package/src/views/BottomTabView.tsx +93 -6
- package/src/views/ScreenFallback.tsx +6 -13
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.forCrossFade = forCrossFade;
|
|
7
|
+
exports.forShifting = forShifting;
|
|
8
|
+
/**
|
|
9
|
+
* Simple cross fade animation
|
|
10
|
+
*/
|
|
11
|
+
function forCrossFade(_ref) {
|
|
12
|
+
let {
|
|
13
|
+
current
|
|
14
|
+
} = _ref;
|
|
15
|
+
return {
|
|
16
|
+
sceneStyle: {
|
|
17
|
+
opacity: current.interpolate({
|
|
18
|
+
inputRange: [-1, 0, 1],
|
|
19
|
+
outputRange: [0, 1, 0]
|
|
20
|
+
})
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Animation where the screens slightly shift to left/right
|
|
27
|
+
*/
|
|
28
|
+
function forShifting(_ref2) {
|
|
29
|
+
let {
|
|
30
|
+
current
|
|
31
|
+
} = _ref2;
|
|
32
|
+
return {
|
|
33
|
+
sceneStyle: {
|
|
34
|
+
opacity: current.interpolate({
|
|
35
|
+
inputRange: [-1, 0, 1],
|
|
36
|
+
outputRange: [0, 1, 0]
|
|
37
|
+
}),
|
|
38
|
+
transform: [{
|
|
39
|
+
translateX: current.interpolate({
|
|
40
|
+
inputRange: [-1, 0, 1],
|
|
41
|
+
outputRange: [-50, 1, 50]
|
|
42
|
+
})
|
|
43
|
+
}]
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=SceneStyleInterpolators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forCrossFade","current","sceneStyle","opacity","interpolate","inputRange","outputRange","forShifting","transform","translateX"],"sourceRoot":"../../../src","sources":["TransitionConfigs/SceneStyleInterpolators.tsx"],"mappings":";;;;;;;AAKA;AACA;AACA;AACO,SAASA,YAAY,OAE0C;EAAA,IAFzC;IAC3BC;EACgC,CAAC;EACjC,OAAO;IACLC,UAAU,EAAE;MACVC,OAAO,EAAEF,OAAO,CAACG,WAAW,CAAC;QAC3BC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACtBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;MACvB,CAAC;IACH;EACF,CAAC;AACH;;AAEA;AACA;AACA;AACO,SAASC,WAAW,QAE2C;EAAA,IAF1C;IAC1BN;EACgC,CAAC;EACjC,OAAO;IACLC,UAAU,EAAE;MACVC,OAAO,EAAEF,OAAO,CAACG,WAAW,CAAC;QAC3BC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACtBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;MACvB,CAAC,CAAC;MACFE,SAAS,EAAE,CACT;QACEC,UAAU,EAAER,OAAO,CAACG,WAAW,CAAC;UAC9BC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;UACtBC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QAC1B,CAAC;MACH,CAAC;IAEL;EACF,CAAC;AACH"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ShiftingTransition = exports.FadeTransition = void 0;
|
|
7
|
+
var _SceneStyleInterpolators = require("./SceneStyleInterpolators");
|
|
8
|
+
var _TransitionSpecs = require("./TransitionSpecs");
|
|
9
|
+
const FadeTransition = {
|
|
10
|
+
transitionSpec: _TransitionSpecs.CrossFadeSpec,
|
|
11
|
+
sceneStyleInterpolator: _SceneStyleInterpolators.forCrossFade
|
|
12
|
+
};
|
|
13
|
+
exports.FadeTransition = FadeTransition;
|
|
14
|
+
const ShiftingTransition = {
|
|
15
|
+
transitionSpec: _TransitionSpecs.ShiftingSpec,
|
|
16
|
+
sceneStyleInterpolator: _SceneStyleInterpolators.forShifting
|
|
17
|
+
};
|
|
18
|
+
exports.ShiftingTransition = ShiftingTransition;
|
|
19
|
+
//# sourceMappingURL=TransitionPresets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FadeTransition","transitionSpec","CrossFadeSpec","sceneStyleInterpolator","forCrossFade","ShiftingTransition","ShiftingSpec","forShifting"],"sourceRoot":"../../../src","sources":["TransitionConfigs/TransitionPresets.tsx"],"mappings":";;;;;;AACA;AACA;AAEO,MAAMA,cAAyC,GAAG;EACvDC,cAAc,EAAEC,8BAAa;EAC7BC,sBAAsB,EAAEC;AAC1B,CAAC;AAAC;AAEK,MAAMC,kBAA6C,GAAG;EAC3DJ,cAAc,EAAEK,6BAAY;EAC5BH,sBAAsB,EAAEI;AAC1B,CAAC;AAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ShiftingSpec = exports.CrossFadeSpec = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
const CrossFadeSpec = {
|
|
9
|
+
animation: 'timing',
|
|
10
|
+
config: {
|
|
11
|
+
duration: 150,
|
|
12
|
+
easing: _reactNative.Easing.in(_reactNative.Easing.linear)
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
exports.CrossFadeSpec = CrossFadeSpec;
|
|
16
|
+
const ShiftingSpec = {
|
|
17
|
+
animation: 'timing',
|
|
18
|
+
config: {
|
|
19
|
+
duration: 150,
|
|
20
|
+
easing: _reactNative.Easing.inOut(_reactNative.Easing.ease)
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
exports.ShiftingSpec = ShiftingSpec;
|
|
24
|
+
//# sourceMappingURL=TransitionSpecs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CrossFadeSpec","animation","config","duration","easing","Easing","in","linear","ShiftingSpec","inOut","ease"],"sourceRoot":"../../../src","sources":["TransitionConfigs/TransitionSpecs.tsx"],"mappings":";;;;;;AAAA;AAIO,MAAMA,aAA6B,GAAG;EAC3CC,SAAS,EAAE,QAAQ;EACnBC,MAAM,EAAE;IACNC,QAAQ,EAAE,GAAG;IACbC,MAAM,EAAEC,mBAAM,CAACC,EAAE,CAACD,mBAAM,CAACE,MAAM;EACjC;AACF,CAAC;AAAC;AAEK,MAAMC,YAA4B,GAAG;EAC1CP,SAAS,EAAE,QAAQ;EACnBC,MAAM,EAAE;IACNC,QAAQ,EAAE,GAAG;IACbC,MAAM,EAAEC,mBAAM,CAACI,KAAK,CAACJ,mBAAM,CAACK,IAAI;EAClC;AACF,CAAC;AAAC"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -27,6 +27,7 @@ Object.defineProperty(exports, "BottomTabView", {
|
|
|
27
27
|
return _BottomTabView.BottomTabView;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
+
exports.TransitionSpecs = exports.TransitionPresets = exports.SceneStyleInterpolator = void 0;
|
|
30
31
|
Object.defineProperty(exports, "createBottomTabNavigator", {
|
|
31
32
|
enumerable: true,
|
|
32
33
|
get: function () {
|
|
@@ -39,10 +40,18 @@ Object.defineProperty(exports, "useBottomTabBarHeight", {
|
|
|
39
40
|
return _useBottomTabBarHeight.useBottomTabBarHeight;
|
|
40
41
|
}
|
|
41
42
|
});
|
|
43
|
+
var SceneStyleInterpolator = _interopRequireWildcard(require("./TransitionConfigs/SceneStyleInterpolators"));
|
|
44
|
+
exports.SceneStyleInterpolator = SceneStyleInterpolator;
|
|
45
|
+
var TransitionPresets = _interopRequireWildcard(require("./TransitionConfigs/TransitionPresets"));
|
|
46
|
+
exports.TransitionPresets = TransitionPresets;
|
|
47
|
+
var TransitionSpecs = _interopRequireWildcard(require("./TransitionConfigs/TransitionSpecs"));
|
|
48
|
+
exports.TransitionSpecs = TransitionSpecs;
|
|
42
49
|
var _createBottomTabNavigator = require("./navigators/createBottomTabNavigator");
|
|
43
50
|
var _BottomTabBar = require("./views/BottomTabBar");
|
|
44
51
|
var _BottomTabView = require("./views/BottomTabView");
|
|
45
52
|
var _BottomTabBarHeightCallbackContext = require("./utils/BottomTabBarHeightCallbackContext");
|
|
46
53
|
var _BottomTabBarHeightContext = require("./utils/BottomTabBarHeightContext");
|
|
47
54
|
var _useBottomTabBarHeight = require("./utils/useBottomTabBarHeight");
|
|
55
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
56
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
48
57
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAsF;AACtF;AAA2E;AAC3E;AAAuE;AAUvE;AAKA;AACA;AAKA;AACA;AACA;AAAsE;AAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useAnimatedHashMap = useAnimatedHashMap;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
10
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
11
|
+
function useAnimatedHashMap(_ref) {
|
|
12
|
+
let {
|
|
13
|
+
routes,
|
|
14
|
+
index
|
|
15
|
+
} = _ref;
|
|
16
|
+
const refs = React.useRef({});
|
|
17
|
+
const previous = refs.current;
|
|
18
|
+
const routeKeys = Object.keys(previous);
|
|
19
|
+
if (routes.length === routeKeys.length && routes.every(route => routeKeys.includes(route.key))) {
|
|
20
|
+
return previous;
|
|
21
|
+
}
|
|
22
|
+
refs.current = {};
|
|
23
|
+
routes.forEach((_ref2, i) => {
|
|
24
|
+
let {
|
|
25
|
+
key
|
|
26
|
+
} = _ref2;
|
|
27
|
+
refs.current[key] = previous[key] ?? new _reactNative.Animated.Value(i === index ? 0 : i >= index ? 1 : -1);
|
|
28
|
+
});
|
|
29
|
+
return refs.current;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=useAnimatedHashMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useAnimatedHashMap","routes","index","refs","React","useRef","previous","current","routeKeys","Object","keys","length","every","route","includes","key","forEach","i","Animated","Value"],"sourceRoot":"../../../src","sources":["utils/useAnimatedHashMap.tsx"],"mappings":";;;;;;AACA;AACA;AAAwC;AAAA;AAEjC,SAASA,kBAAkB,OAAqC;EAAA,IAApC;IAAEC,MAAM;IAAEC;EAAuB,CAAC;EACnE,MAAMC,IAAI,GAAGC,KAAK,CAACC,MAAM,CAAiC,CAAC,CAAC,CAAC;EAC7D,MAAMC,QAAQ,GAAGH,IAAI,CAACI,OAAO;EAC7B,MAAMC,SAAS,GAAGC,MAAM,CAACC,IAAI,CAACJ,QAAQ,CAAC;EAEvC,IACEL,MAAM,CAACU,MAAM,KAAKH,SAAS,CAACG,MAAM,IAClCV,MAAM,CAACW,KAAK,CAAEC,KAAK,IAAKL,SAAS,CAACM,QAAQ,CAACD,KAAK,CAACE,GAAG,CAAC,CAAC,EACtD;IACA,OAAOT,QAAQ;EACjB;EACAH,IAAI,CAACI,OAAO,GAAG,CAAC,CAAC;EAEjBN,MAAM,CAACe,OAAO,CAAC,QAAUC,CAAC,KAAK;IAAA,IAAf;MAAEF;IAAI,CAAC;IACrBZ,IAAI,CAACI,OAAO,CAACQ,GAAG,CAAC,GACfT,QAAQ,CAACS,GAAG,CAAC,IACb,IAAIG,qBAAQ,CAACC,KAAK,CAACF,CAAC,KAAKf,KAAK,GAAG,CAAC,GAAGe,CAAC,IAAIf,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;EAC7D,CAAC,CAAC;EAEF,OAAOC,IAAI,CAACI,OAAO;AACrB"}
|
|
@@ -10,11 +10,27 @@ var _reactNative = require("react-native");
|
|
|
10
10
|
var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
|
|
11
11
|
var _BottomTabBarHeightCallbackContext = require("../utils/BottomTabBarHeightCallbackContext");
|
|
12
12
|
var _BottomTabBarHeightContext = require("../utils/BottomTabBarHeightContext");
|
|
13
|
+
var _useAnimatedHashMap = require("../utils/useAnimatedHashMap");
|
|
13
14
|
var _BottomTabBar = require("./BottomTabBar");
|
|
14
15
|
var _ScreenFallback = require("./ScreenFallback");
|
|
15
16
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
17
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
18
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
19
|
+
var CompositeAnimation = _reactNative.Animated.CompositeAnimation;
|
|
20
|
+
const EPSILON = 1e-5;
|
|
21
|
+
const STATE_INACTIVE = 0;
|
|
22
|
+
const STATE_TRANSITIONING_OR_BELOW_TOP = 1;
|
|
23
|
+
const STATE_ON_TOP = 2;
|
|
24
|
+
const hasAnimation = options => {
|
|
25
|
+
const {
|
|
26
|
+
animationEnabled,
|
|
27
|
+
transitionSpec
|
|
28
|
+
} = options;
|
|
29
|
+
if (animationEnabled === false || !transitionSpec) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
return true;
|
|
33
|
+
};
|
|
18
34
|
function BottomTabView(props) {
|
|
19
35
|
const {
|
|
20
36
|
tabBar = props => /*#__PURE__*/React.createElement(_BottomTabBar.BottomTabBar, props),
|
|
@@ -26,10 +42,43 @@ function BottomTabView(props) {
|
|
|
26
42
|
sceneContainerStyle
|
|
27
43
|
} = props;
|
|
28
44
|
const focusedRouteKey = state.routes[state.index].key;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* List of loaded tabs, tabs will be loaded when navigated to.
|
|
48
|
+
*/
|
|
29
49
|
const [loaded, setLoaded] = React.useState([focusedRouteKey]);
|
|
30
50
|
if (!loaded.includes(focusedRouteKey)) {
|
|
51
|
+
// Set the current tab to be loaded if it was not loaded before
|
|
31
52
|
setLoaded([...loaded, focusedRouteKey]);
|
|
32
53
|
}
|
|
54
|
+
const tabAnims = (0, _useAnimatedHashMap.useAnimatedHashMap)(state);
|
|
55
|
+
React.useEffect(() => {
|
|
56
|
+
const animateToIndex = () => {
|
|
57
|
+
_reactNative.Animated.parallel(state.routes.map((route, index) => {
|
|
58
|
+
const {
|
|
59
|
+
options
|
|
60
|
+
} = descriptors[route.key];
|
|
61
|
+
const {
|
|
62
|
+
transitionSpec
|
|
63
|
+
} = options;
|
|
64
|
+
const animationEnabled = hasAnimation(options);
|
|
65
|
+
const toValue = index === state.index ? 0 : index >= state.index ? 1 : -1;
|
|
66
|
+
if (!animationEnabled || !transitionSpec) {
|
|
67
|
+
return _reactNative.Animated.timing(tabAnims[route.key], {
|
|
68
|
+
toValue,
|
|
69
|
+
duration: 0,
|
|
70
|
+
useNativeDriver: true
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return _reactNative.Animated[transitionSpec.animation](tabAnims[route.key], {
|
|
74
|
+
...transitionSpec.config,
|
|
75
|
+
toValue,
|
|
76
|
+
useNativeDriver: true
|
|
77
|
+
});
|
|
78
|
+
}).filter(Boolean)).start();
|
|
79
|
+
};
|
|
80
|
+
animateToIndex();
|
|
81
|
+
}, [descriptors, state.index, state.routes, tabAnims]);
|
|
33
82
|
const dimensions = _elements.SafeAreaProviderCompat.initialMetrics.frame;
|
|
34
83
|
const [tabBarHeight, setTabBarHeight] = React.useState(() => (0, _BottomTabBar.getTabBarHeight)({
|
|
35
84
|
state,
|
|
@@ -61,15 +110,19 @@ function BottomTabView(props) {
|
|
|
61
110
|
const {
|
|
62
111
|
routes
|
|
63
112
|
} = state;
|
|
113
|
+
|
|
114
|
+
// If there is no animation, we only have 2 states: visible and invisible
|
|
115
|
+
const hasTwoStates = !routes.some(route => hasAnimation(descriptors[route.key].options));
|
|
64
116
|
return /*#__PURE__*/React.createElement(_elements.SafeAreaProviderCompat, null, /*#__PURE__*/React.createElement(_ScreenFallback.MaybeScreenContainer, {
|
|
65
117
|
enabled: detachInactiveScreens,
|
|
66
|
-
hasTwoStates:
|
|
118
|
+
hasTwoStates: hasTwoStates,
|
|
67
119
|
style: styles.container
|
|
68
120
|
}, routes.map((route, index) => {
|
|
69
121
|
const descriptor = descriptors[route.key];
|
|
70
122
|
const {
|
|
71
123
|
lazy = true,
|
|
72
|
-
unmountOnBlur
|
|
124
|
+
unmountOnBlur,
|
|
125
|
+
sceneStyleInterpolator
|
|
73
126
|
} = descriptor.options;
|
|
74
127
|
const isFocused = state.index === index;
|
|
75
128
|
if (unmountOnBlur && !isFocused) {
|
|
@@ -95,12 +148,29 @@ function BottomTabView(props) {
|
|
|
95
148
|
headerStatusBarHeight,
|
|
96
149
|
headerTransparent
|
|
97
150
|
} = descriptor.options;
|
|
151
|
+
const {
|
|
152
|
+
sceneStyle
|
|
153
|
+
} = (sceneStyleInterpolator === null || sceneStyleInterpolator === void 0 ? void 0 : sceneStyleInterpolator({
|
|
154
|
+
current: tabAnims[route.key]
|
|
155
|
+
})) ?? {};
|
|
156
|
+
const animationEnabled = hasAnimation(descriptor.options);
|
|
157
|
+
const activityState = isFocused ? STATE_ON_TOP // the screen is on top after the transition
|
|
158
|
+
: animationEnabled // is animation is not enabled, immediately move to inactive state
|
|
159
|
+
? tabAnims[route.key].interpolate({
|
|
160
|
+
inputRange: [0, 1 - EPSILON, 1],
|
|
161
|
+
outputRange: [STATE_TRANSITIONING_OR_BELOW_TOP,
|
|
162
|
+
// screen visible during transition
|
|
163
|
+
STATE_TRANSITIONING_OR_BELOW_TOP, STATE_INACTIVE // the screen is detached after transition
|
|
164
|
+
],
|
|
165
|
+
|
|
166
|
+
extrapolate: 'extend'
|
|
167
|
+
}) : STATE_INACTIVE;
|
|
98
168
|
return /*#__PURE__*/React.createElement(_ScreenFallback.MaybeScreen, {
|
|
99
169
|
key: route.key,
|
|
100
170
|
style: [_reactNative.StyleSheet.absoluteFill, {
|
|
101
171
|
zIndex: isFocused ? 0 : -1
|
|
102
172
|
}],
|
|
103
|
-
|
|
173
|
+
active: activityState,
|
|
104
174
|
enabled: detachInactiveScreens,
|
|
105
175
|
freezeOnBlur: freezeOnBlur
|
|
106
176
|
}, /*#__PURE__*/React.createElement(_BottomTabBarHeightContext.BottomTabBarHeightContext.Provider, {
|
|
@@ -118,7 +188,7 @@ function BottomTabView(props) {
|
|
|
118
188
|
navigation: descriptor.navigation,
|
|
119
189
|
options: descriptor.options
|
|
120
190
|
}),
|
|
121
|
-
style: sceneContainerStyle
|
|
191
|
+
style: [sceneContainerStyle, animationEnabled && sceneStyle]
|
|
122
192
|
}, descriptor.render())));
|
|
123
193
|
})), /*#__PURE__*/React.createElement(_BottomTabBarHeightCallbackContext.BottomTabBarHeightCallbackContext.Provider, {
|
|
124
194
|
value: setTabBarHeight
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BottomTabView","props","tabBar","state","navigation","descriptors","safeAreaInsets","detachInactiveScreens","Platform","OS","sceneContainerStyle","focusedRouteKey","routes","index","key","loaded","setLoaded","React","useState","includes","dimensions","SafeAreaProviderCompat","initialMetrics","frame","tabBarHeight","setTabBarHeight","getTabBarHeight","layout","width","height","insets","style","
|
|
1
|
+
{"version":3,"names":["CompositeAnimation","Animated","EPSILON","STATE_INACTIVE","STATE_TRANSITIONING_OR_BELOW_TOP","STATE_ON_TOP","hasAnimation","options","animationEnabled","transitionSpec","BottomTabView","props","tabBar","state","navigation","descriptors","safeAreaInsets","detachInactiveScreens","Platform","OS","sceneContainerStyle","focusedRouteKey","routes","index","key","loaded","setLoaded","React","useState","includes","tabAnims","useAnimatedHashMap","useEffect","animateToIndex","parallel","map","route","toValue","timing","duration","useNativeDriver","animation","config","filter","Boolean","start","dimensions","SafeAreaProviderCompat","initialMetrics","frame","tabBarHeight","setTabBarHeight","getTabBarHeight","layout","width","height","insets","style","tabBarStyle","renderTabBar","top","right","bottom","left","hasTwoStates","some","styles","container","descriptor","lazy","unmountOnBlur","sceneStyleInterpolator","isFocused","freezeOnBlur","header","getHeaderTitle","name","headerShown","headerStatusBarHeight","headerTransparent","sceneStyle","current","activityState","interpolate","inputRange","outputRange","extrapolate","StyleSheet","absoluteFill","zIndex","render","create","flex","overflow"],"sourceRoot":"../../../src","sources":["views/BottomTabView.tsx"],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.MaybeScreen = MaybeScreen;
|
|
7
7
|
exports.MaybeScreenContainer = void 0;
|
|
8
|
-
var _elements = require("@react-navigation/elements");
|
|
9
8
|
var React = _interopRequireWildcard(require("react"));
|
|
10
9
|
var _reactNative = require("react-native");
|
|
11
10
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -34,17 +33,16 @@ exports.MaybeScreenContainer = MaybeScreenContainer;
|
|
|
34
33
|
function MaybeScreen(_ref2) {
|
|
35
34
|
var _Screens2, _Screens2$screensEnab;
|
|
36
35
|
let {
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
enabled,
|
|
37
|
+
active,
|
|
39
38
|
...rest
|
|
40
39
|
} = _ref2;
|
|
41
40
|
if ((_Screens2 = Screens) !== null && _Screens2 !== void 0 && (_Screens2$screensEnab = _Screens2.screensEnabled) !== null && _Screens2$screensEnab !== void 0 && _Screens2$screensEnab.call(_Screens2)) {
|
|
42
41
|
return /*#__PURE__*/React.createElement(Screens.Screen, _extends({
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
enabled: enabled,
|
|
43
|
+
activityState: active
|
|
44
|
+
}, rest));
|
|
45
45
|
}
|
|
46
|
-
return /*#__PURE__*/React.createElement(
|
|
47
|
-
visible: visible
|
|
48
|
-
}, rest), children);
|
|
46
|
+
return /*#__PURE__*/React.createElement(_reactNative.View, rest);
|
|
49
47
|
}
|
|
50
48
|
//# sourceMappingURL=ScreenFallback.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Screens","require","e","MaybeScreenContainer","enabled","rest","screensEnabled","MaybeScreen","
|
|
1
|
+
{"version":3,"names":["Screens","require","e","MaybeScreenContainer","enabled","rest","screensEnabled","MaybeScreen","active"],"sourceRoot":"../../../src","sources":["views/ScreenFallback.tsx"],"mappings":";;;;;;;AAAA;AACA;AAA+E;AAAA;AAAA;AAU/E,IAAIA,OAA0D;AAE9D,IAAI;EACFA,OAAO,GAAGC,OAAO,CAAC,sBAAsB,CAAC;AAC3C,CAAC,CAAC,OAAOC,CAAC,EAAE;EACV;AAAA;AAGK,MAAMC,oBAAoB,GAAG,QAO9B;EAAA;EAAA,IAP+B;IACnCC,OAAO;IACP,GAAGC;EAKL,CAAC;EACC,gBAAIL,OAAO,8DAAP,SAASM,cAAc,kDAAvB,oCAA2B,EAAE;IAC/B,oBAAO,oBAAC,OAAO,CAAC,eAAe;MAAC,OAAO,EAAEF;IAAQ,GAAKC,IAAI,EAAI;EAChE;EAEA,oBAAO,oBAAC,iBAAI,EAAKA,IAAI,CAAI;AAC3B,CAAC;AAAC;AAEK,SAASE,WAAW,QAAkD;EAAA;EAAA,IAAjD;IAAEH,OAAO;IAAEI,MAAM;IAAE,GAAGH;EAAwB,CAAC;EACzE,iBAAIL,OAAO,+DAAP,UAASM,cAAc,kDAAvB,qCAA2B,EAAE;IAC/B,oBACE,oBAAC,OAAO,CAAC,MAAM;MAAC,OAAO,EAAEF,OAAQ;MAAC,aAAa,EAAEI;IAAO,GAAKH,IAAI,EAAI;EAEzE;EAEA,oBAAO,oBAAC,iBAAI,EAAKA,IAAI,CAAI;AAC3B"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple cross fade animation
|
|
3
|
+
*/
|
|
4
|
+
export function forCrossFade(_ref) {
|
|
5
|
+
let {
|
|
6
|
+
current
|
|
7
|
+
} = _ref;
|
|
8
|
+
return {
|
|
9
|
+
sceneStyle: {
|
|
10
|
+
opacity: current.interpolate({
|
|
11
|
+
inputRange: [-1, 0, 1],
|
|
12
|
+
outputRange: [0, 1, 0]
|
|
13
|
+
})
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Animation where the screens slightly shift to left/right
|
|
20
|
+
*/
|
|
21
|
+
export function forShifting(_ref2) {
|
|
22
|
+
let {
|
|
23
|
+
current
|
|
24
|
+
} = _ref2;
|
|
25
|
+
return {
|
|
26
|
+
sceneStyle: {
|
|
27
|
+
opacity: current.interpolate({
|
|
28
|
+
inputRange: [-1, 0, 1],
|
|
29
|
+
outputRange: [0, 1, 0]
|
|
30
|
+
}),
|
|
31
|
+
transform: [{
|
|
32
|
+
translateX: current.interpolate({
|
|
33
|
+
inputRange: [-1, 0, 1],
|
|
34
|
+
outputRange: [-50, 1, 50]
|
|
35
|
+
})
|
|
36
|
+
}]
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=SceneStyleInterpolators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forCrossFade","current","sceneStyle","opacity","interpolate","inputRange","outputRange","forShifting","transform","translateX"],"sourceRoot":"../../../src","sources":["TransitionConfigs/SceneStyleInterpolators.tsx"],"mappings":"AAKA;AACA;AACA;AACA,OAAO,SAASA,YAAY,OAE0C;EAAA,IAFzC;IAC3BC;EACgC,CAAC;EACjC,OAAO;IACLC,UAAU,EAAE;MACVC,OAAO,EAAEF,OAAO,CAACG,WAAW,CAAC;QAC3BC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACtBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;MACvB,CAAC;IACH;EACF,CAAC;AACH;;AAEA;AACA;AACA;AACA,OAAO,SAASC,WAAW,QAE2C;EAAA,IAF1C;IAC1BN;EACgC,CAAC;EACjC,OAAO;IACLC,UAAU,EAAE;MACVC,OAAO,EAAEF,OAAO,CAACG,WAAW,CAAC;QAC3BC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACtBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;MACvB,CAAC,CAAC;MACFE,SAAS,EAAE,CACT;QACEC,UAAU,EAAER,OAAO,CAACG,WAAW,CAAC;UAC9BC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;UACtBC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QAC1B,CAAC;MACH,CAAC;IAEL;EACF,CAAC;AACH"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { forCrossFade, forShifting } from './SceneStyleInterpolators';
|
|
2
|
+
import { CrossFadeSpec, ShiftingSpec } from './TransitionSpecs';
|
|
3
|
+
export const FadeTransition = {
|
|
4
|
+
transitionSpec: CrossFadeSpec,
|
|
5
|
+
sceneStyleInterpolator: forCrossFade
|
|
6
|
+
};
|
|
7
|
+
export const ShiftingTransition = {
|
|
8
|
+
transitionSpec: ShiftingSpec,
|
|
9
|
+
sceneStyleInterpolator: forShifting
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=TransitionPresets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forCrossFade","forShifting","CrossFadeSpec","ShiftingSpec","FadeTransition","transitionSpec","sceneStyleInterpolator","ShiftingTransition"],"sourceRoot":"../../../src","sources":["TransitionConfigs/TransitionPresets.tsx"],"mappings":"AACA,SAASA,YAAY,EAAEC,WAAW,QAAQ,2BAA2B;AACrE,SAASC,aAAa,EAAEC,YAAY,QAAQ,mBAAmB;AAE/D,OAAO,MAAMC,cAAyC,GAAG;EACvDC,cAAc,EAAEH,aAAa;EAC7BI,sBAAsB,EAAEN;AAC1B,CAAC;AAED,OAAO,MAAMO,kBAA6C,GAAG;EAC3DF,cAAc,EAAEF,YAAY;EAC5BG,sBAAsB,EAAEL;AAC1B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Easing } from 'react-native';
|
|
2
|
+
export const CrossFadeSpec = {
|
|
3
|
+
animation: 'timing',
|
|
4
|
+
config: {
|
|
5
|
+
duration: 150,
|
|
6
|
+
easing: Easing.in(Easing.linear)
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
export const ShiftingSpec = {
|
|
10
|
+
animation: 'timing',
|
|
11
|
+
config: {
|
|
12
|
+
duration: 150,
|
|
13
|
+
easing: Easing.inOut(Easing.ease)
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=TransitionSpecs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Easing","CrossFadeSpec","animation","config","duration","easing","in","linear","ShiftingSpec","inOut","ease"],"sourceRoot":"../../../src","sources":["TransitionConfigs/TransitionSpecs.tsx"],"mappings":"AAAA,SAASA,MAAM,QAAQ,cAAc;AAIrC,OAAO,MAAMC,aAA6B,GAAG;EAC3CC,SAAS,EAAE,QAAQ;EACnBC,MAAM,EAAE;IACNC,QAAQ,EAAE,GAAG;IACbC,MAAM,EAAEL,MAAM,CAACM,EAAE,CAACN,MAAM,CAACO,MAAM;EACjC;AACF,CAAC;AAED,OAAO,MAAMC,YAA4B,GAAG;EAC1CN,SAAS,EAAE,QAAQ;EACnBC,MAAM,EAAE;IACNC,QAAQ,EAAE,GAAG;IACbC,MAAM,EAAEL,MAAM,CAACS,KAAK,CAACT,MAAM,CAACU,IAAI;EAClC;AACF,CAAC"}
|
package/lib/module/index.js
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
import * as SceneStyleInterpolator from './TransitionConfigs/SceneStyleInterpolators';
|
|
2
|
+
import * as TransitionPresets from './TransitionConfigs/TransitionPresets';
|
|
3
|
+
import * as TransitionSpecs from './TransitionConfigs/TransitionSpecs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Transition Presets
|
|
7
|
+
*/
|
|
8
|
+
export { SceneStyleInterpolator, TransitionPresets, TransitionSpecs };
|
|
9
|
+
|
|
1
10
|
/**
|
|
2
11
|
* Navigators
|
|
3
12
|
*/
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createBottomTabNavigator","BottomTabBar","BottomTabView","BottomTabBarHeightCallbackContext","BottomTabBarHeightContext","useBottomTabBarHeight"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA;AACA;AACA;AACA,
|
|
1
|
+
{"version":3,"names":["SceneStyleInterpolator","TransitionPresets","TransitionSpecs","createBottomTabNavigator","BottomTabBar","BottomTabView","BottomTabBarHeightCallbackContext","BottomTabBarHeightContext","useBottomTabBarHeight"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,OAAO,KAAKA,sBAAsB,MAAM,6CAA6C;AACrF,OAAO,KAAKC,iBAAiB,MAAM,uCAAuC;AAC1E,OAAO,KAAKC,eAAe,MAAM,qCAAqC;;AAEtE;AACA;AACA;AACA,SAASF,sBAAsB,EAAEC,iBAAiB,EAAEC,eAAe;;AAEnE;AACA;AACA;AACA,SAASC,wBAAwB,QAAQ,uCAAuC;;AAEhF;AACA;AACA;AACA,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,aAAa,QAAQ,uBAAuB;;AAErD;AACA;AACA;AACA,SAASC,iCAAiC,QAAQ,2CAA2C;AAC7F,SAASC,yBAAyB,QAAQ,mCAAmC;AAC7E,SAASC,qBAAqB,QAAQ,+BAA+B;;AAErE;AACA;AACA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Animated } from 'react-native';
|
|
3
|
+
export function useAnimatedHashMap(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
routes,
|
|
6
|
+
index
|
|
7
|
+
} = _ref;
|
|
8
|
+
const refs = React.useRef({});
|
|
9
|
+
const previous = refs.current;
|
|
10
|
+
const routeKeys = Object.keys(previous);
|
|
11
|
+
if (routes.length === routeKeys.length && routes.every(route => routeKeys.includes(route.key))) {
|
|
12
|
+
return previous;
|
|
13
|
+
}
|
|
14
|
+
refs.current = {};
|
|
15
|
+
routes.forEach((_ref2, i) => {
|
|
16
|
+
let {
|
|
17
|
+
key
|
|
18
|
+
} = _ref2;
|
|
19
|
+
refs.current[key] = previous[key] ?? new Animated.Value(i === index ? 0 : i >= index ? 1 : -1);
|
|
20
|
+
});
|
|
21
|
+
return refs.current;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=useAnimatedHashMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Animated","useAnimatedHashMap","routes","index","refs","useRef","previous","current","routeKeys","Object","keys","length","every","route","includes","key","forEach","i","Value"],"sourceRoot":"../../../src","sources":["utils/useAnimatedHashMap.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,QAAQ,cAAc;AAEvC,OAAO,SAASC,kBAAkB,OAAqC;EAAA,IAApC;IAAEC,MAAM;IAAEC;EAAuB,CAAC;EACnE,MAAMC,IAAI,GAAGL,KAAK,CAACM,MAAM,CAAiC,CAAC,CAAC,CAAC;EAC7D,MAAMC,QAAQ,GAAGF,IAAI,CAACG,OAAO;EAC7B,MAAMC,SAAS,GAAGC,MAAM,CAACC,IAAI,CAACJ,QAAQ,CAAC;EAEvC,IACEJ,MAAM,CAACS,MAAM,KAAKH,SAAS,CAACG,MAAM,IAClCT,MAAM,CAACU,KAAK,CAAEC,KAAK,IAAKL,SAAS,CAACM,QAAQ,CAACD,KAAK,CAACE,GAAG,CAAC,CAAC,EACtD;IACA,OAAOT,QAAQ;EACjB;EACAF,IAAI,CAACG,OAAO,GAAG,CAAC,CAAC;EAEjBL,MAAM,CAACc,OAAO,CAAC,QAAUC,CAAC,KAAK;IAAA,IAAf;MAAEF;IAAI,CAAC;IACrBX,IAAI,CAACG,OAAO,CAACQ,GAAG,CAAC,GACfT,QAAQ,CAACS,GAAG,CAAC,IACb,IAAIf,QAAQ,CAACkB,KAAK,CAACD,CAAC,KAAKd,KAAK,GAAG,CAAC,GAAGc,CAAC,IAAId,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;EAC7D,CAAC,CAAC;EAEF,OAAOC,IAAI,CAACG,OAAO;AACrB"}
|