react-native-tab-view 5.0.0-alpha.7 → 5.0.0-alpha.9

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.
Files changed (82) hide show
  1. package/lib/module/DefaultAdapter.android.js +4 -0
  2. package/lib/module/DefaultAdapter.android.js.map +1 -0
  3. package/lib/module/DefaultAdapter.ios.js +4 -0
  4. package/lib/module/DefaultAdapter.ios.js.map +1 -0
  5. package/lib/module/DefaultAdapter.js +5 -0
  6. package/lib/module/DefaultAdapter.js.map +1 -0
  7. package/lib/module/PagerViewAdapter.native.js +29 -13
  8. package/lib/module/PagerViewAdapter.native.js.map +1 -1
  9. package/lib/module/PlatformPressable.js +1 -1
  10. package/lib/module/ScrollViewAdapter.js +46 -18
  11. package/lib/module/ScrollViewAdapter.js.map +1 -1
  12. package/lib/module/TabBar.js +260 -148
  13. package/lib/module/TabBar.js.map +1 -1
  14. package/lib/module/TabBarIndicator.js +282 -168
  15. package/lib/module/TabBarIndicator.js.map +1 -1
  16. package/lib/module/TabBarItem.js +94 -44
  17. package/lib/module/TabBarItem.js.map +1 -1
  18. package/lib/module/TabBarItemLabel.js +3 -2
  19. package/lib/module/TabBarItemLabel.js.map +1 -1
  20. package/lib/module/TabView.js +2 -2
  21. package/lib/module/TabView.js.map +1 -1
  22. package/lib/module/constants.js +10 -0
  23. package/lib/module/constants.js.map +1 -0
  24. package/lib/module/index.js +1 -0
  25. package/lib/module/index.js.map +1 -1
  26. package/lib/module/useLayoutWidths.js +46 -0
  27. package/lib/module/useLayoutWidths.js.map +1 -0
  28. package/lib/typescript/src/DefaultAdapter.android.d.ts +2 -0
  29. package/lib/typescript/src/DefaultAdapter.android.d.ts.map +1 -0
  30. package/lib/typescript/src/DefaultAdapter.d.ts +6 -0
  31. package/lib/typescript/src/DefaultAdapter.d.ts.map +1 -0
  32. package/lib/typescript/src/DefaultAdapter.ios.d.ts +2 -0
  33. package/lib/typescript/src/DefaultAdapter.ios.d.ts.map +1 -0
  34. package/lib/typescript/src/PagerViewAdapter.native.d.ts +1 -1
  35. package/lib/typescript/src/PagerViewAdapter.native.d.ts.map +1 -1
  36. package/lib/typescript/src/ScrollViewAdapter.d.ts +1 -2
  37. package/lib/typescript/src/ScrollViewAdapter.d.ts.map +1 -1
  38. package/lib/typescript/src/TabBar.d.ts +2 -1
  39. package/lib/typescript/src/TabBar.d.ts.map +1 -1
  40. package/lib/typescript/src/TabBarIndicator.d.ts +4 -7
  41. package/lib/typescript/src/TabBarIndicator.d.ts.map +1 -1
  42. package/lib/typescript/src/TabBarItem.d.ts +10 -4
  43. package/lib/typescript/src/TabBarItem.d.ts.map +1 -1
  44. package/lib/typescript/src/TabBarItemLabel.d.ts +4 -3
  45. package/lib/typescript/src/TabBarItemLabel.d.ts.map +1 -1
  46. package/lib/typescript/src/TabView.d.ts.map +1 -1
  47. package/lib/typescript/src/constants.d.ts +8 -0
  48. package/lib/typescript/src/constants.d.ts.map +1 -0
  49. package/lib/typescript/src/index.d.ts +2 -1
  50. package/lib/typescript/src/index.d.ts.map +1 -1
  51. package/lib/typescript/src/useLayoutWidths.d.ts +2 -0
  52. package/lib/typescript/src/useLayoutWidths.d.ts.map +1 -0
  53. package/package.json +2 -2
  54. package/src/DefaultAdapter.android.tsx +1 -0
  55. package/src/DefaultAdapter.ios.tsx +1 -0
  56. package/src/DefaultAdapter.tsx +13 -0
  57. package/src/PagerViewAdapter.native.tsx +36 -18
  58. package/src/PlatformPressable.tsx +1 -1
  59. package/src/ScrollViewAdapter.tsx +81 -21
  60. package/src/TabBar.tsx +386 -181
  61. package/src/TabBarIndicator.tsx +323 -248
  62. package/src/TabBarItem.tsx +102 -41
  63. package/src/TabBarItemLabel.tsx +5 -4
  64. package/src/TabView.tsx +2 -2
  65. package/src/constants.tsx +8 -0
  66. package/src/index.tsx +5 -1
  67. package/src/useLayoutWidths.tsx +51 -0
  68. package/lib/module/Pager.android.js +0 -4
  69. package/lib/module/Pager.android.js.map +0 -1
  70. package/lib/module/Pager.ios.js +0 -4
  71. package/lib/module/Pager.ios.js.map +0 -1
  72. package/lib/module/Pager.js +0 -4
  73. package/lib/module/Pager.js.map +0 -1
  74. package/lib/typescript/src/Pager.android.d.ts +0 -2
  75. package/lib/typescript/src/Pager.android.d.ts.map +0 -1
  76. package/lib/typescript/src/Pager.d.ts +0 -2
  77. package/lib/typescript/src/Pager.d.ts.map +0 -1
  78. package/lib/typescript/src/Pager.ios.d.ts +0 -2
  79. package/lib/typescript/src/Pager.ios.d.ts.map +0 -1
  80. package/src/Pager.android.tsx +0 -1
  81. package/src/Pager.ios.tsx +0 -1
  82. package/src/Pager.tsx +0 -1
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { PagerViewAdapter as DefaultAdapter } from './PagerViewAdapter';
4
+ //# sourceMappingURL=DefaultAdapter.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PagerViewAdapter","DefaultAdapter"],"sourceRoot":"../../src","sources":["DefaultAdapter.android.tsx"],"mappings":";;AAAA,SAASA,gBAAgB,IAAIC,cAAc,QAAQ,oBAAoB","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { PagerViewAdapter as DefaultAdapter } from './PagerViewAdapter';
4
+ //# sourceMappingURL=DefaultAdapter.ios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PagerViewAdapter","DefaultAdapter"],"sourceRoot":"../../src","sources":["DefaultAdapter.ios.tsx"],"mappings":";;AAAA,SAASA,gBAAgB,IAAIC,cAAc,QAAQ,oBAAoB","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { PanResponderAdapter } from "./PanResponderAdapter.js";
4
+ export const DefaultAdapter = PanResponderAdapter;
5
+ //# sourceMappingURL=DefaultAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PanResponderAdapter","DefaultAdapter"],"sourceRoot":"../../src","sources":["DefaultAdapter.tsx"],"mappings":";;AAGA,SACEA,mBAAmB,QAEd,0BAAuB;AAK9B,OAAO,MAAMC,cAAwD,GACnED,mBAAmB","ignoreList":[]}
@@ -19,28 +19,43 @@ export function PagerViewAdapter({
19
19
  children,
20
20
  style,
21
21
  animationEnabled,
22
+ layoutDirection = 'ltr',
22
23
  ...rest
23
24
  }) {
24
25
  const {
25
- index
26
+ index,
27
+ routes
26
28
  } = navigationState;
29
+ const isRTL = layoutDirection === 'rtl';
30
+
31
+ // iOS reports RTL pager offsets from the opposite end
32
+ // So we need to invert them to get the logical route index
33
+ const shouldInvertOffset = Platform.OS === 'ios' && isRTL;
34
+ const initialPosition = shouldInvertOffset ? routes.length - 1 - index : index;
27
35
  const listeners = React.useRef(new Set()).current;
28
36
  const pagerRef = React.useRef(null);
29
37
  const indexRef = React.useRef(index);
30
38
  const navigationStateRef = React.useRef(navigationState);
31
- const position = useAnimatedValue(index);
39
+ const position = useAnimatedValue(initialPosition);
32
40
  const offset = useAnimatedValue(0);
33
41
  React.useEffect(() => {
34
42
  navigationStateRef.current = navigationState;
35
43
  });
36
- const jumpTo = useLatestCallback(key => {
37
- const index = navigationStateRef.current.routes.findIndex(route => route.key === key);
44
+ const setReportedOffset = useLatestCallback(index => {
45
+ position.setValue(shouldInvertOffset ? routes.length - 1 - index : index);
46
+ offset.setValue(0);
47
+ });
48
+ const setPage = useLatestCallback(index => {
38
49
  if (animationEnabled) {
39
50
  pagerRef.current?.setPage(index);
40
51
  } else {
41
52
  pagerRef.current?.setPageWithoutAnimation(index);
42
- position.setValue(index);
53
+ setReportedOffset(index);
43
54
  }
55
+ });
56
+ const jumpTo = useLatestCallback(key => {
57
+ const index = navigationStateRef.current.routes.findIndex(route => route.key === key);
58
+ setPage(index);
44
59
  onIndexChange(index);
45
60
  });
46
61
  React.useEffect(() => {
@@ -48,14 +63,9 @@ export function PagerViewAdapter({
48
63
  Keyboard.dismiss();
49
64
  }
50
65
  if (indexRef.current !== index) {
51
- if (animationEnabled) {
52
- pagerRef.current?.setPage(index);
53
- } else {
54
- pagerRef.current?.setPageWithoutAnimation(index);
55
- position.setValue(index);
56
- }
66
+ setPage(index);
57
67
  }
58
- }, [keyboardDismissMode, index, animationEnabled, position]);
68
+ }, [keyboardDismissMode, index, setPage]);
59
69
  const onPageScrollStateChanged = state => {
60
70
  const {
61
71
  pageScrollState
@@ -89,7 +99,12 @@ export function PagerViewAdapter({
89
99
  listeners.delete(listener);
90
100
  };
91
101
  });
92
- const memoizedPosition = React.useMemo(() => Animated.add(position, offset), [offset, position]);
102
+ const memoizedPosition = React.useMemo(() => {
103
+ const value = Animated.add(position, offset);
104
+
105
+ // Convert the native RTL offset back to the logical route index
106
+ return shouldInvertOffset ? Animated.subtract(routes.length - 1, value) : value;
107
+ }, [offset, position, routes.length, shouldInvertOffset]);
93
108
  return children({
94
109
  position: memoizedPosition,
95
110
  subscribe,
@@ -99,6 +114,7 @@ export function PagerViewAdapter({
99
114
  ref: pagerRef,
100
115
  style: [styles.container, style],
101
116
  initialPage: index,
117
+ layoutDirection: layoutDirection,
102
118
  keyboardDismissMode: keyboardDismissMode === 'auto' ? 'on-drag' : keyboardDismissMode,
103
119
  onPageScroll: Animated.event([{
104
120
  nativeEvent: {
@@ -1 +1 @@
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","listeners","useRef","Set","current","pagerRef","indexRef","navigationStateRef","position","offset","useEffect","jumpTo","key","routes","findIndex","route","setPage","setPageWithoutAnimation","setValue","dismiss","onPageScrollStateChanged","state","pageScrollState","nativeEvent","subscription","addListener","value","next","Math","ceil","floor","forEach","listener","type","removeListener","subscribe","add","delete","memoizedPosition","useMemo","render","ref","styles","container","initialPage","onPageScroll","event","onPageSelected","e","scrollEnabled","create","flex"],"sourceRoot":"../../src","sources":["PagerViewAdapter.native.tsx"],"mappings":"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","ignoreList":[]}
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","layoutDirection","rest","index","routes","isRTL","shouldInvertOffset","initialPosition","length","listeners","useRef","Set","current","pagerRef","indexRef","navigationStateRef","position","offset","useEffect","setReportedOffset","setValue","setPage","setPageWithoutAnimation","jumpTo","key","findIndex","route","dismiss","onPageScrollStateChanged","state","pageScrollState","nativeEvent","subscription","addListener","value","next","Math","ceil","floor","forEach","listener","type","removeListener","subscribe","add","delete","memoizedPosition","useMemo","subtract","render","ref","styles","container","initialPage","onPageScroll","event","onPageSelected","e","scrollEnabled","create","flex"],"sourceRoot":"../../src","sources":["PagerViewAdapter.native.tsx"],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,7 @@ const ANDROID_SUPPORTS_RIPPLE = Platform.OS === 'android' && Platform.Version >=
12
12
  export function PlatformPressable({
13
13
  disabled,
14
14
  android_ripple,
15
- pressColor = 'rgba(0, 0, 0, .32)',
15
+ pressColor = 'rgba(0, 0, 0, .10)',
16
16
  pressOpacity,
17
17
  style,
18
18
  onPress,
@@ -16,8 +16,7 @@ export function ScrollViewAdapter({
16
16
  children,
17
17
  style,
18
18
  animationEnabled = true,
19
- layoutDirection: _,
20
- // Not supported in ScrollViewAdapter
19
+ layoutDirection = 'ltr',
21
20
  decelerationRate = 'fast',
22
21
  bounces = false,
23
22
  overScrollMode = 'never',
@@ -28,33 +27,54 @@ export function ScrollViewAdapter({
28
27
  index,
29
28
  routes
30
29
  } = navigationState;
30
+ const isRTL = layoutDirection === 'rtl';
31
+
32
+ // Android reports RTL scroll offsets from the opposite end (0 at the max scroll offset)
33
+ // So we need to invert them to get the logical route index
34
+ const shouldInvertOffset = Platform.OS === 'android' && isRTL;
35
+
36
+ // Web uses negative scroll offsets in RTL
37
+ // So we need to negate them to get the logical route index
38
+ const shouldNegateOffset = Platform.OS === 'web' && isRTL;
31
39
  const listeners = React.useRef(new Set()).current;
32
40
  const scrollViewRef = React.useRef(null);
33
41
  const containerRef = React.useRef(null);
34
42
  const isInitialRef = React.useRef(true);
43
+ const getScrollOffsetForIndex = React.useCallback((index, width) => (shouldNegateOffset ? -index : index) * width, [shouldNegateOffset]);
44
+ const getReportedOffsetForIndex = React.useCallback((index, width) => shouldInvertOffset ? (routes.length - 1 - index) * width : getScrollOffsetForIndex(index, width), [getScrollOffsetForIndex, routes.length, shouldInvertOffset]);
45
+ const getIndexFromOffset = React.useCallback((x, width) => {
46
+ const offset = clamp(x / width, shouldNegateOffset ? -(routes.length - 1) : 0, routes.length - 1);
47
+ if (shouldInvertOffset) {
48
+ return routes.length - 1 - offset;
49
+ }
50
+ if (shouldNegateOffset) {
51
+ return -offset;
52
+ }
53
+ return offset;
54
+ }, [routes.length, shouldInvertOffset, shouldNegateOffset]);
35
55
  const [layout, onLayout] = useMeasureLayout(containerRef, ({
36
56
  width
37
57
  }) => {
38
58
  if (isInitialRef.current) {
39
- const x = index * width;
59
+ const x = getScrollOffsetForIndex(index, width);
40
60
  setContentOffset({
41
61
  x,
42
62
  y: 0
43
63
  });
44
- offsetX.setValue(x);
64
+ offsetX.setValue(getReportedOffsetForIndex(index, width));
45
65
  } else if (indexRef.current !== index) {
46
66
  scrollToIndex(index);
47
67
  }
48
68
  isInitialRef.current = false;
49
69
  });
50
70
  const [contentOffset, setContentOffset] = React.useState(() => ({
51
- x: index * layout.width,
71
+ x: getScrollOffsetForIndex(index, layout.width),
52
72
  y: 0
53
73
  }));
54
74
  React.useEffect(() => {
55
- // FIXME: contentOffset is not supported on Android
75
+ // FIXME: contentOffset is not supported on Android and Web
56
76
  // So we manually scroll after state update
57
- if (Platform.OS === 'android') {
77
+ if (Platform.OS === 'android' || Platform.OS === 'web') {
58
78
  requestAnimationFrame(() => {
59
79
  scrollViewRef.current?.scrollTo({
60
80
  x: contentOffset.x,
@@ -62,11 +82,11 @@ export function ScrollViewAdapter({
62
82
  });
63
83
  });
64
84
  }
65
- }, [animationEnabled, contentOffset.x]);
85
+ }, [contentOffset.x]);
66
86
  const [offsetX] = React.useState(() => new Animated.Value(contentOffset.x));
67
87
  const scrollToIndex = useLatestCallback(index => {
68
88
  scrollViewRef.current?.scrollTo({
69
- x: index * layout.width,
89
+ x: getScrollOffsetForIndex(index, layout.width),
70
90
  animated: animationEnabled
71
91
  });
72
92
  });
@@ -89,18 +109,26 @@ export function ScrollViewAdapter({
89
109
  listeners.delete(listener);
90
110
  };
91
111
  });
92
- const position = React.useMemo(() => layout.width ? Animated.divide(offsetX, layout.width) : null, [layout.width, offsetX]);
112
+ const position = React.useMemo(() => {
113
+ if (!layout.width) {
114
+ return null;
115
+ }
116
+ const value = Animated.divide(offsetX, layout.width);
117
+
118
+ // Convert platform scroll offsets back to logical route index
119
+ return shouldInvertOffset ? Animated.subtract(routes.length - 1, value) : shouldNegateOffset ? Animated.multiply(value, -1) : value;
120
+ }, [layout.width, offsetX, routes.length, shouldInvertOffset, shouldNegateOffset]);
93
121
  const indexRef = React.useRef(index);
94
122
  const timerRef = React.useRef(undefined);
95
123
  const onScrollEnd = x => {
96
- const value = clamp(x / layout.width, 0, routes.length - 1);
97
- if (value % 1 === 0) {
98
- indexRef.current = value;
99
- if (value !== index) {
100
- onIndexChange(value);
124
+ const nextIndex = getIndexFromOffset(x, layout.width);
125
+ if (nextIndex % 1 === 0) {
126
+ indexRef.current = nextIndex;
127
+ if (nextIndex !== index) {
128
+ onIndexChange(nextIndex);
101
129
  }
102
130
  onTabSelect?.({
103
- index: value
131
+ index: nextIndex
104
132
  });
105
133
  }
106
134
  };
@@ -111,12 +139,12 @@ export function ScrollViewAdapter({
111
139
  }
112
140
  }
113
141
  }], {
114
- useNativeDriver: true,
142
+ useNativeDriver: Platform.OS !== 'web',
115
143
  listener: event => {
116
144
  const {
117
145
  x
118
146
  } = event.nativeEvent.contentOffset;
119
- const value = clamp(x / layout.width, 0, routes.length - 1);
147
+ const value = getIndexFromOffset(x, layout.width);
120
148
 
121
149
  // The offset will overlap the current and the adjacent page
122
150
  // So we need to get the index of the adjacent page
@@ -1 +1 @@
1
- {"version":3,"names":["React","Animated","Keyboard","Platform","StyleSheet","View","useLatestCallback","useMeasureLayout","jsx","_jsx","ScrollViewAdapter","keyboardDismissMode","swipeEnabled","navigationState","onIndexChange","onTabSelect","onSwipeStart","onSwipeEnd","children","style","animationEnabled","layoutDirection","_","decelerationRate","bounces","overScrollMode","keyboardShouldPersistTaps","rest","index","routes","listeners","useRef","Set","current","scrollViewRef","containerRef","isInitialRef","layout","onLayout","width","x","setContentOffset","y","offsetX","setValue","indexRef","scrollToIndex","contentOffset","useState","useEffect","OS","requestAnimationFrame","scrollTo","animated","Value","jumpTo","key","i","findIndex","route","dismiss","handleSwipeStart","useCallback","handleSwipeEnd","subscribe","listener","add","delete","position","useMemo","divide","timerRef","undefined","onScrollEnd","value","clamp","length","onScroll","event","nativeEvent","useNativeDriver","next","Math","ceil","floor","find","forEach","type","clearTimeout","setTimeout","onMomentumScrollEnd","render","ref","styles","container","ScrollView","horizontal","pagingEnabled","directionalLockEnabled","scrollEnabled","Boolean","scrollToOverflowEnabled","scrollsToTop","automaticallyAdjustContentInsets","showsHorizontalScrollIndicator","scrollEventThrottle","onScrollBeginDrag","onScrollEndDrag","contentContainerStyle","scroll","map","child","focused","filter","min","max","create","flex","overflow"],"sourceRoot":"../../src","sources":["ScrollViewAdapter.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Animated","Keyboard","Platform","StyleSheet","View","useLatestCallback","useMeasureLayout","jsx","_jsx","ScrollViewAdapter","keyboardDismissMode","swipeEnabled","navigationState","onIndexChange","onTabSelect","onSwipeStart","onSwipeEnd","children","style","animationEnabled","layoutDirection","decelerationRate","bounces","overScrollMode","keyboardShouldPersistTaps","rest","index","routes","isRTL","shouldInvertOffset","OS","shouldNegateOffset","listeners","useRef","Set","current","scrollViewRef","containerRef","isInitialRef","getScrollOffsetForIndex","useCallback","width","getReportedOffsetForIndex","length","getIndexFromOffset","x","offset","clamp","layout","onLayout","setContentOffset","y","offsetX","setValue","indexRef","scrollToIndex","contentOffset","useState","useEffect","requestAnimationFrame","scrollTo","animated","Value","jumpTo","key","i","findIndex","route","dismiss","handleSwipeStart","handleSwipeEnd","subscribe","listener","add","delete","position","useMemo","value","divide","subtract","multiply","timerRef","undefined","onScrollEnd","nextIndex","onScroll","event","nativeEvent","useNativeDriver","next","Math","ceil","floor","find","forEach","type","clearTimeout","setTimeout","onMomentumScrollEnd","render","ref","styles","container","ScrollView","horizontal","pagingEnabled","directionalLockEnabled","scrollEnabled","Boolean","scrollToOverflowEnabled","scrollsToTop","automaticallyAdjustContentInsets","showsHorizontalScrollIndicator","scrollEventThrottle","onScrollBeginDrag","onScrollEndDrag","contentContainerStyle","scroll","map","child","focused","filter","min","max","create","flex","overflow"],"sourceRoot":"../../src","sources":["ScrollViewAdapter.tsx"],"mappings":"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","ignoreList":[]}