@amazon-devices/react-navigation__react-native-tab-view 7.0.1759135970 → 8.0.9000000000
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -646
- package/SystemBundles/6f915df16edbc21a601928d99e844a99397b9428146027dcf0d86b2a798f21f4.bundle +8563 -0
- package/SystemBundles/6f915df16edbc21a601928d99e844a99397b9428146027dcf0d86b2a798f21f4.map +3217 -0
- package/SystemModules/amzn__react-navigation__react-native-tab-view-8.modules.txt +12 -0
- package/SystemModules/amzn__react-navigation__react-native-tab-view-8.private.modules.txt +63 -0
- package/SystemModules/keplerscript-system-bundle-config.json +4 -4
- package/kepler-compatibility.json +2 -2
- package/lib/module/Pager.android.js +3 -1
- package/lib/module/Pager.android.js.map +1 -1
- package/lib/module/Pager.ios.js +3 -1
- package/lib/module/Pager.ios.js.map +1 -1
- package/lib/module/Pager.js +3 -1
- package/lib/module/Pager.js.map +1 -1
- package/lib/module/PagerViewAdapter.js +29 -22
- package/lib/module/PagerViewAdapter.js.map +1 -1
- package/lib/module/PanResponderAdapter.js +46 -32
- package/lib/module/PanResponderAdapter.js.map +1 -1
- package/lib/module/PlatformPressable.js +38 -12
- package/lib/module/PlatformPressable.js.map +1 -1
- package/lib/module/SceneMap.js +7 -4
- package/lib/module/SceneMap.js.map +1 -1
- package/lib/module/SceneView.js +16 -14
- package/lib/module/SceneView.js.map +1 -1
- package/lib/module/TabBar.js +232 -156
- package/lib/module/TabBar.js.map +1 -1
- package/lib/module/TabBarIndicator.js +47 -26
- package/lib/module/TabBarIndicator.js.map +1 -1
- package/lib/module/TabBarItem.js +106 -107
- package/lib/module/TabBarItem.js.map +1 -1
- package/lib/module/TabBarItemLabel.js +33 -0
- package/lib/module/TabBarItemLabel.js.map +1 -0
- package/lib/module/TabView.js +91 -63
- package/lib/module/TabView.js.map +1 -1
- package/lib/module/index.js +7 -5
- package/lib/module/index.js.map +1 -1
- package/lib/module/package.json +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -1
- package/lib/module/useAnimatedValue.js +4 -2
- package/lib/module/useAnimatedValue.js.map +1 -1
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/Pager.android.d.ts +1 -1
- package/lib/typescript/src/Pager.android.d.ts.map +1 -1
- package/lib/typescript/src/Pager.d.ts +1 -1
- package/lib/typescript/src/Pager.d.ts.map +1 -1
- package/lib/typescript/src/Pager.ios.d.ts +1 -1
- package/lib/typescript/src/Pager.ios.d.ts.map +1 -1
- package/lib/typescript/src/PagerViewAdapter.d.ts +4 -1
- package/lib/typescript/src/PagerViewAdapter.d.ts.map +1 -1
- package/lib/typescript/src/PanResponderAdapter.d.ts +4 -1
- package/lib/typescript/src/PanResponderAdapter.d.ts.map +1 -1
- package/lib/typescript/src/PlatformPressable.d.ts +6 -8
- package/lib/typescript/src/PlatformPressable.d.ts.map +1 -1
- package/lib/typescript/src/SceneMap.d.ts +2 -2
- package/lib/typescript/src/SceneMap.d.ts.map +1 -1
- package/lib/typescript/src/SceneView.d.ts +2 -2
- package/lib/typescript/src/SceneView.d.ts.map +1 -1
- package/lib/typescript/src/TabBar.d.ts +7 -19
- package/lib/typescript/src/TabBar.d.ts.map +1 -1
- package/lib/typescript/src/TabBarIndicator.d.ts +8 -6
- package/lib/typescript/src/TabBarIndicator.d.ts.map +1 -1
- package/lib/typescript/src/TabBarItem.d.ts +4 -22
- package/lib/typescript/src/TabBarItem.d.ts.map +1 -1
- package/lib/typescript/src/TabBarItemLabel.d.ts +11 -0
- package/lib/typescript/src/TabBarItemLabel.d.ts.map +1 -0
- package/lib/typescript/src/TabView.d.ts +14 -8
- package/lib/typescript/src/TabView.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +6 -6
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +29 -1
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/useAnimatedValue.d.ts +1 -1
- package/lib/typescript/src/useAnimatedValue.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/Pager.android.tsx +1 -1
- package/src/Pager.ios.tsx +1 -1
- package/src/Pager.tsx +1 -1
- package/src/PagerViewAdapter.tsx +26 -21
- package/src/PanResponderAdapter.tsx +32 -28
- package/src/PlatformPressable.tsx +59 -10
- package/src/SceneMap.tsx +3 -3
- package/src/SceneView.tsx +6 -7
- package/src/TabBar.tsx +282 -193
- package/src/TabBarIndicator.tsx +65 -28
- package/src/TabBarItem.tsx +119 -130
- package/src/TabBarItemLabel.tsx +42 -0
- package/src/TabView.tsx +59 -16
- package/src/index.tsx +11 -6
- package/src/types.tsx +29 -1
- package/src/useAnimatedValue.tsx +2 -2
- package/SystemBundles/0c296a88d0023a3995e190db70259767d1ef39c9da6cd47f3d76cd128687f1f6.bundle +0 -14497
- package/SystemBundles/0c296a88d0023a3995e190db70259767d1ef39c9da6cd47f3d76cd128687f1f6.map +0 -1
- package/SystemModules/amzn__react-navigation__react-native-tab-view-7.modules.txt +0 -41
- package/SystemModules/amzn__react-navigation__react-native-tab-view-7.private.modules.txt +0 -98
- package/THIRD_PARTY_NOTICES.txt +0 -24
- package/lib/commonjs/Pager.android.js +0 -14
- package/lib/commonjs/Pager.android.js.map +0 -1
- package/lib/commonjs/Pager.ios.js +0 -14
- package/lib/commonjs/Pager.ios.js.map +0 -1
- package/lib/commonjs/Pager.js +0 -14
- package/lib/commonjs/Pager.js.map +0 -1
- package/lib/commonjs/PagerViewAdapter.js +0 -132
- package/lib/commonjs/PagerViewAdapter.js.map +0 -1
- package/lib/commonjs/PanResponderAdapter.js +0 -204
- package/lib/commonjs/PanResponderAdapter.js.map +0 -1
- package/lib/commonjs/PlatformPressable.js +0 -43
- package/lib/commonjs/PlatformPressable.js.map +0 -1
- package/lib/commonjs/SceneMap.js +0 -29
- package/lib/commonjs/SceneMap.js.map +0 -1
- package/lib/commonjs/SceneView.js +0 -78
- package/lib/commonjs/SceneView.js.map +0 -1
- package/lib/commonjs/TabBar.js +0 -405
- package/lib/commonjs/TabBar.js.map +0 -1
- package/lib/commonjs/TabBarIndicator.js +0 -110
- package/lib/commonjs/TabBarIndicator.js.map +0 -1
- package/lib/commonjs/TabBarItem.js +0 -227
- package/lib/commonjs/TabBarItem.js.map +0 -1
- package/lib/commonjs/TabView.js +0 -122
- package/lib/commonjs/TabView.js.map +0 -1
- package/lib/commonjs/index.js +0 -42
- package/lib/commonjs/index.js.map +0 -1
- package/lib/commonjs/types.js +0 -6
- package/lib/commonjs/types.js.map +0 -1
- package/lib/commonjs/useAnimatedValue.js +0 -18
- package/lib/commonjs/useAnimatedValue.js.map +0 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
node_modules/@amzn/react-navigation__react-native-tab-view_8/lib/module/index.js:89245db4cf585eb3767a
|
|
2
|
+
node_modules/@amzn/react-navigation__react-native-tab-view_8/lib/module/SceneMap.js:a2166d11aa34a1e02321
|
|
3
|
+
node_modules/@amzn/react-navigation__react-native-tab-view_8/lib/module/TabBar.js:3377732d36f782e0ad4d
|
|
4
|
+
node_modules/@amzn/react-navigation__react-native-tab-view_8/lib/module/TabBarIndicator.js:f6f6ece65dc6e63713f2
|
|
5
|
+
node_modules/@amzn/react-navigation__react-native-tab-view_8/lib/module/useAnimatedValue.js:731c8ed34f30deac6a84
|
|
6
|
+
node_modules/@amzn/react-navigation__react-native-tab-view_8/lib/module/TabBarItem.js:255be1c14f3a6e37616a
|
|
7
|
+
node_modules/@amzn/react-navigation__react-native-tab-view_8/lib/module/TabBarItemLabel.js:49efff905d7d0f26bf37
|
|
8
|
+
node_modules/@amzn/react-navigation__react-native-tab-view_8/lib/module/PlatformPressable.js:5f49e5869c2c436430ac
|
|
9
|
+
node_modules/@amzn/react-navigation__react-native-tab-view_8/lib/module/TabView.js:ea3d74e5832d0fbe7b0a
|
|
10
|
+
node_modules/@amzn/react-navigation__react-native-tab-view_8/lib/module/Pager.js:d985a3d13270a2b69155
|
|
11
|
+
node_modules/@amzn/react-navigation__react-native-tab-view_8/lib/module/PanResponderAdapter.js:7dc6457c30058f1065a0
|
|
12
|
+
node_modules/@amzn/react-navigation__react-native-tab-view_8/lib/module/SceneView.js:7fccbe873d063ee93b54
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
node_modules/@babel/runtime_7.28.6/helpers/interopRequireDefault.js:1658e9d806cecc7d513f
|
|
2
|
+
node_modules/@babel/runtime_7.28.6/helpers/objectWithoutProperties.js:c4820e134611e601fe3c
|
|
3
|
+
node_modules/@babel/runtime_7.28.6/helpers/objectWithoutPropertiesLoose.js:2819355eb1660a78a270
|
|
4
|
+
node_modules/@babel/runtime_7.28.6/helpers/slicedToArray.js:b5c3a0dfb06038f36d1a
|
|
5
|
+
node_modules/@babel/runtime_7.28.6/helpers/arrayWithHoles.js:3e4d5f17df2fc26aca06
|
|
6
|
+
node_modules/@babel/runtime_7.28.6/helpers/iterableToArrayLimit.js:7c9be9833a5bd1bcfc84
|
|
7
|
+
node_modules/@babel/runtime_7.28.6/helpers/unsupportedIterableToArray.js:41618dd1a0cab1d4d4b6
|
|
8
|
+
node_modules/@babel/runtime_7.28.6/helpers/arrayLikeToArray.js:b23f086000fa770c51b1
|
|
9
|
+
node_modules/@babel/runtime_7.28.6/helpers/nonIterableRest.js:7fc60d42dbf0dbb04c4b
|
|
10
|
+
node_modules/@babel/runtime_7.28.6/helpers/classCallCheck.js:058f50a76315fc88ad5c
|
|
11
|
+
node_modules/@babel/runtime_7.28.6/helpers/createClass.js:0d1487bbdd0385fe6673
|
|
12
|
+
node_modules/@babel/runtime_7.28.6/helpers/toPropertyKey.js:48405da1a82590964a03
|
|
13
|
+
node_modules/@babel/runtime_7.28.6/helpers/toPrimitive.js:0f8abf3c8b18480a6d47
|
|
14
|
+
node_modules/@babel/runtime_7.28.6/helpers/typeof.js:13ae0d75f4934933ecaf
|
|
15
|
+
node_modules/@babel/runtime_7.28.6/helpers/possibleConstructorReturn.js:4aa94a74d7bb7221b923
|
|
16
|
+
node_modules/@babel/runtime_7.28.6/helpers/assertThisInitialized.js:25fb38428dda46d6800f
|
|
17
|
+
node_modules/@babel/runtime_7.28.6/helpers/getPrototypeOf.js:d2ca1962320a7fc595a6
|
|
18
|
+
node_modules/@babel/runtime_7.28.6/helpers/get.js:d8dcd13dae0a344bbc4a
|
|
19
|
+
node_modules/@babel/runtime_7.28.6/helpers/superPropBase.js:1f15365ae02704dfefe4
|
|
20
|
+
node_modules/@babel/runtime_7.28.6/helpers/inherits.js:c3969dfc5dcf704d89df
|
|
21
|
+
node_modules/@babel/runtime_7.28.6/helpers/setPrototypeOf.js:8b411d7eeb55832922af
|
|
22
|
+
node_modules/@babel/runtime_7.28.6/helpers/classPrivateFieldLooseBase.js:84b970236b4776e847c4
|
|
23
|
+
node_modules/@babel/runtime_7.28.6/helpers/classPrivateFieldLooseKey.js:c408e8c609dabd10913e
|
|
24
|
+
node_modules/invariant_2.2.4/browser.js:fd099686726b2dfb6f66
|
|
25
|
+
node_modules/@react-native/normalize-colors_0.83.0/index.js:e8e087936fed8afe0814
|
|
26
|
+
node_modules/nullthrows_1.1.1/nullthrows.js:afd4874b36ccd4e13961
|
|
27
|
+
node_modules/@react-native/assets-registry_0.83.0/registry.js:5ff9e23a9ba5a1a1e0ac
|
|
28
|
+
node_modules/@react-native/assets-registry_0.83.0/path-support.js:fb4eb45d6b2fc494317c
|
|
29
|
+
node_modules/@babel/runtime_7.28.6/helpers/wrapNativeSuper.js:583997f8f86d03f2b30d
|
|
30
|
+
node_modules/@babel/runtime_7.28.6/helpers/isNativeFunction.js:251a25cb216e38430b20
|
|
31
|
+
node_modules/@babel/runtime_7.28.6/helpers/construct.js:594614f416b5f1160b89
|
|
32
|
+
node_modules/@babel/runtime_7.28.6/helpers/isNativeReflectConstruct.js:f3459bbdfb4afe15ce21
|
|
33
|
+
node_modules/promise_8.3.0/setimmediate/es6-extensions.js:a7846fdeffeb1ebf6241
|
|
34
|
+
node_modules/promise_8.3.0/setimmediate/core.js:890f60fa94d3f6854a19
|
|
35
|
+
node_modules/promise_8.3.0/setimmediate/finally.js:15bc4ccb25fc2d0c4428
|
|
36
|
+
node_modules/stacktrace-parser_0.1.11/dist/stack-trace-parser.cjs.js:aa725aa4c0b37e1add33
|
|
37
|
+
node_modules/regenerator-runtime_0.13.11/runtime.js:af823d9710c534173a4d
|
|
38
|
+
node_modules/base64-js_1.5.1/index.js:71af70f51435e3e1b37b
|
|
39
|
+
node_modules/whatwg-fetch_3.6.20/dist/fetch.umd.js:ca4b0363146267ef3e77
|
|
40
|
+
node_modules/abort-controller_3.0.0/dist/abort-controller.js:ea8fcbd647aab1cfcdaa
|
|
41
|
+
node_modules/event-target-shim_5.0.1/dist/event-target-shim.js:2bd3f165b1ed6b916de7
|
|
42
|
+
node_modules/scheduler_0.27.0/index.native.js:ec9ec59f48073ee6e9f5
|
|
43
|
+
node_modules/scheduler_0.27.0/cjs/scheduler.native.production.js:d8f1930d0c79328207a3
|
|
44
|
+
node_modules/@babel/runtime_7.28.6/helpers/readOnlyError.js:09c040dc0dcec28a54ae
|
|
45
|
+
node_modules/@react-native/virtualized-lists_0.83.0/index.js:a7726730afdc356adbe4
|
|
46
|
+
node_modules/@react-native/virtualized-lists_0.83.0/Lists/VirtualizeUtils.js:d0ff6d3d1f2c9580ab13
|
|
47
|
+
node_modules/@react-native/virtualized-lists_0.83.0/Lists/VirtualizedList.js:8d139349672eea405ffb
|
|
48
|
+
node_modules/@react-native/virtualized-lists_0.83.0/Utilities/clamp.js:a78a6606e498a2fdbf2d
|
|
49
|
+
node_modules/@react-native/virtualized-lists_0.83.0/Utilities/infoLog.js:017b2813127d2e7f4d70
|
|
50
|
+
node_modules/@react-native/virtualized-lists_0.83.0/Lists/ChildListCollection.js:9c3630060e6e634bfb8b
|
|
51
|
+
node_modules/@react-native/virtualized-lists_0.83.0/Lists/FillRateHelper.js:c1e83141f045b25e26fc
|
|
52
|
+
node_modules/@react-native/virtualized-lists_0.83.0/Lists/ListMetricsAggregator.js:480fcd792bed2eb457f3
|
|
53
|
+
node_modules/@react-native/virtualized-lists_0.83.0/Lists/StateSafePureComponent.js:fd4823cbe6aa108a7d62
|
|
54
|
+
node_modules/@react-native/virtualized-lists_0.83.0/Lists/ViewabilityHelper.js:a44a41089be71f9f7b1e
|
|
55
|
+
node_modules/@react-native/virtualized-lists_0.83.0/Lists/VirtualizedListCellRenderer.js:8aa7cf31c704a4a85db2
|
|
56
|
+
node_modules/@react-native/virtualized-lists_0.83.0/Lists/VirtualizedListContext.js:4b89f56515b0628d3446
|
|
57
|
+
node_modules/@react-native/virtualized-lists_0.83.0/Lists/VirtualizedListProps.js:516cf3cf4ecb4e256407
|
|
58
|
+
node_modules/@react-native/virtualized-lists_0.83.0/Lists/CellRenderMask.js:95aa36c0870d6d5cfdb1
|
|
59
|
+
node_modules/@react-native/virtualized-lists_0.83.0/Lists/VirtualizedSectionList.js:cb8631f113fda0d4a92c
|
|
60
|
+
node_modules/memoize-one_5.2.1/dist/memoize-one.cjs.js:d381691ed29bec5a2050
|
|
61
|
+
node_modules/@babel/runtime_7.28.6/helpers/asyncToGenerator.js:949e187ecf57bddc8118
|
|
62
|
+
node_modules/use-latest-callback_0.2.6/esm.mjs:62095b319443680fd483
|
|
63
|
+
node_modules/use-latest-callback_0.2.6/lib/src/index.js:7beabb432668b871cb05
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"@amzn/react-navigation__react-native-tab-view": {
|
|
3
|
-
"nameOnDevice": "index.amzn__react-navigation__react-native-tab-view-
|
|
4
|
-
"modulesPath": "amzn__react-navigation__react-native-tab-view-
|
|
5
|
-
"privateModulesPath": "amzn__react-navigation__react-native-tab-view-
|
|
3
|
+
"nameOnDevice": "index.amzn__react-navigation__react-native-tab-view-8.hermes.bundle",
|
|
4
|
+
"modulesPath": "amzn__react-navigation__react-native-tab-view-8.modules.txt",
|
|
5
|
+
"privateModulesPath": "amzn__react-navigation__react-native-tab-view-8.private.modules.txt"
|
|
6
6
|
}
|
|
7
|
-
}
|
|
7
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"versions": {
|
|
3
|
-
"
|
|
4
|
-
"
|
|
3
|
+
"8.0.0": "/com.amazon.kepler.navigation__tab_view_8@INavigation__TabView_0",
|
|
4
|
+
"8.0.9000000000": "/com.amazon.kepler.navigation__tab_view_8@INavigation__TabView_0"
|
|
5
5
|
}
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["PagerViewAdapter","Pager"],"sourceRoot":"../../src","sources":["Pager.android.tsx"],"mappings":";;AAAA,SAASA,gBAAgB,IAAIC,KAAK,QAAQ,uBAAoB","ignoreList":[]}
|
package/lib/module/Pager.ios.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["PagerViewAdapter","Pager"],"sourceRoot":"../../src","sources":["Pager.ios.tsx"],"mappings":";;AAAA,SAASA,gBAAgB,IAAIC,KAAK,QAAQ,uBAAoB","ignoreList":[]}
|
package/lib/module/Pager.js
CHANGED
package/lib/module/Pager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["PanResponderAdapter","Pager"],"sourceRoot":"../../src","sources":["Pager.tsx"],"mappings":";;AAAA,SAASA,mBAAmB,IAAIC,KAAK,QAAQ,0BAAuB","ignoreList":[]}
|
|
@@ -1,14 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
2
3
|
import * as React from 'react';
|
|
3
|
-
import { Animated, Keyboard, StyleSheet } from 'react-native';
|
|
4
|
+
import { Animated, Keyboard, Platform, StyleSheet } from 'react-native';
|
|
4
5
|
import ViewPager from 'react-native-pager-view';
|
|
5
|
-
import
|
|
6
|
+
import useLatestCallback from 'use-latest-callback';
|
|
7
|
+
import { useAnimatedValue } from "./useAnimatedValue.js";
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
9
|
const AnimatedViewPager = Animated.createAnimatedComponent(ViewPager);
|
|
7
|
-
|
|
10
|
+
const useNativeDriver = Platform.OS !== 'web';
|
|
11
|
+
export function PagerViewAdapter({
|
|
8
12
|
keyboardDismissMode = 'auto',
|
|
9
13
|
swipeEnabled = true,
|
|
10
14
|
navigationState,
|
|
11
15
|
onIndexChange,
|
|
16
|
+
onTabSelect,
|
|
12
17
|
onSwipeStart,
|
|
13
18
|
onSwipeEnd,
|
|
14
19
|
children,
|
|
@@ -28,28 +33,25 @@ export default function PagerViewAdapter({
|
|
|
28
33
|
React.useEffect(() => {
|
|
29
34
|
navigationStateRef.current = navigationState;
|
|
30
35
|
});
|
|
31
|
-
const jumpTo =
|
|
36
|
+
const jumpTo = useLatestCallback(key => {
|
|
32
37
|
const index = navigationStateRef.current.routes.findIndex(route => route.key === key);
|
|
33
38
|
if (animationEnabled) {
|
|
34
|
-
|
|
35
|
-
(_pagerRef$current = pagerRef.current) === null || _pagerRef$current === void 0 || _pagerRef$current.setPage(index);
|
|
39
|
+
pagerRef.current?.setPage(index);
|
|
36
40
|
} else {
|
|
37
|
-
|
|
38
|
-
(_pagerRef$current2 = pagerRef.current) === null || _pagerRef$current2 === void 0 || _pagerRef$current2.setPageWithoutAnimation(index);
|
|
41
|
+
pagerRef.current?.setPageWithoutAnimation(index);
|
|
39
42
|
position.setValue(index);
|
|
40
43
|
}
|
|
41
|
-
|
|
44
|
+
onIndexChange(index);
|
|
45
|
+
});
|
|
42
46
|
React.useEffect(() => {
|
|
43
47
|
if (keyboardDismissMode === 'auto') {
|
|
44
48
|
Keyboard.dismiss();
|
|
45
49
|
}
|
|
46
50
|
if (indexRef.current !== index) {
|
|
47
51
|
if (animationEnabled) {
|
|
48
|
-
|
|
49
|
-
(_pagerRef$current3 = pagerRef.current) === null || _pagerRef$current3 === void 0 || _pagerRef$current3.setPage(index);
|
|
52
|
+
pagerRef.current?.setPage(index);
|
|
50
53
|
} else {
|
|
51
|
-
|
|
52
|
-
(_pagerRef$current4 = pagerRef.current) === null || _pagerRef$current4 === void 0 || _pagerRef$current4.setPageWithoutAnimation(index);
|
|
54
|
+
pagerRef.current?.setPageWithoutAnimation(index);
|
|
53
55
|
position.setValue(index);
|
|
54
56
|
}
|
|
55
57
|
}
|
|
@@ -60,7 +62,7 @@ export default function PagerViewAdapter({
|
|
|
60
62
|
} = state.nativeEvent;
|
|
61
63
|
switch (pageScrollState) {
|
|
62
64
|
case 'idle':
|
|
63
|
-
onSwipeEnd
|
|
65
|
+
onSwipeEnd?.();
|
|
64
66
|
return;
|
|
65
67
|
case 'dragging':
|
|
66
68
|
{
|
|
@@ -73,12 +75,12 @@ export default function PagerViewAdapter({
|
|
|
73
75
|
}
|
|
74
76
|
offset.removeListener(subscription);
|
|
75
77
|
});
|
|
76
|
-
onSwipeStart
|
|
78
|
+
onSwipeStart?.();
|
|
77
79
|
return;
|
|
78
80
|
}
|
|
79
81
|
}
|
|
80
82
|
};
|
|
81
|
-
const addEnterListener =
|
|
83
|
+
const addEnterListener = useLatestCallback(listener => {
|
|
82
84
|
listenersRef.current.push(listener);
|
|
83
85
|
return () => {
|
|
84
86
|
const index = listenersRef.current.indexOf(listener);
|
|
@@ -86,13 +88,14 @@ export default function PagerViewAdapter({
|
|
|
86
88
|
listenersRef.current.splice(index, 1);
|
|
87
89
|
}
|
|
88
90
|
};
|
|
89
|
-
}
|
|
91
|
+
});
|
|
90
92
|
const memoizedPosition = React.useMemo(() => Animated.add(position, offset), [offset, position]);
|
|
91
93
|
return children({
|
|
92
94
|
position: memoizedPosition,
|
|
93
95
|
addEnterListener,
|
|
94
96
|
jumpTo,
|
|
95
|
-
render: children => /*#__PURE__*/
|
|
97
|
+
render: children => /*#__PURE__*/_jsx(AnimatedViewPager, {
|
|
98
|
+
...rest,
|
|
96
99
|
ref: pagerRef,
|
|
97
100
|
style: [styles.container, style],
|
|
98
101
|
initialPage: index,
|
|
@@ -103,16 +106,20 @@ export default function PagerViewAdapter({
|
|
|
103
106
|
offset: offset
|
|
104
107
|
}
|
|
105
108
|
}], {
|
|
106
|
-
useNativeDriver
|
|
109
|
+
useNativeDriver
|
|
107
110
|
}),
|
|
108
111
|
onPageSelected: e => {
|
|
109
112
|
const index = e.nativeEvent.position;
|
|
110
113
|
indexRef.current = index;
|
|
111
114
|
onIndexChange(index);
|
|
115
|
+
onTabSelect?.({
|
|
116
|
+
index
|
|
117
|
+
});
|
|
112
118
|
},
|
|
113
119
|
onPageScrollStateChanged: onPageScrollStateChanged,
|
|
114
|
-
scrollEnabled: swipeEnabled
|
|
115
|
-
|
|
120
|
+
scrollEnabled: swipeEnabled,
|
|
121
|
+
children: children
|
|
122
|
+
})
|
|
116
123
|
});
|
|
117
124
|
}
|
|
118
125
|
const styles = StyleSheet.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Animated","Keyboard","StyleSheet","ViewPager","useAnimatedValue","AnimatedViewPager","createAnimatedComponent","PagerViewAdapter","keyboardDismissMode","swipeEnabled","navigationState","onIndexChange","onSwipeStart","onSwipeEnd","children","style","animationEnabled","rest","index","listenersRef","useRef","pagerRef","indexRef","navigationStateRef","position","offset","useEffect","current","jumpTo","
|
|
1
|
+
{"version":3,"names":["React","Animated","Keyboard","Platform","StyleSheet","ViewPager","useLatestCallback","useAnimatedValue","jsx","_jsx","AnimatedViewPager","createAnimatedComponent","useNativeDriver","OS","PagerViewAdapter","keyboardDismissMode","swipeEnabled","navigationState","onIndexChange","onTabSelect","onSwipeStart","onSwipeEnd","children","style","animationEnabled","rest","index","listenersRef","useRef","pagerRef","indexRef","navigationStateRef","position","offset","useEffect","current","jumpTo","key","routes","findIndex","route","setPage","setPageWithoutAnimation","setValue","dismiss","onPageScrollStateChanged","state","pageScrollState","nativeEvent","subscription","addListener","value","next","Math","ceil","floor","forEach","listener","removeListener","addEnterListener","push","indexOf","splice","memoizedPosition","useMemo","add","render","ref","styles","container","initialPage","onPageScroll","event","onPageSelected","e","scrollEnabled","create","flex"],"sourceRoot":"../../src","sources":["PagerViewAdapter.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
2
3
|
import * as React from 'react';
|
|
3
|
-
import { Animated,
|
|
4
|
-
import
|
|
4
|
+
import { Animated, Keyboard, PanResponder, StyleSheet, View } from 'react-native';
|
|
5
|
+
import useLatestCallback from 'use-latest-callback';
|
|
6
|
+
import { useAnimatedValue } from "./useAnimatedValue.js";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
8
|
const DEAD_ZONE = 12;
|
|
6
9
|
const DefaultTransitionSpec = {
|
|
7
10
|
timing: Animated.spring,
|
|
@@ -10,17 +13,19 @@ const DefaultTransitionSpec = {
|
|
|
10
13
|
mass: 3,
|
|
11
14
|
overshootClamping: true
|
|
12
15
|
};
|
|
13
|
-
export
|
|
16
|
+
export function PanResponderAdapter({
|
|
14
17
|
layout,
|
|
15
18
|
keyboardDismissMode = 'auto',
|
|
16
19
|
swipeEnabled = true,
|
|
17
20
|
navigationState,
|
|
18
21
|
onIndexChange,
|
|
22
|
+
onTabSelect,
|
|
19
23
|
onSwipeStart,
|
|
20
24
|
onSwipeEnd,
|
|
21
25
|
children,
|
|
22
26
|
style,
|
|
23
|
-
animationEnabled = false
|
|
27
|
+
animationEnabled = false,
|
|
28
|
+
layoutDirection = 'ltr'
|
|
24
29
|
}) {
|
|
25
30
|
const {
|
|
26
31
|
routes,
|
|
@@ -31,11 +36,12 @@ export default function PanResponderAdapter({
|
|
|
31
36
|
const navigationStateRef = React.useRef(navigationState);
|
|
32
37
|
const layoutRef = React.useRef(layout);
|
|
33
38
|
const onIndexChangeRef = React.useRef(onIndexChange);
|
|
39
|
+
const onTabSelectRef = React.useRef(onTabSelect);
|
|
34
40
|
const currentIndexRef = React.useRef(index);
|
|
35
|
-
const pendingIndexRef = React.useRef();
|
|
41
|
+
const pendingIndexRef = React.useRef(undefined);
|
|
36
42
|
const swipeVelocityThreshold = 0.15;
|
|
37
43
|
const swipeDistanceThreshold = layout.width / 1.75;
|
|
38
|
-
const jumpToIndex =
|
|
44
|
+
const jumpToIndex = useLatestCallback((index, animate = animationEnabled) => {
|
|
39
45
|
const offset = -index * layoutRef.current.width;
|
|
40
46
|
const {
|
|
41
47
|
timing,
|
|
@@ -51,6 +57,9 @@ export default function PanResponderAdapter({
|
|
|
51
57
|
}) => {
|
|
52
58
|
if (finished) {
|
|
53
59
|
onIndexChangeRef.current(index);
|
|
60
|
+
onTabSelectRef.current?.({
|
|
61
|
+
index
|
|
62
|
+
});
|
|
54
63
|
pendingIndexRef.current = undefined;
|
|
55
64
|
}
|
|
56
65
|
});
|
|
@@ -58,13 +67,17 @@ export default function PanResponderAdapter({
|
|
|
58
67
|
} else {
|
|
59
68
|
panX.setValue(offset);
|
|
60
69
|
onIndexChangeRef.current(index);
|
|
70
|
+
onTabSelectRef.current?.({
|
|
71
|
+
index
|
|
72
|
+
});
|
|
61
73
|
pendingIndexRef.current = undefined;
|
|
62
74
|
}
|
|
63
|
-
}
|
|
75
|
+
});
|
|
64
76
|
React.useEffect(() => {
|
|
65
77
|
navigationStateRef.current = navigationState;
|
|
66
78
|
layoutRef.current = layout;
|
|
67
79
|
onIndexChangeRef.current = onIndexChange;
|
|
80
|
+
onTabSelectRef.current = onTabSelect;
|
|
68
81
|
});
|
|
69
82
|
React.useEffect(() => {
|
|
70
83
|
const offset = -navigationStateRef.current.index * layout.width;
|
|
@@ -86,11 +99,11 @@ export default function PanResponderAdapter({
|
|
|
86
99
|
if (swipeEnabled === false) {
|
|
87
100
|
return false;
|
|
88
101
|
}
|
|
89
|
-
const diffX =
|
|
102
|
+
const diffX = layoutDirection === 'rtl' ? -gestureState.dx : gestureState.dx;
|
|
90
103
|
return isMovingHorizontally(event, gestureState) && (diffX >= DEAD_ZONE && currentIndexRef.current > 0 || diffX <= -DEAD_ZONE && currentIndexRef.current < routes.length - 1);
|
|
91
104
|
};
|
|
92
105
|
const startGesture = () => {
|
|
93
|
-
onSwipeStart
|
|
106
|
+
onSwipeStart?.();
|
|
94
107
|
if (keyboardDismissMode === 'on-drag') {
|
|
95
108
|
Keyboard.dismiss();
|
|
96
109
|
}
|
|
@@ -99,7 +112,7 @@ export default function PanResponderAdapter({
|
|
|
99
112
|
panX.setOffset(panX._value);
|
|
100
113
|
};
|
|
101
114
|
const respondToGesture = (_, gestureState) => {
|
|
102
|
-
const diffX =
|
|
115
|
+
const diffX = layoutDirection === 'rtl' ? -gestureState.dx : gestureState.dx;
|
|
103
116
|
if (
|
|
104
117
|
// swiping left
|
|
105
118
|
diffX > 0 && index <= 0 ||
|
|
@@ -119,11 +132,11 @@ export default function PanResponderAdapter({
|
|
|
119
132
|
};
|
|
120
133
|
const finishGesture = (_, gestureState) => {
|
|
121
134
|
panX.flattenOffset();
|
|
122
|
-
onSwipeEnd
|
|
135
|
+
onSwipeEnd?.();
|
|
123
136
|
const currentIndex = typeof pendingIndexRef.current === 'number' ? pendingIndexRef.current : currentIndexRef.current;
|
|
124
137
|
let nextIndex = currentIndex;
|
|
125
138
|
if (Math.abs(gestureState.dx) > Math.abs(gestureState.dy) && Math.abs(gestureState.vx) > Math.abs(gestureState.vy) && (Math.abs(gestureState.dx) > swipeDistanceThreshold || Math.abs(gestureState.vx) > swipeVelocityThreshold)) {
|
|
126
|
-
nextIndex = Math.round(Math.min(Math.max(0,
|
|
139
|
+
nextIndex = Math.round(Math.min(Math.max(0, layoutDirection === 'rtl' ? currentIndex + gestureState.dx / Math.abs(gestureState.dx) : currentIndex - gestureState.dx / Math.abs(gestureState.dx)), routes.length - 1));
|
|
127
140
|
currentIndexRef.current = nextIndex;
|
|
128
141
|
}
|
|
129
142
|
if (!isFinite(nextIndex)) {
|
|
@@ -131,9 +144,7 @@ export default function PanResponderAdapter({
|
|
|
131
144
|
}
|
|
132
145
|
jumpToIndex(nextIndex, true);
|
|
133
146
|
};
|
|
134
|
-
|
|
135
|
-
// TODO: use the listeners
|
|
136
|
-
const addEnterListener = React.useCallback(listener => {
|
|
147
|
+
const addEnterListener = useLatestCallback(listener => {
|
|
137
148
|
listenersRef.current.push(listener);
|
|
138
149
|
return () => {
|
|
139
150
|
const index = listenersRef.current.indexOf(listener);
|
|
@@ -141,11 +152,12 @@ export default function PanResponderAdapter({
|
|
|
141
152
|
listenersRef.current.splice(index, 1);
|
|
142
153
|
}
|
|
143
154
|
};
|
|
144
|
-
}
|
|
145
|
-
const jumpTo =
|
|
155
|
+
});
|
|
156
|
+
const jumpTo = useLatestCallback(key => {
|
|
146
157
|
const index = navigationStateRef.current.routes.findIndex(route => route.key === key);
|
|
147
158
|
jumpToIndex(index);
|
|
148
|
-
|
|
159
|
+
onIndexChange(index);
|
|
160
|
+
});
|
|
149
161
|
const panResponder = PanResponder.create({
|
|
150
162
|
onMoveShouldSetPanResponder: canMoveScreen,
|
|
151
163
|
onMoveShouldSetPanResponderCapture: canMoveScreen,
|
|
@@ -160,29 +172,31 @@ export default function PanResponderAdapter({
|
|
|
160
172
|
inputRange: [-maxTranslate, 0],
|
|
161
173
|
outputRange: [-maxTranslate, 0],
|
|
162
174
|
extrapolate: 'clamp'
|
|
163
|
-
}),
|
|
175
|
+
}), layoutDirection === 'rtl' ? -1 : 1);
|
|
164
176
|
const position = React.useMemo(() => layout.width ? Animated.divide(panX, -layout.width) : null, [layout.width, panX]);
|
|
165
177
|
return children({
|
|
166
178
|
position: position ?? new Animated.Value(index),
|
|
167
179
|
addEnterListener,
|
|
168
180
|
jumpTo,
|
|
169
|
-
render: children => /*#__PURE__*/
|
|
181
|
+
render: children => /*#__PURE__*/_jsx(Animated.View, {
|
|
170
182
|
style: [styles.sheet, layout.width ? {
|
|
171
183
|
width: routes.length * layout.width,
|
|
172
184
|
transform: [{
|
|
173
185
|
translateX
|
|
174
186
|
}]
|
|
175
|
-
} : null, style]
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
187
|
+
} : null, style],
|
|
188
|
+
...panResponder.panHandlers,
|
|
189
|
+
children: React.Children.map(children, (child, i) => {
|
|
190
|
+
const route = routes[i];
|
|
191
|
+
const focused = i === index;
|
|
192
|
+
return /*#__PURE__*/_jsx(View, {
|
|
193
|
+
style: layout.width ? {
|
|
194
|
+
width: layout.width
|
|
195
|
+
} : focused ? StyleSheet.absoluteFill : null,
|
|
196
|
+
children: focused || layout.width ? child : null
|
|
197
|
+
}, route.key);
|
|
198
|
+
})
|
|
199
|
+
})
|
|
186
200
|
});
|
|
187
201
|
}
|
|
188
202
|
const styles = StyleSheet.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Animated","
|
|
1
|
+
{"version":3,"names":["React","Animated","Keyboard","PanResponder","StyleSheet","View","useLatestCallback","useAnimatedValue","jsx","_jsx","DEAD_ZONE","DefaultTransitionSpec","timing","spring","stiffness","damping","mass","overshootClamping","PanResponderAdapter","layout","keyboardDismissMode","swipeEnabled","navigationState","onIndexChange","onTabSelect","onSwipeStart","onSwipeEnd","children","style","animationEnabled","layoutDirection","routes","index","panX","listenersRef","useRef","navigationStateRef","layoutRef","onIndexChangeRef","onTabSelectRef","currentIndexRef","pendingIndexRef","undefined","swipeVelocityThreshold","swipeDistanceThreshold","width","jumpToIndex","animate","offset","current","transitionConfig","parallel","toValue","useNativeDriver","start","finished","setValue","useEffect","dismiss","isMovingHorizontally","_","gestureState","Math","abs","dx","dy","vx","vy","canMoveScreen","event","diffX","length","startGesture","stopAnimation","setOffset","_value","respondToGesture","position","_offset","next","ceil","floor","forEach","listener","finishGesture","flattenOffset","currentIndex","nextIndex","round","min","max","isFinite","addEnterListener","push","indexOf","splice","jumpTo","key","findIndex","route","panResponder","create","onMoveShouldSetPanResponder","onMoveShouldSetPanResponderCapture","onPanResponderGrant","onPanResponderMove","onPanResponderTerminate","onPanResponderRelease","onPanResponderTerminationRequest","maxTranslate","translateX","multiply","interpolate","inputRange","outputRange","extrapolate","useMemo","divide","Value","render","styles","sheet","transform","panHandlers","Children","map","child","i","focused","absoluteFill","flex","flexDirection","alignItems"],"sourceRoot":"../../src","sources":["PanResponderAdapter.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,35 +1,61 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
2
3
|
import * as React from 'react';
|
|
3
4
|
import { Platform, Pressable } from 'react-native';
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
6
|
const ANDROID_VERSION_LOLLIPOP = 21;
|
|
5
7
|
const ANDROID_SUPPORTS_RIPPLE = Platform.OS === 'android' && Platform.Version >= ANDROID_VERSION_LOLLIPOP;
|
|
6
8
|
|
|
7
9
|
/**
|
|
8
|
-
* PlatformPressable provides an abstraction on top of
|
|
9
|
-
* TouchableOpacity to handle platform differences.
|
|
10
|
-
*
|
|
11
|
-
* On Android, you can pass the props of TouchableNativeFeedback.
|
|
12
|
-
* On other platforms, you can pass the props of TouchableOpacity.
|
|
10
|
+
* PlatformPressable provides an abstraction on top of Pressable to handle platform differences.
|
|
13
11
|
*/
|
|
14
|
-
export
|
|
12
|
+
export function PlatformPressable({
|
|
13
|
+
disabled,
|
|
15
14
|
android_ripple,
|
|
16
15
|
pressColor = 'rgba(0, 0, 0, .32)',
|
|
17
16
|
pressOpacity,
|
|
18
17
|
style,
|
|
18
|
+
onPress,
|
|
19
19
|
...rest
|
|
20
20
|
}) {
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
const handlePress = e => {
|
|
22
|
+
if (Platform.OS === 'web' && rest.href !== null) {
|
|
23
|
+
// ignore clicks with modifier keys
|
|
24
|
+
const hasModifierKey = 'metaKey' in e && e.metaKey || 'altKey' in e && e.altKey || 'ctrlKey' in e && e.ctrlKey || 'shiftKey' in e && e.shiftKey;
|
|
25
|
+
|
|
26
|
+
// only handle left clicks
|
|
27
|
+
const isLeftClick = 'button' in e ? e.button == null || e.button === 0 : true;
|
|
28
|
+
|
|
29
|
+
// let browser handle "target=_blank" etc.
|
|
30
|
+
const isSelfTarget = e.currentTarget && 'target' in e.currentTarget ? [undefined, null, '', 'self'].includes(e.currentTarget.target) : true;
|
|
31
|
+
if (!hasModifierKey && isLeftClick && isSelfTarget) {
|
|
32
|
+
e.preventDefault();
|
|
33
|
+
// call `onPress` only when browser default is prevented
|
|
34
|
+
// this prevents app from handling the click when a link is being opened
|
|
35
|
+
onPress?.(e);
|
|
36
|
+
}
|
|
37
|
+
} else {
|
|
38
|
+
onPress?.(e);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
42
|
+
android_ripple: ANDROID_SUPPORTS_RIPPLE && !disabled ? {
|
|
23
43
|
color: pressColor,
|
|
24
44
|
...android_ripple
|
|
25
45
|
} : undefined,
|
|
26
46
|
style: ({
|
|
27
47
|
pressed
|
|
28
48
|
}) => [{
|
|
29
|
-
|
|
49
|
+
cursor: (Platform.OS === 'web' || Platform.OS === 'ios') && !disabled ?
|
|
50
|
+
// Pointer cursor on web
|
|
51
|
+
// Hover effect on iPad and visionOS
|
|
52
|
+
'pointer' : 'auto',
|
|
53
|
+
opacity: !ANDROID_SUPPORTS_RIPPLE && pressed && !disabled ? pressOpacity : 1
|
|
30
54
|
}, typeof style === 'function' ? style({
|
|
31
55
|
pressed
|
|
32
|
-
}) : style]
|
|
33
|
-
|
|
56
|
+
}) : style],
|
|
57
|
+
onPress: disabled ? undefined : handlePress,
|
|
58
|
+
...rest
|
|
59
|
+
});
|
|
34
60
|
}
|
|
35
61
|
//# sourceMappingURL=PlatformPressable.js.map
|