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.
- package/lib/module/DefaultAdapter.android.js +4 -0
- package/lib/module/DefaultAdapter.android.js.map +1 -0
- package/lib/module/DefaultAdapter.ios.js +4 -0
- package/lib/module/DefaultAdapter.ios.js.map +1 -0
- package/lib/module/DefaultAdapter.js +5 -0
- package/lib/module/DefaultAdapter.js.map +1 -0
- package/lib/module/PagerViewAdapter.native.js +29 -13
- package/lib/module/PagerViewAdapter.native.js.map +1 -1
- package/lib/module/PlatformPressable.js +1 -1
- package/lib/module/ScrollViewAdapter.js +46 -18
- package/lib/module/ScrollViewAdapter.js.map +1 -1
- package/lib/module/TabBar.js +260 -148
- package/lib/module/TabBar.js.map +1 -1
- package/lib/module/TabBarIndicator.js +282 -168
- package/lib/module/TabBarIndicator.js.map +1 -1
- package/lib/module/TabBarItem.js +94 -44
- package/lib/module/TabBarItem.js.map +1 -1
- package/lib/module/TabBarItemLabel.js +3 -2
- package/lib/module/TabBarItemLabel.js.map +1 -1
- package/lib/module/TabView.js +2 -2
- package/lib/module/TabView.js.map +1 -1
- package/lib/module/constants.js +10 -0
- package/lib/module/constants.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/useLayoutWidths.js +46 -0
- package/lib/module/useLayoutWidths.js.map +1 -0
- package/lib/typescript/src/DefaultAdapter.android.d.ts +2 -0
- package/lib/typescript/src/DefaultAdapter.android.d.ts.map +1 -0
- package/lib/typescript/src/DefaultAdapter.d.ts +6 -0
- package/lib/typescript/src/DefaultAdapter.d.ts.map +1 -0
- package/lib/typescript/src/DefaultAdapter.ios.d.ts +2 -0
- package/lib/typescript/src/DefaultAdapter.ios.d.ts.map +1 -0
- package/lib/typescript/src/PagerViewAdapter.native.d.ts +1 -1
- package/lib/typescript/src/PagerViewAdapter.native.d.ts.map +1 -1
- package/lib/typescript/src/ScrollViewAdapter.d.ts +1 -2
- package/lib/typescript/src/ScrollViewAdapter.d.ts.map +1 -1
- package/lib/typescript/src/TabBar.d.ts +2 -1
- package/lib/typescript/src/TabBar.d.ts.map +1 -1
- package/lib/typescript/src/TabBarIndicator.d.ts +4 -7
- package/lib/typescript/src/TabBarIndicator.d.ts.map +1 -1
- package/lib/typescript/src/TabBarItem.d.ts +10 -4
- package/lib/typescript/src/TabBarItem.d.ts.map +1 -1
- package/lib/typescript/src/TabBarItemLabel.d.ts +4 -3
- package/lib/typescript/src/TabBarItemLabel.d.ts.map +1 -1
- package/lib/typescript/src/TabView.d.ts.map +1 -1
- package/lib/typescript/src/constants.d.ts +8 -0
- package/lib/typescript/src/constants.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +2 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/useLayoutWidths.d.ts +2 -0
- package/lib/typescript/src/useLayoutWidths.d.ts.map +1 -0
- package/package.json +2 -2
- package/src/DefaultAdapter.android.tsx +1 -0
- package/src/DefaultAdapter.ios.tsx +1 -0
- package/src/DefaultAdapter.tsx +13 -0
- package/src/PagerViewAdapter.native.tsx +36 -18
- package/src/PlatformPressable.tsx +1 -1
- package/src/ScrollViewAdapter.tsx +81 -21
- package/src/TabBar.tsx +386 -181
- package/src/TabBarIndicator.tsx +323 -248
- package/src/TabBarItem.tsx +102 -41
- package/src/TabBarItemLabel.tsx +5 -4
- package/src/TabView.tsx +2 -2
- package/src/constants.tsx +8 -0
- package/src/index.tsx +5 -1
- package/src/useLayoutWidths.tsx +51 -0
- package/lib/module/Pager.android.js +0 -4
- package/lib/module/Pager.android.js.map +0 -1
- package/lib/module/Pager.ios.js +0 -4
- package/lib/module/Pager.ios.js.map +0 -1
- package/lib/module/Pager.js +0 -4
- package/lib/module/Pager.js.map +0 -1
- package/lib/typescript/src/Pager.android.d.ts +0 -2
- package/lib/typescript/src/Pager.android.d.ts.map +0 -1
- package/lib/typescript/src/Pager.d.ts +0 -2
- package/lib/typescript/src/Pager.d.ts.map +0 -1
- package/lib/typescript/src/Pager.ios.d.ts +0 -2
- package/lib/typescript/src/Pager.ios.d.ts.map +0 -1
- package/src/Pager.android.tsx +0 -1
- package/src/Pager.ios.tsx +0 -1
- package/src/Pager.tsx +0 -1
|
@@ -2,197 +2,311 @@
|
|
|
2
2
|
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { Animated, Easing, Platform, StyleSheet } from 'react-native';
|
|
5
|
-
import {
|
|
6
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
if (Number.isFinite(parsed)) {
|
|
15
|
-
return referenceWidth * (parsed / 100);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
return undefined;
|
|
19
|
-
};
|
|
20
|
-
const getIndicatorWidthWithMargins = (width, style, direction) => {
|
|
21
|
-
const marginHorizontal = style?.marginHorizontal ?? style?.margin;
|
|
22
|
-
const leftMargin = (direction === 'ltr' ? style?.marginStart : style?.marginEnd) ?? style?.marginLeft ?? marginHorizontal;
|
|
23
|
-
const rightMargin = (direction === 'rtl' ? style?.marginStart : style?.marginEnd) ?? style?.marginRight ?? marginHorizontal;
|
|
24
|
-
return Math.max(0, width - (calculateSize(leftMargin, width) ?? 0) - (calculateSize(rightMargin, width) ?? 0));
|
|
25
|
-
};
|
|
26
|
-
const getIndicatorWidth = (tabWidth, width, style, direction) => {
|
|
27
|
-
const customWidth = calculateSize(style?.width, tabWidth);
|
|
28
|
-
if (customWidth !== undefined) {
|
|
29
|
-
return customWidth;
|
|
30
|
-
}
|
|
31
|
-
if (typeof width === 'number') {
|
|
32
|
-
return getIndicatorWidthWithMargins(width, style, direction);
|
|
33
|
-
}
|
|
34
|
-
return width;
|
|
35
|
-
};
|
|
36
|
-
const getTranslateX = (position, routes, getTabWidth, direction, gap, getWidth) => {
|
|
37
|
-
const inputRange = routes.map((_, i) => i);
|
|
38
|
-
const outputRange = routes.map((_, i) => {
|
|
39
|
-
let sumTabWidth = 0;
|
|
40
|
-
for (let j = 0; j < i; j++) {
|
|
41
|
-
sumTabWidth += getTabWidth(j);
|
|
42
|
-
}
|
|
43
|
-
const indicatorWidth = getWidth?.(i);
|
|
44
|
-
const tabOffset = sumTabWidth + (gap ? gap * i : 0);
|
|
45
|
-
if (indicatorWidth === undefined) {
|
|
46
|
-
return tabOffset;
|
|
47
|
-
}
|
|
48
|
-
return tabOffset + getTabWidth(i) / 2 - indicatorWidth / 2;
|
|
49
|
-
});
|
|
50
|
-
const translateX = position.interpolate({
|
|
51
|
-
inputRange,
|
|
52
|
-
outputRange,
|
|
53
|
-
extrapolate: 'clamp'
|
|
54
|
-
});
|
|
55
|
-
return Animated.multiply(translateX, direction === 'rtl' ? -1 : 1);
|
|
56
|
-
};
|
|
5
|
+
import { TAB_BAR_PRIMARY_ACTIVE_COLOR } from "./constants.js";
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
const CAP_FILL_OVERLAP = 1;
|
|
8
|
+
const EASING_SAMPLE_COUNT = 16;
|
|
9
|
+
const samplePoints = easing => Array.from({
|
|
10
|
+
length: EASING_SAMPLE_COUNT + 1
|
|
11
|
+
}, (_, i) => easing(i / EASING_SAMPLE_COUNT));
|
|
12
|
+
const TRAILING_EDGE_SAMPLES = samplePoints(Easing.bezier(0.3, 0, 0.8, 0.15));
|
|
13
|
+
const LEADING_EDGE_SAMPLES = samplePoints(Easing.bezier(0.05, 0.7, 0.1, 1));
|
|
57
14
|
export function TabBarIndicator({
|
|
58
|
-
|
|
15
|
+
variant = 'primary',
|
|
16
|
+
widths,
|
|
17
|
+
offsets,
|
|
59
18
|
navigationState,
|
|
60
19
|
position,
|
|
61
|
-
width,
|
|
62
20
|
direction,
|
|
63
|
-
|
|
64
|
-
style,
|
|
65
|
-
children
|
|
21
|
+
style
|
|
66
22
|
}) {
|
|
67
|
-
const
|
|
68
|
-
const
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
isIndicatorShown.current = true;
|
|
104
|
-
}
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
fadeInIndicator();
|
|
109
|
-
return () => animation?.stop();
|
|
110
|
-
}, [indicatorVisible, isWidthDynamic, opacity]);
|
|
23
|
+
const isRTL = direction === 'rtl';
|
|
24
|
+
const flattenedStyle = StyleSheet.flatten([styles.defaults, style]) || {};
|
|
25
|
+
const {
|
|
26
|
+
backgroundColor,
|
|
27
|
+
borderRadius,
|
|
28
|
+
borderBottomEndRadius = borderRadius,
|
|
29
|
+
borderBottomLeftRadius = borderRadius,
|
|
30
|
+
borderBottomRightRadius = borderRadius,
|
|
31
|
+
borderBottomStartRadius = borderRadius,
|
|
32
|
+
borderTopEndRadius = borderRadius,
|
|
33
|
+
borderTopLeftRadius = borderRadius,
|
|
34
|
+
borderTopRightRadius = borderRadius,
|
|
35
|
+
borderTopStartRadius = borderRadius,
|
|
36
|
+
height,
|
|
37
|
+
start: indicatorStart,
|
|
38
|
+
end: indicatorEnd,
|
|
39
|
+
left: indicatorLeft,
|
|
40
|
+
right: indicatorRight,
|
|
41
|
+
...restStyle
|
|
42
|
+
} = flattenedStyle;
|
|
43
|
+
delete restStyle.width;
|
|
44
|
+
delete restStyle.margin;
|
|
45
|
+
delete restStyle.marginHorizontal;
|
|
46
|
+
delete restStyle.marginStart;
|
|
47
|
+
delete restStyle.marginEnd;
|
|
48
|
+
delete restStyle.marginLeft;
|
|
49
|
+
delete restStyle.marginRight;
|
|
50
|
+
const containerStart = indicatorStart ?? (isRTL ? indicatorRight : indicatorLeft);
|
|
51
|
+
const containerEnd = indicatorEnd ?? (isRTL ? indicatorLeft : indicatorRight);
|
|
52
|
+
if (borderBottomEndRadius != null && typeof borderBottomEndRadius !== 'number' || borderBottomStartRadius != null && typeof borderBottomStartRadius !== 'number' || borderBottomLeftRadius != null && typeof borderBottomLeftRadius !== 'number' || borderBottomRightRadius != null && typeof borderBottomRightRadius !== 'number' || borderTopEndRadius != null && typeof borderTopEndRadius !== 'number' || borderTopStartRadius != null && typeof borderTopStartRadius !== 'number' || borderTopLeftRadius != null && typeof borderTopLeftRadius !== 'number' || borderTopRightRadius != null && typeof borderTopRightRadius !== 'number') {
|
|
53
|
+
throw new Error('Only numeric border radii are supported in TabBarIndicator.');
|
|
54
|
+
}
|
|
55
|
+
const leftRadiusWidth = Math.max((isRTL ? borderTopEndRadius : borderTopStartRadius) ?? 0, (isRTL ? borderBottomEndRadius : borderBottomStartRadius) ?? 0, borderTopLeftRadius ?? 0, borderBottomLeftRadius ?? 0);
|
|
56
|
+
const rightRadiusWidth = Math.max((isRTL ? borderTopStartRadius : borderTopEndRadius) ?? 0, (isRTL ? borderBottomStartRadius : borderBottomEndRadius) ?? 0, borderTopRightRadius ?? 0, borderBottomRightRadius ?? 0);
|
|
57
|
+
const leftPieceWidth = leftRadiusWidth + CAP_FILL_OVERLAP;
|
|
58
|
+
const rightPieceWidth = rightRadiusWidth + CAP_FILL_OVERLAP;
|
|
111
59
|
const {
|
|
112
60
|
routes
|
|
113
61
|
} = navigationState;
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
62
|
+
const easedInterpolate = (values, samples) => {
|
|
63
|
+
if (routes.length <= 1) {
|
|
64
|
+
return values[0] ?? 0;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// On multi-tab jumps, slide directly from source to destination and
|
|
68
|
+
// Settle one tab before the pager finishes scrolling
|
|
69
|
+
// This makes the animation feel snappier
|
|
70
|
+
// Especially on Android where the pager animation is slow
|
|
71
|
+
if (jumpRange) {
|
|
72
|
+
const inputRange = jumpRange.from > jumpRange.to ? [jumpRange.to, jumpRange.to + 1, jumpRange.from] : [jumpRange.from, jumpRange.to - 1, jumpRange.to];
|
|
73
|
+
const outputRange = inputRange.map(i => i === jumpRange.from ? values[jumpRange.from] : values[jumpRange.to]);
|
|
74
|
+
return position.interpolate({
|
|
127
75
|
inputRange,
|
|
128
76
|
outputRange,
|
|
129
77
|
extrapolate: 'clamp'
|
|
130
|
-
})
|
|
131
|
-
}
|
|
132
|
-
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
if (samples == null) {
|
|
81
|
+
return position.interpolate({
|
|
82
|
+
inputRange: values.map((_, i) => i),
|
|
83
|
+
outputRange: values,
|
|
84
|
+
extrapolate: 'clamp'
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
const inputRange = [];
|
|
88
|
+
const outputRange = [];
|
|
89
|
+
for (let i = 0; i < values.length - 1; i++) {
|
|
90
|
+
const start = values[i];
|
|
91
|
+
const end = values[i + 1];
|
|
92
|
+
for (let j = 0; j < samples.length - 1; j++) {
|
|
93
|
+
inputRange.push(i + j / EASING_SAMPLE_COUNT);
|
|
94
|
+
outputRange.push(start + (end - start) * samples[j]);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
inputRange.push(values.length - 1);
|
|
98
|
+
outputRange.push(values[values.length - 1]);
|
|
99
|
+
return position.interpolate({
|
|
100
|
+
inputRange,
|
|
101
|
+
outputRange,
|
|
102
|
+
extrapolate: 'clamp'
|
|
133
103
|
});
|
|
104
|
+
};
|
|
105
|
+
let containerLayout;
|
|
106
|
+
let leftFillStyle;
|
|
107
|
+
let centerFillStyle;
|
|
108
|
+
let rightCapStyle;
|
|
109
|
+
let rightFillStyle;
|
|
110
|
+
const rightEdges = widths.map((w, i) => offsets[i] + w);
|
|
111
|
+
const [lastIndex, setLastIndex] = React.useState(navigationState.index);
|
|
112
|
+
const [jumpRange, setJumpRange] = React.useState(null);
|
|
113
|
+
if (navigationState.index !== lastIndex) {
|
|
114
|
+
setLastIndex(navigationState.index);
|
|
115
|
+
if (Math.abs(navigationState.index - lastIndex) > 1) {
|
|
116
|
+
setJumpRange({
|
|
117
|
+
from: lastIndex,
|
|
118
|
+
to: navigationState.index
|
|
119
|
+
});
|
|
120
|
+
}
|
|
134
121
|
}
|
|
135
|
-
|
|
122
|
+
React.useEffect(() => {
|
|
123
|
+
if (jumpRange == null) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const timer = setTimeout(() => {
|
|
127
|
+
setJumpRange(null);
|
|
128
|
+
}, 500);
|
|
129
|
+
return () => clearTimeout(timer);
|
|
130
|
+
}, [jumpRange]);
|
|
136
131
|
|
|
137
|
-
//
|
|
138
|
-
//
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
132
|
+
// Primary tabs use stretch animation
|
|
133
|
+
// Secondary tabs and multi-tab jumps slide linearly
|
|
134
|
+
const shouldStretch = variant === 'primary' && jumpRange == null;
|
|
135
|
+
const trailingSamples = shouldStretch ? TRAILING_EDGE_SAMPLES : null;
|
|
136
|
+
const leadingSamples = shouldStretch ? LEADING_EDGE_SAMPLES : null;
|
|
137
|
+
const offset = easedInterpolate(offsets, trailingSamples);
|
|
138
|
+
const rightEdge = easedInterpolate(rightEdges, leadingSamples);
|
|
139
|
+
const containerWidth = Animated.subtract(rightEdge, offset);
|
|
140
|
+
const sideFillWidth = Animated.divide(Animated.subtract(containerWidth, leftPieceWidth + rightPieceWidth), 2);
|
|
141
|
+
const sideFillScale = Animated.add(sideFillWidth, CAP_FILL_OVERLAP);
|
|
142
|
+
if (Platform.OS === 'web') {
|
|
143
|
+
const centerFillStart = Animated.add(sideFillWidth, leftPieceWidth);
|
|
144
|
+
const positioned = typeof containerStart === 'number' ? Animated.add(offset, containerStart) : offset;
|
|
145
|
+
|
|
146
|
+
// Web can't reliably scale via transforms
|
|
147
|
+
// So the fills use animated `width` instead of `scaleX`
|
|
148
|
+
// See https://github.com/react-navigation/react-navigation/pull/11440
|
|
149
|
+
containerLayout = {
|
|
150
|
+
width: containerWidth,
|
|
151
|
+
...(direction === 'rtl' ? {
|
|
152
|
+
right: positioned
|
|
153
|
+
} : {
|
|
154
|
+
left: positioned
|
|
155
|
+
})
|
|
156
|
+
};
|
|
157
|
+
leftFillStyle = {
|
|
158
|
+
position: 'absolute',
|
|
159
|
+
start: leftRadiusWidth,
|
|
160
|
+
width: sideFillScale
|
|
161
|
+
};
|
|
162
|
+
centerFillStyle = {
|
|
163
|
+
position: 'absolute',
|
|
164
|
+
start: centerFillStart,
|
|
165
|
+
width: sideFillWidth
|
|
166
|
+
};
|
|
167
|
+
rightCapStyle = {
|
|
168
|
+
position: 'absolute',
|
|
169
|
+
end: 0
|
|
170
|
+
};
|
|
171
|
+
rightFillStyle = {
|
|
172
|
+
position: 'absolute',
|
|
173
|
+
end: rightRadiusWidth,
|
|
174
|
+
width: sideFillScale
|
|
167
175
|
};
|
|
168
|
-
delete rest.width;
|
|
169
|
-
if (isCentered) {
|
|
170
|
-
if (rest.margin === 'auto') {
|
|
171
|
-
delete rest.margin;
|
|
172
|
-
}
|
|
173
|
-
if (rest.marginHorizontal === 'auto') {
|
|
174
|
-
delete rest.marginHorizontal;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
finalStyle = rest;
|
|
178
176
|
} else {
|
|
179
|
-
|
|
177
|
+
const directionSign = direction === 'rtl' ? -1 : 1;
|
|
178
|
+
const translateX = Animated.multiply(offset, directionSign);
|
|
179
|
+
const centerFillTranslateX = Animated.multiply(Animated.divide(sideFillWidth, 2), directionSign);
|
|
180
|
+
const rightCapTranslateX = Animated.multiply(Animated.subtract(containerWidth, rightPieceWidth), directionSign);
|
|
181
|
+
containerLayout = {
|
|
182
|
+
start: containerStart ?? 0,
|
|
183
|
+
end: containerEnd ?? 0,
|
|
184
|
+
transform: [{
|
|
185
|
+
translateX
|
|
186
|
+
}]
|
|
187
|
+
};
|
|
188
|
+
leftFillStyle = {
|
|
189
|
+
position: 'absolute',
|
|
190
|
+
start: leftRadiusWidth,
|
|
191
|
+
width: 1,
|
|
192
|
+
transformOrigin: isRTL ? 'right center' : 'left center',
|
|
193
|
+
transform: [{
|
|
194
|
+
scaleX: sideFillScale
|
|
195
|
+
}]
|
|
196
|
+
};
|
|
197
|
+
centerFillStyle = {
|
|
198
|
+
position: 'absolute',
|
|
199
|
+
start: leftPieceWidth,
|
|
200
|
+
width: 1,
|
|
201
|
+
transformOrigin: isRTL ? 'right center' : 'left center',
|
|
202
|
+
transform: [{
|
|
203
|
+
translateX: centerFillTranslateX
|
|
204
|
+
}, {
|
|
205
|
+
scaleX: sideFillWidth
|
|
206
|
+
}]
|
|
207
|
+
};
|
|
208
|
+
rightCapStyle = {
|
|
209
|
+
position: 'absolute',
|
|
210
|
+
start: 0,
|
|
211
|
+
transform: [{
|
|
212
|
+
translateX: rightCapTranslateX
|
|
213
|
+
}]
|
|
214
|
+
};
|
|
215
|
+
rightFillStyle = {
|
|
216
|
+
position: 'absolute',
|
|
217
|
+
end: rightRadiusWidth,
|
|
218
|
+
width: 1,
|
|
219
|
+
transformOrigin: isRTL ? 'left center' : 'right center',
|
|
220
|
+
transform: [{
|
|
221
|
+
scaleX: sideFillScale
|
|
222
|
+
}]
|
|
223
|
+
};
|
|
180
224
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
225
|
+
|
|
226
|
+
// The tab widths may be measured asynchronously
|
|
227
|
+
// So we show the indicator when we have widths till focused tab
|
|
228
|
+
const indicatorVisible = widths.slice(0, navigationState.index + 1).every((w, i) => w > 0 && offsets[i] >= 0);
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* We render the indicator in multiple pieces
|
|
232
|
+
* So we can preserve border radii when the indicator is scaled with transform
|
|
233
|
+
* We use 3 pieces for the inner fill as the math isn't correct on Android
|
|
234
|
+
* So using 1 or 2 pieces result in misalignment or gaps.
|
|
235
|
+
* Using 3 pieces lets us cover most space from all directions.
|
|
236
|
+
*
|
|
237
|
+
* [left fixed cap [left scaled fill >>>]]
|
|
238
|
+
* [center scaled fill]
|
|
239
|
+
* [[<<< right scaled fill] right fixed cap]
|
|
240
|
+
*/
|
|
241
|
+
return /*#__PURE__*/_jsxs(Animated.View, {
|
|
242
|
+
style: [styles.indicator, {
|
|
243
|
+
height,
|
|
244
|
+
opacity: indicatorVisible ? 1 : 0
|
|
245
|
+
}, containerLayout, restStyle],
|
|
246
|
+
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
247
|
+
style: [{
|
|
248
|
+
...(isRTL ? {
|
|
249
|
+
borderTopEndRadius,
|
|
250
|
+
borderBottomEndRadius
|
|
251
|
+
} : {
|
|
252
|
+
borderTopStartRadius,
|
|
253
|
+
borderBottomStartRadius
|
|
254
|
+
}),
|
|
255
|
+
borderTopLeftRadius,
|
|
256
|
+
borderBottomLeftRadius,
|
|
257
|
+
height,
|
|
258
|
+
width: leftPieceWidth,
|
|
259
|
+
backgroundColor
|
|
260
|
+
}, styles.cap],
|
|
261
|
+
children: /*#__PURE__*/_jsx(Animated.View, {
|
|
262
|
+
style: [{
|
|
263
|
+
height,
|
|
264
|
+
backgroundColor
|
|
265
|
+
}, leftFillStyle]
|
|
266
|
+
})
|
|
267
|
+
}), /*#__PURE__*/_jsx(Animated.View, {
|
|
268
|
+
style: [{
|
|
269
|
+
height,
|
|
270
|
+
backgroundColor
|
|
271
|
+
}, centerFillStyle]
|
|
272
|
+
}), /*#__PURE__*/_jsx(Animated.View, {
|
|
273
|
+
style: [{
|
|
274
|
+
...(isRTL ? {
|
|
275
|
+
borderTopStartRadius,
|
|
276
|
+
borderBottomStartRadius
|
|
277
|
+
} : {
|
|
278
|
+
borderTopEndRadius,
|
|
279
|
+
borderBottomEndRadius
|
|
280
|
+
}),
|
|
281
|
+
borderTopRightRadius,
|
|
282
|
+
borderBottomRightRadius,
|
|
283
|
+
height,
|
|
284
|
+
width: rightPieceWidth,
|
|
285
|
+
backgroundColor
|
|
286
|
+
}, rightCapStyle],
|
|
287
|
+
children: /*#__PURE__*/_jsx(Animated.View, {
|
|
288
|
+
style: [{
|
|
289
|
+
height,
|
|
290
|
+
backgroundColor
|
|
291
|
+
}, rightFillStyle]
|
|
292
|
+
})
|
|
293
|
+
})]
|
|
186
294
|
});
|
|
187
295
|
}
|
|
188
296
|
const styles = StyleSheet.create({
|
|
189
297
|
indicator: {
|
|
190
|
-
|
|
298
|
+
flexDirection: 'row',
|
|
299
|
+
justifyContent: 'center',
|
|
191
300
|
position: 'absolute',
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
301
|
+
bottom: 0
|
|
302
|
+
},
|
|
303
|
+
defaults: {
|
|
304
|
+
backgroundColor: TAB_BAR_PRIMARY_ACTIVE_COLOR,
|
|
195
305
|
height: 2
|
|
306
|
+
},
|
|
307
|
+
cap: {
|
|
308
|
+
position: 'absolute',
|
|
309
|
+
start: 0
|
|
196
310
|
}
|
|
197
311
|
});
|
|
198
312
|
//# sourceMappingURL=TabBarIndicator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Animated","Easing","Platform","StyleSheet","useAnimatedValue","jsx","_jsx","useNativeDriver","OS","calculateSize","value","referenceWidth","endsWith","parsed","parseFloat","Number","isFinite","undefined","getIndicatorWidthWithMargins","width","style","direction","marginHorizontal","margin","leftMargin","marginStart","marginEnd","marginLeft","rightMargin","marginRight","Math","max","getIndicatorWidth","tabWidth","customWidth","getTranslateX","position","routes","getTabWidth","gap","getWidth","inputRange","map","_","i","outputRange","sumTabWidth","j","indicatorWidth","tabOffset","translateX","interpolate","extrapolate","multiply","TabBarIndicator","navigationState","children","isIndicatorShown","useRef","isWidthDynamic","flattenedStyle","flatten","hasCustomIndicatorWidth","constantIndicatorWidth","isCentered","getCenteredIndicatorWidth","opacity","indicatorVisible","slice","index","every","r","useEffect","animation","fadeInIndicator","current","timing","toValue","duration","easing","in","linear","start","finished","stop","transform","length","push","tabW","scaleX","styleList","translate","offset","add","right","left","finalStyle","rest","View","styles","indicator","create","backgroundColor","bottom","end","height"],"sourceRoot":"../../src","sources":["TabBarIndicator.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Animated","Easing","Platform","StyleSheet","TAB_BAR_PRIMARY_ACTIVE_COLOR","jsx","_jsx","jsxs","_jsxs","CAP_FILL_OVERLAP","EASING_SAMPLE_COUNT","samplePoints","easing","Array","from","length","_","i","TRAILING_EDGE_SAMPLES","bezier","LEADING_EDGE_SAMPLES","TabBarIndicator","variant","widths","offsets","navigationState","position","direction","style","isRTL","flattenedStyle","flatten","styles","defaults","backgroundColor","borderRadius","borderBottomEndRadius","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStartRadius","borderTopEndRadius","borderTopLeftRadius","borderTopRightRadius","borderTopStartRadius","height","start","indicatorStart","end","indicatorEnd","left","indicatorLeft","right","indicatorRight","restStyle","width","margin","marginHorizontal","marginStart","marginEnd","marginLeft","marginRight","containerStart","containerEnd","Error","leftRadiusWidth","Math","max","rightRadiusWidth","leftPieceWidth","rightPieceWidth","routes","easedInterpolate","values","samples","jumpRange","inputRange","to","outputRange","map","interpolate","extrapolate","j","push","containerLayout","leftFillStyle","centerFillStyle","rightCapStyle","rightFillStyle","rightEdges","w","lastIndex","setLastIndex","useState","index","setJumpRange","abs","useEffect","timer","setTimeout","clearTimeout","shouldStretch","trailingSamples","leadingSamples","offset","rightEdge","containerWidth","subtract","sideFillWidth","divide","sideFillScale","add","OS","centerFillStart","positioned","directionSign","translateX","multiply","centerFillTranslateX","rightCapTranslateX","transform","transformOrigin","scaleX","indicatorVisible","slice","every","View","indicator","opacity","children","cap","create","flexDirection","justifyContent","bottom"],"sourceRoot":"../../src","sources":["TabBarIndicator.tsx"],"mappings":"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","ignoreList":[]}
|