@oxyhq/bloom 0.54.0 → 0.54.1
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/tab-bar/TabBarBase.js +101 -16
- package/lib/commonjs/tab-bar/TabBarBase.js.map +1 -1
- package/lib/commonjs/tab-bar/shared.js +15 -1
- package/lib/commonjs/tab-bar/shared.js.map +1 -1
- package/lib/module/tab-bar/TabBarBase.js +103 -18
- package/lib/module/tab-bar/TabBarBase.js.map +1 -1
- package/lib/module/tab-bar/shared.js +14 -0
- package/lib/module/tab-bar/shared.js.map +1 -1
- package/lib/typescript/commonjs/tab-bar/TabBarBase.d.ts.map +1 -1
- package/lib/typescript/commonjs/tab-bar/shared.d.ts +13 -0
- package/lib/typescript/commonjs/tab-bar/shared.d.ts.map +1 -1
- package/lib/typescript/commonjs/tab-bar/types.d.ts +12 -0
- package/lib/typescript/commonjs/tab-bar/types.d.ts.map +1 -1
- package/lib/typescript/module/tab-bar/TabBarBase.d.ts.map +1 -1
- package/lib/typescript/module/tab-bar/shared.d.ts +13 -0
- package/lib/typescript/module/tab-bar/shared.d.ts.map +1 -1
- package/lib/typescript/module/tab-bar/types.d.ts +12 -0
- package/lib/typescript/module/tab-bar/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/TabBarNoSelection.test.tsx +458 -0
- package/src/__tests__/TabBarReanimatedDeps.test.ts +28 -4
- package/src/__tests__/animated-style-deps.test.ts +30 -6
- package/src/tab-bar/TabBar.stories.tsx +52 -1
- package/src/tab-bar/TabBarBase.tsx +113 -31
- package/src/tab-bar/shared.ts +12 -0
- package/src/tab-bar/types.ts +12 -0
|
@@ -62,10 +62,31 @@ function TabBarBody({
|
|
|
62
62
|
} = (0, _reactNative.useWindowDimensions)();
|
|
63
63
|
const minimized = (0, _minimizeContext.useMinimizeState)();
|
|
64
64
|
const progress = minimized.progress;
|
|
65
|
+
const tabCount = Math.max(_react.Children.count(children), 1);
|
|
66
|
+
|
|
67
|
+
// Is a tab selected at all?
|
|
68
|
+
//
|
|
69
|
+
// The two states this distinguishes are NOT the same thing, and collapsing
|
|
70
|
+
// them would silently kill the highlight for every router consumer:
|
|
71
|
+
//
|
|
72
|
+
// - `activeIndex === undefined` is the FOCUS-DRIVEN path. The bar is not
|
|
73
|
+
// the writer at all — each `TabBarButton` supplies `isFocused` and drives
|
|
74
|
+
// the highlight itself (that is how the adapter keeps it correct through
|
|
75
|
+
// deep links and back gestures), so from the bar's side there is always a
|
|
76
|
+
// selection and the highlight is always visible.
|
|
77
|
+
// - NO SELECTION is `activeIndex` being a number that names no tab:
|
|
78
|
+
// negative, past the last tab, or fractional. Every consumer whose route
|
|
79
|
+
// set is larger than its tab set produces one — a `usePathname()`-derived
|
|
80
|
+
// index is -1 on every screen that is not a tab — and the highlight must
|
|
81
|
+
// then be gone rather than parked outside the pill.
|
|
82
|
+
const hasSelection = activeIndex === undefined || Number.isInteger(activeIndex) && activeIndex >= 0 && activeIndex < tabCount;
|
|
65
83
|
const slideIndex = (0, _reactNativeReanimated.useSharedValue)(0);
|
|
84
|
+
// Seeded from the CURRENT state, not from 0: a bar that mounts with a
|
|
85
|
+
// selection must show its highlight on the first frame exactly as it always
|
|
86
|
+
// has, and one that mounts without a selection must never flash it.
|
|
87
|
+
const highlightOpacity = (0, _reactNativeReanimated.useSharedValue)(hasSelection ? 1 : 0);
|
|
66
88
|
const isDragging = (0, _reactNativeReanimated.useSharedValue)(false);
|
|
67
89
|
const lastTicked = (0, _reactNativeReanimated.useSharedValue)(-1);
|
|
68
|
-
const tabCount = Math.max(_react.Children.count(children), 1);
|
|
69
90
|
const theme = (0, _shared.useTabBarTheme)(themeOverrides);
|
|
70
91
|
const impact = (0, _useHaptics.useHaptics)();
|
|
71
92
|
|
|
@@ -109,8 +130,25 @@ function TabBarBody({
|
|
|
109
130
|
if (activeIndex === undefined) return;
|
|
110
131
|
// While scrubbing the finger owns the highlight; never fight it.
|
|
111
132
|
if (isDragging.value) return;
|
|
112
|
-
|
|
113
|
-
|
|
133
|
+
if (!hasSelection) {
|
|
134
|
+
// Fade out where it stands. `slideIndex` is deliberately left alone: it
|
|
135
|
+
// is the highlight's POSITION, and there is no position that means
|
|
136
|
+
// "nowhere" — springing it to a sentinel would drag the capsule across
|
|
137
|
+
// the bar on its way out, dragging the active tint over every tab it
|
|
138
|
+
// passed. Visibility is the thing that changed, so visibility is the only
|
|
139
|
+
// thing that animates.
|
|
140
|
+
highlightOpacity.value = (0, _reactNativeReanimated.withTiming)(0, _shared.HIGHLIGHT_FADE);
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
// Coming back from fully hidden the capsule APPEARS at the new tab instead
|
|
144
|
+
// of travelling to it: a slide says "the selection moved from here to
|
|
145
|
+
// there", and while it was invisible there was no "here" — sliding from the
|
|
146
|
+
// stale index would animate out of a position the user never saw, and would
|
|
147
|
+
// light up every tab in between on the way. Interrupted mid-fade it is
|
|
148
|
+
// still on screen, so from there it slides as it always does.
|
|
149
|
+
slideIndex.value = highlightOpacity.value === 0 ? activeIndex : (0, _reactNativeReanimated.withSpring)(activeIndex, _shared.SLIDE_SPRING);
|
|
150
|
+
highlightOpacity.value = (0, _reactNativeReanimated.withTiming)(1, _shared.HIGHLIGHT_FADE);
|
|
151
|
+
}, [activeIndex, hasSelection, slideIndex, highlightOpacity, isDragging]);
|
|
114
152
|
|
|
115
153
|
// Scrubbing: the highlight tracks the finger 1:1 while dragging (no spring —
|
|
116
154
|
// it must feel attached), haptic ticks fire on boundary crossings, and
|
|
@@ -133,8 +171,17 @@ function TabBarBody({
|
|
|
133
171
|
const raw = (x - _shared.ROW_PAD_H) / itemWidth - 0.5;
|
|
134
172
|
return Math.min(Math.max(raw, 0), tabCount - 1);
|
|
135
173
|
};
|
|
136
|
-
const pan = _reactNativeGestureHandler.Gesture.Pan().activeOffsetX([-6, 6]).failOffsetY([-14, 14]).onStart(
|
|
174
|
+
const pan = _reactNativeGestureHandler.Gesture.Pan().activeOffsetX([-6, 6]).failOffsetY([-14, 14]).onStart(event => {
|
|
137
175
|
isDragging.value = true;
|
|
176
|
+
// Arming from the no-selection state: a hidden capsule has no position
|
|
177
|
+
// the finger can pick up, so it starts under the finger rather than at
|
|
178
|
+
// the index it faded out on — which would also make the first boundary
|
|
179
|
+
// tick fire against a phantom position. Mid-fade it is still visible,
|
|
180
|
+
// so it keeps the position it is at, exactly as it always has.
|
|
181
|
+
if (highlightOpacity.value === 0) {
|
|
182
|
+
slideIndex.value = indexAtX(event.x, progress.value);
|
|
183
|
+
}
|
|
184
|
+
highlightOpacity.value = (0, _reactNativeReanimated.withTiming)(1, _shared.HIGHLIGHT_FADE);
|
|
138
185
|
lastTicked.value = Math.round(slideIndex.value);
|
|
139
186
|
// Scrubbing is a deliberate bar interaction — surface the labels.
|
|
140
187
|
(0, _minimizeContext.setMinimized)(minimized, 0);
|
|
@@ -165,7 +212,10 @@ function TabBarBody({
|
|
|
165
212
|
return;
|
|
166
213
|
}
|
|
167
214
|
const index = Math.round(indexAtX(event.x, progress.value));
|
|
168
|
-
|
|
215
|
+
// Same rule as the controlled path above: appear at the tapped tab when
|
|
216
|
+
// hidden, slide to it when already on screen.
|
|
217
|
+
slideIndex.value = highlightOpacity.value === 0 ? index : (0, _reactNativeReanimated.withSpring)(index, _shared.SLIDE_SPRING);
|
|
218
|
+
highlightOpacity.value = (0, _reactNativeReanimated.withTiming)(1, _shared.HIGHLIGHT_FADE);
|
|
169
219
|
(0, _minimizeContext.setMinimized)(minimized, 0);
|
|
170
220
|
(0, _reactNativeReanimated.runOnJS)(selectIndex)(index);
|
|
171
221
|
});
|
|
@@ -184,7 +234,7 @@ function TabBarBody({
|
|
|
184
234
|
(0, _reactNativeReanimated.runOnJS)(longPressIndex)(Math.round(indexAtX(event.x, progress.value)));
|
|
185
235
|
});
|
|
186
236
|
return _reactNativeGestureHandler.Gesture.Race(pan, tap, longPress);
|
|
187
|
-
}, [barOuterWidth, tabCount, selectIndex, hasLongPress, longPressIndex, tick, isDragging, lastTicked, slideIndex, minimized, progress]);
|
|
237
|
+
}, [barOuterWidth, tabCount, selectIndex, hasLongPress, longPressIndex, tick, isDragging, lastTicked, slideIndex, highlightOpacity, minimized, progress]);
|
|
188
238
|
|
|
189
239
|
// CRITICAL — every shared value and every scalar a mapper READS must appear
|
|
190
240
|
// in its dependency array. On web WITHOUT the react-native-worklets babel
|
|
@@ -244,11 +294,16 @@ function TabBarBody({
|
|
|
244
294
|
width: itemWidth,
|
|
245
295
|
borderRadius: height / 2,
|
|
246
296
|
top: (barHeight - height) / 2,
|
|
297
|
+
// With no selection there is nothing to highlight, and the capsule has to
|
|
298
|
+
// stop being drawn: `slideIndex` is a position in tab units, so an
|
|
299
|
+
// out-of-range one is a real place — one item-width to the LEFT of the
|
|
300
|
+
// first tab, i.e. half outside the pill — not an absence.
|
|
301
|
+
opacity: highlightOpacity.value,
|
|
247
302
|
transform: [{
|
|
248
303
|
translateX: _shared.ROW_PAD_H + itemWidth * slideIndex.value
|
|
249
304
|
}]
|
|
250
305
|
};
|
|
251
|
-
}, [progress, slideIndex, barOuterWidth, tabCount]);
|
|
306
|
+
}, [progress, slideIndex, highlightOpacity, barOuterWidth, tabCount]);
|
|
252
307
|
|
|
253
308
|
// Shared with `useTabBarFootprint`, so a consumer accounting for the bar in
|
|
254
309
|
// its own layout can never drift from where the bar actually sits.
|
|
@@ -271,11 +326,12 @@ function TabBarBody({
|
|
|
271
326
|
};
|
|
272
327
|
const barContext = (0, _react.useMemo)(() => ({
|
|
273
328
|
slideIndex,
|
|
329
|
+
highlightOpacity,
|
|
274
330
|
isDragging,
|
|
275
331
|
theme,
|
|
276
332
|
activeIndex,
|
|
277
333
|
selectIndex
|
|
278
|
-
}), [slideIndex, isDragging, theme, activeIndex, selectIndex]);
|
|
334
|
+
}), [slideIndex, highlightOpacity, isDragging, theme, activeIndex, selectIndex]);
|
|
279
335
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
280
336
|
...viewProps,
|
|
281
337
|
style: [styles.root, style],
|
|
@@ -334,6 +390,7 @@ function TabBarButtonBody({
|
|
|
334
390
|
const standaloneTheme = (0, _shared.useTabBarTheme)();
|
|
335
391
|
const theme = bar?.theme ?? standaloneTheme;
|
|
336
392
|
const slideIndex = bar?.slideIndex;
|
|
393
|
+
const highlightOpacity = bar?.highlightOpacity;
|
|
337
394
|
// The two paths meet here: an explicit `isFocused` (router adapter) wins;
|
|
338
395
|
// otherwise focus comes from the bar's controlled `activeIndex`.
|
|
339
396
|
const focused = isFocused ?? bar?.activeIndex === index;
|
|
@@ -352,14 +409,37 @@ function TabBarButtonBody({
|
|
|
352
409
|
// Tint follows the sliding highlight, not navigation focus: whatever the pill
|
|
353
410
|
// is over lights up — live while scrubbing, traveling on taps. Without a bar
|
|
354
411
|
// there is nothing to follow, so it falls back to plain focus.
|
|
412
|
+
//
|
|
413
|
+
// Scaled by the highlight's own visibility, so a bar with NO selection leaves
|
|
414
|
+
// nothing lit: distance alone would keep the tab the capsule faded out on
|
|
415
|
+
// fully tinted, which is the same bug as a stray capsule wearing a different
|
|
416
|
+
// hat — a tab that looks selected while nothing is.
|
|
355
417
|
// (Deps: see the CRITICAL note in `TabBarBody`.)
|
|
356
|
-
const activeGlyphStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() =>
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
418
|
+
const activeGlyphStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
|
|
419
|
+
if (!slideIndex || !highlightOpacity) return {
|
|
420
|
+
opacity: focused ? 1 : 0
|
|
421
|
+
};
|
|
422
|
+
const proximity = 1 - Math.min(Math.abs(slideIndex.value - index), 1);
|
|
423
|
+
return {
|
|
424
|
+
opacity: highlightOpacity.value * proximity
|
|
425
|
+
};
|
|
426
|
+
}, [slideIndex, highlightOpacity, index, focused]);
|
|
427
|
+
const labelStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
|
|
428
|
+
const opacity = (0, _reactNativeReanimated.interpolate)(progress.value, [0, 0.4], [1, 0], _reactNativeReanimated.Extrapolation.CLAMP);
|
|
429
|
+
if (!slideIndex || !highlightOpacity) {
|
|
430
|
+
return {
|
|
431
|
+
opacity,
|
|
432
|
+
color: focused ? theme.activeTint : theme.inactiveTint
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
// Same quantity as the glyph crossfade above, so a label can never disagree
|
|
436
|
+
// with the icon it sits under.
|
|
437
|
+
const proximity = 1 - Math.min(Math.abs(slideIndex.value - index), 1);
|
|
438
|
+
return {
|
|
439
|
+
opacity,
|
|
440
|
+
color: (0, _reactNativeReanimated.interpolateColor)(highlightOpacity.value * proximity, [0, 1], [theme.inactiveTint, theme.activeTint])
|
|
441
|
+
};
|
|
442
|
+
}, [progress, slideIndex, highlightOpacity, index, focused, theme]);
|
|
363
443
|
|
|
364
444
|
// Height is animated EXPLICITLY (not derived from children) so the icon stays
|
|
365
445
|
// perfectly centered every frame — layout-driven sizing lags a frame behind
|
|
@@ -380,7 +460,12 @@ function TabBarButtonBody({
|
|
|
380
460
|
onPress: event => {
|
|
381
461
|
// The bar's GestureDetector normally consumes touches; this still fires
|
|
382
462
|
// for assistive-technology activation (VoiceOver) and keyboard focus.
|
|
383
|
-
if (bar)
|
|
463
|
+
if (bar) {
|
|
464
|
+
// Appear at the tab when hidden, slide to it when visible — the same
|
|
465
|
+
// rule the tap gesture and the controlled path follow.
|
|
466
|
+
bar.slideIndex.value = bar.highlightOpacity.value === 0 ? index : (0, _reactNativeReanimated.withSpring)(index, _shared.SLIDE_SPRING);
|
|
467
|
+
bar.highlightOpacity.value = (0, _reactNativeReanimated.withTiming)(1, _shared.HIGHLIGHT_FADE);
|
|
468
|
+
}
|
|
384
469
|
(0, _minimizeContext.setMinimized)(minimized, 0);
|
|
385
470
|
// Controlled path only. On the focus-driven path the trigger's own
|
|
386
471
|
// `onPress` below performs the navigation, so reporting the selection
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_interopRequireWildcard","_reactNativeSafeAreaContext","_useHaptics","_minimizeContext","_shared","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BarContext","createContext","TabBarBody","Surface","Blur","children","activeIndex","onIndexChange","onIndexLongPress","theme","themeOverrides","haptics","blur","maxWidth","style","viewProps","insets","useSafeAreaInsets","width","windowWidth","useWindowDimensions","minimized","useMinimizeState","progress","slideIndex","useSharedValue","isDragging","lastTicked","tabCount","Math","max","Children","count","useTabBarTheme","impact","useHaptics","barOuterWidth","undefined","BAR_MARGIN","min","tick","useCallback","selectIndex","index","longPressIndex","hasLongPress","useEffect","value","withSpring","SLIDE_SPRING","gesture","useMemo","indexAtX","x","minimizedValue","sideInset","interpolate","MINIMIZED_INSET","Extrapolation","CLAMP","barWidth","itemWidth","ROW_PAD_H","raw","pan","Gesture","Pan","activeOffsetX","failOffsetY","onStart","round","setMinimized","onUpdate","event","rounded","runOnJS","onFinalize","tap","Tap","maxDistance","maxDuration","onEnd","success","Race","longPress","LongPress","minDuration","LONG_PRESS_MIN_DURATION","barStyle","useAnimatedStyle","height","EXPANDED_HEIGHT","MINIMIZED_HEIGHT","inset","marginLeft","marginRight","shapeStyle","borderRadius","highlightStyle","barHeight","HIGHLIGHT_EXPANDED","HIGHLIGHT_MINIMIZED","top","transform","translateX","bottomOffset","tabBarBottomGap","bottom","constrainedWrapStyle","alignSelf","barContext","jsxs","View","styles","root","jsx","direction","intensity","position","left","right","BLUR_BLEED","barWrap","marginBottom","GestureDetector","highlight","backgroundColor","accessibilityRole","itemRow","Provider","TabBarButtonBody","Glyph","item","isFocused","onPress","pressableProps","bar","useContext","standaloneTheme","focused","activeGlyphStyle","opacity","abs","labelStyle","color","interpolateColor","activeTint","inactiveTint","boxStyle","Pressable","accessibilityState","selected","accessibilityLabel","label","state","button","itemBox","tint","size","ICON_SIZE","active","StyleSheet","absoluteFill","glyphLayer","Text","numberOfLines","createTabBar","TabBar","props","displayName","createTabBarButton","TabBarButton","create","pointerEvents","marginHorizontal","borderCurve","flex","flexDirection","alignItems","paddingHorizontal","justifyContent","paddingTop","ITEM_PAD_V","overflow","fontSize","LABEL_FONT_SIZE","fontWeight","marginTop","ITEM_GAP"],"sourceRoot":"../../../src","sources":["tab-bar/TabBarBase.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactNativeGestureHandler","_reactNativeReanimated","_interopRequireWildcard","_reactNativeSafeAreaContext","_useHaptics","_minimizeContext","_shared","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BarContext","createContext","TabBarBody","Surface","Blur","children","activeIndex","onIndexChange","onIndexLongPress","theme","themeOverrides","haptics","blur","maxWidth","style","viewProps","insets","useSafeAreaInsets","width","windowWidth","useWindowDimensions","minimized","useMinimizeState","progress","tabCount","Math","max","Children","count","hasSelection","undefined","Number","isInteger","slideIndex","useSharedValue","highlightOpacity","isDragging","lastTicked","useTabBarTheme","impact","useHaptics","barOuterWidth","BAR_MARGIN","min","tick","useCallback","selectIndex","index","longPressIndex","hasLongPress","useEffect","value","withTiming","HIGHLIGHT_FADE","withSpring","SLIDE_SPRING","gesture","useMemo","indexAtX","x","minimizedValue","sideInset","interpolate","MINIMIZED_INSET","Extrapolation","CLAMP","barWidth","itemWidth","ROW_PAD_H","raw","pan","Gesture","Pan","activeOffsetX","failOffsetY","onStart","event","round","setMinimized","onUpdate","rounded","runOnJS","onFinalize","tap","Tap","maxDistance","maxDuration","onEnd","success","Race","longPress","LongPress","minDuration","LONG_PRESS_MIN_DURATION","barStyle","useAnimatedStyle","height","EXPANDED_HEIGHT","MINIMIZED_HEIGHT","inset","marginLeft","marginRight","shapeStyle","borderRadius","highlightStyle","barHeight","HIGHLIGHT_EXPANDED","HIGHLIGHT_MINIMIZED","top","opacity","transform","translateX","bottomOffset","tabBarBottomGap","bottom","constrainedWrapStyle","alignSelf","barContext","jsxs","View","styles","root","jsx","direction","intensity","position","left","right","BLUR_BLEED","barWrap","marginBottom","GestureDetector","highlight","backgroundColor","accessibilityRole","itemRow","Provider","TabBarButtonBody","Glyph","item","isFocused","onPress","pressableProps","bar","useContext","standaloneTheme","focused","activeGlyphStyle","proximity","abs","labelStyle","color","activeTint","inactiveTint","interpolateColor","boxStyle","Pressable","accessibilityState","selected","accessibilityLabel","label","state","button","itemBox","tint","size","ICON_SIZE","active","StyleSheet","absoluteFill","glyphLayer","Text","numberOfLines","createTabBar","TabBar","props","displayName","createTabBarButton","TabBarButton","create","pointerEvents","marginHorizontal","borderCurve","flex","flexDirection","alignItems","paddingHorizontal","justifyContent","paddingTop","ITEM_PAD_V","overflow","fontSize","LABEL_FONT_SIZE","fontWeight","marginTop","ITEM_GAP"],"sourceRoot":"../../../src","sources":["tab-bar/TabBarBase.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.SLIDE_SPRING = exports.ROW_PAD_H = exports.MINIMIZED_INSET = exports.MINIMIZED_HEIGHT = exports.LONG_PRESS_MIN_DURATION = exports.LABEL_HEIGHT = exports.LABEL_FONT_SIZE = exports.LABEL_BLOCK = exports.ITEM_PAD_V = exports.ITEM_GAP = exports.ICON_SIZE = exports.HIGHLIGHT_MINIMIZED = exports.HIGHLIGHT_EXPANDED = exports.EXPANDED_HEIGHT = exports.BLUR_BLEED = exports.BAR_MARGIN = void 0;
|
|
6
|
+
exports.SLIDE_SPRING = exports.ROW_PAD_H = exports.MINIMIZED_INSET = exports.MINIMIZED_HEIGHT = exports.LONG_PRESS_MIN_DURATION = exports.LABEL_HEIGHT = exports.LABEL_FONT_SIZE = exports.LABEL_BLOCK = exports.ITEM_PAD_V = exports.ITEM_GAP = exports.ICON_SIZE = exports.HIGHLIGHT_MINIMIZED = exports.HIGHLIGHT_FADE = exports.HIGHLIGHT_EXPANDED = exports.EXPANDED_HEIGHT = exports.BLUR_BLEED = exports.BAR_MARGIN = void 0;
|
|
7
7
|
exports.resolveTabBarTheme = resolveTabBarTheme;
|
|
8
8
|
exports.tabBarBottomGap = tabBarBottomGap;
|
|
9
9
|
exports.useTabBarTheme = useTabBarTheme;
|
|
@@ -86,6 +86,20 @@ const SLIDE_SPRING = exports.SLIDE_SPRING = {
|
|
|
86
86
|
dampingRatio: 0.82
|
|
87
87
|
};
|
|
88
88
|
|
|
89
|
+
/**
|
|
90
|
+
* Fade for the highlight coming and going when the selection does — an
|
|
91
|
+
* `activeIndex` that names no tab (see `TabBarProps.activeIndex`).
|
|
92
|
+
*
|
|
93
|
+
* A timing, not a spring, and deliberately shorter than {@link SLIDE_SPRING}:
|
|
94
|
+
* appearing and disappearing is a change of STATE, not a movement, so it must
|
|
95
|
+
* not read as a second animation racing the slide. The capsule fades where it
|
|
96
|
+
* stands — moving it out of view instead would drag it the length of the bar on
|
|
97
|
+
* its way out and sweep the active tint across every tab it passed.
|
|
98
|
+
*/
|
|
99
|
+
const HIGHLIGHT_FADE = exports.HIGHLIGHT_FADE = {
|
|
100
|
+
duration: 160
|
|
101
|
+
};
|
|
102
|
+
|
|
89
103
|
/**
|
|
90
104
|
* How long a press must be held before `onIndexLongPress` fires.
|
|
91
105
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_colorUtils","_useTheme","EXPANDED_HEIGHT","exports","MINIMIZED_HEIGHT","MINIMIZED_INSET","BAR_MARGIN","ROW_PAD_H","LABEL_HEIGHT","ICON_SIZE","ITEM_GAP","LABEL_BLOCK","ITEM_PAD_V","HIGHLIGHT_EXPANDED","HIGHLIGHT_MINIMIZED","BLUR_BLEED","LABEL_FONT_SIZE","SAFE_AREA_ABSORBED","MIN_BOTTOM_GAP","tabBarBottomGap","bottomInset","Math","max","SLIDE_SPRING","duration","dampingRatio","LONG_PRESS_MIN_DURATION","resolveTabBarTheme","colors","overrides","activeTint","text","inactiveTint","textSecondary","highlight","contrast50","glassTint","withAlpha","background","solidFallback","backgroundSecondary","useTabBarTheme","useTheme","useMemo"],"sourceRoot":"../../../src","sources":["tab-bar/shared.ts"],"mappings":";;;;;;;;;AAUA,IAAAA,MAAA,GAAAC,OAAA;AAIA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AAhBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,MAAMG,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG,EAAE;AAC1B,MAAME,gBAAgB,GAAAD,OAAA,CAAAC,gBAAA,GAAG,EAAE;AAClC;AACO,MAAMC,eAAe,GAAAF,OAAA,CAAAE,eAAA,GAAG,EAAE;AACjC;AACO,MAAMC,UAAU,GAAAH,OAAA,CAAAG,UAAA,GAAG,EAAE;AAC5B;AACO,MAAMC,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAG,CAAC;AACnB,MAAMC,YAAY,GAAAL,OAAA,CAAAK,YAAA,GAAG,EAAE;AACvB,MAAMC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,EAAE;AAC3B;AACA;AACA;AACA;AACO,MAAMC,QAAQ,GAAAP,OAAA,CAAAO,QAAA,GAAG,CAAC;AAClB,MAAMC,WAAW,GAAAR,OAAA,CAAAQ,WAAA,GAAGH,YAAY,GAAGE,QAAQ;AAC3C,MAAME,UAAU,GAAAT,OAAA,CAAAS,UAAA,GAAG,CAAC;AAC3B;AACO,MAAMC,kBAAkB,GAAAV,OAAA,CAAAU,kBAAA,GAAGJ,SAAS,GAAGE,WAAW,GAAGC,UAAU,GAAG,CAAC;AACnE,MAAME,mBAAmB,GAAAX,OAAA,CAAAW,mBAAA,GAAGL,SAAS,GAAGG,UAAU,GAAG,CAAC;AAC7D;AACO,MAAMG,UAAU,GAAAZ,OAAA,CAAAY,UAAA,GAAG,EAAE;AAC5B;AACO,MAAMC,eAAe,GAAAb,OAAA,CAAAa,eAAA,GAAG,GAAG;;AAElC;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,GAAG,EAAE;AAC7B;AACA,MAAMC,cAAc,GAAG,EAAE;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,eAAeA,CAACC,WAAmB,EAAU;EAC3D,OAAOC,IAAI,CAACC,GAAG,CAACF,WAAW,GAAGH,kBAAkB,EAAEC,cAAc,CAAC;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACO,MAAMK,YAAY,GAAApB,OAAA,CAAAoB,YAAA,GAAG;EAAEC,QAAQ,EAAE,GAAG;EAAEC,YAAY,EAAE;AAAK,CAAC;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,
|
|
1
|
+
{"version":3,"names":["_react","require","_colorUtils","_useTheme","EXPANDED_HEIGHT","exports","MINIMIZED_HEIGHT","MINIMIZED_INSET","BAR_MARGIN","ROW_PAD_H","LABEL_HEIGHT","ICON_SIZE","ITEM_GAP","LABEL_BLOCK","ITEM_PAD_V","HIGHLIGHT_EXPANDED","HIGHLIGHT_MINIMIZED","BLUR_BLEED","LABEL_FONT_SIZE","SAFE_AREA_ABSORBED","MIN_BOTTOM_GAP","tabBarBottomGap","bottomInset","Math","max","SLIDE_SPRING","duration","dampingRatio","HIGHLIGHT_FADE","LONG_PRESS_MIN_DURATION","resolveTabBarTheme","colors","overrides","activeTint","text","inactiveTint","textSecondary","highlight","contrast50","glassTint","withAlpha","background","solidFallback","backgroundSecondary","useTabBarTheme","useTheme","useMemo"],"sourceRoot":"../../../src","sources":["tab-bar/shared.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
import { Children, createContext, useCallback, useContext, useEffect, useMemo } from 'react';
|
|
19
19
|
import { Pressable, StyleSheet, useWindowDimensions, View } from 'react-native';
|
|
20
20
|
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
|
|
21
|
-
import Animated, { Extrapolation, interpolate, interpolateColor, runOnJS, useAnimatedStyle, useSharedValue, withSpring } from 'react-native-reanimated';
|
|
21
|
+
import Animated, { Extrapolation, interpolate, interpolateColor, runOnJS, useAnimatedStyle, useSharedValue, withSpring, withTiming } from 'react-native-reanimated';
|
|
22
22
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
23
23
|
import { useHaptics } from "../hooks/useHaptics.js";
|
|
24
24
|
import { setMinimized, useMinimizeState } from "./minimize-context.js";
|
|
25
|
-
import { BAR_MARGIN, BLUR_BLEED, EXPANDED_HEIGHT, HIGHLIGHT_EXPANDED, HIGHLIGHT_MINIMIZED, ICON_SIZE, ITEM_GAP, ITEM_PAD_V, LABEL_FONT_SIZE, LONG_PRESS_MIN_DURATION, MINIMIZED_HEIGHT, MINIMIZED_INSET, ROW_PAD_H, SLIDE_SPRING, tabBarBottomGap, useTabBarTheme } from "./shared.js";
|
|
25
|
+
import { BAR_MARGIN, BLUR_BLEED, EXPANDED_HEIGHT, HIGHLIGHT_EXPANDED, HIGHLIGHT_FADE, HIGHLIGHT_MINIMIZED, ICON_SIZE, ITEM_GAP, ITEM_PAD_V, LABEL_FONT_SIZE, LONG_PRESS_MIN_DURATION, MINIMIZED_HEIGHT, MINIMIZED_INSET, ROW_PAD_H, SLIDE_SPRING, tabBarBottomGap, useTabBarTheme } from "./shared.js";
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* What a `TabBarButton` needs from the bar it sits in. `null` when a button is
|
|
@@ -55,10 +55,31 @@ function TabBarBody({
|
|
|
55
55
|
} = useWindowDimensions();
|
|
56
56
|
const minimized = useMinimizeState();
|
|
57
57
|
const progress = minimized.progress;
|
|
58
|
+
const tabCount = Math.max(Children.count(children), 1);
|
|
59
|
+
|
|
60
|
+
// Is a tab selected at all?
|
|
61
|
+
//
|
|
62
|
+
// The two states this distinguishes are NOT the same thing, and collapsing
|
|
63
|
+
// them would silently kill the highlight for every router consumer:
|
|
64
|
+
//
|
|
65
|
+
// - `activeIndex === undefined` is the FOCUS-DRIVEN path. The bar is not
|
|
66
|
+
// the writer at all — each `TabBarButton` supplies `isFocused` and drives
|
|
67
|
+
// the highlight itself (that is how the adapter keeps it correct through
|
|
68
|
+
// deep links and back gestures), so from the bar's side there is always a
|
|
69
|
+
// selection and the highlight is always visible.
|
|
70
|
+
// - NO SELECTION is `activeIndex` being a number that names no tab:
|
|
71
|
+
// negative, past the last tab, or fractional. Every consumer whose route
|
|
72
|
+
// set is larger than its tab set produces one — a `usePathname()`-derived
|
|
73
|
+
// index is -1 on every screen that is not a tab — and the highlight must
|
|
74
|
+
// then be gone rather than parked outside the pill.
|
|
75
|
+
const hasSelection = activeIndex === undefined || Number.isInteger(activeIndex) && activeIndex >= 0 && activeIndex < tabCount;
|
|
58
76
|
const slideIndex = useSharedValue(0);
|
|
77
|
+
// Seeded from the CURRENT state, not from 0: a bar that mounts with a
|
|
78
|
+
// selection must show its highlight on the first frame exactly as it always
|
|
79
|
+
// has, and one that mounts without a selection must never flash it.
|
|
80
|
+
const highlightOpacity = useSharedValue(hasSelection ? 1 : 0);
|
|
59
81
|
const isDragging = useSharedValue(false);
|
|
60
82
|
const lastTicked = useSharedValue(-1);
|
|
61
|
-
const tabCount = Math.max(Children.count(children), 1);
|
|
62
83
|
const theme = useTabBarTheme(themeOverrides);
|
|
63
84
|
const impact = useHaptics();
|
|
64
85
|
|
|
@@ -102,8 +123,25 @@ function TabBarBody({
|
|
|
102
123
|
if (activeIndex === undefined) return;
|
|
103
124
|
// While scrubbing the finger owns the highlight; never fight it.
|
|
104
125
|
if (isDragging.value) return;
|
|
105
|
-
|
|
106
|
-
|
|
126
|
+
if (!hasSelection) {
|
|
127
|
+
// Fade out where it stands. `slideIndex` is deliberately left alone: it
|
|
128
|
+
// is the highlight's POSITION, and there is no position that means
|
|
129
|
+
// "nowhere" — springing it to a sentinel would drag the capsule across
|
|
130
|
+
// the bar on its way out, dragging the active tint over every tab it
|
|
131
|
+
// passed. Visibility is the thing that changed, so visibility is the only
|
|
132
|
+
// thing that animates.
|
|
133
|
+
highlightOpacity.value = withTiming(0, HIGHLIGHT_FADE);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
// Coming back from fully hidden the capsule APPEARS at the new tab instead
|
|
137
|
+
// of travelling to it: a slide says "the selection moved from here to
|
|
138
|
+
// there", and while it was invisible there was no "here" — sliding from the
|
|
139
|
+
// stale index would animate out of a position the user never saw, and would
|
|
140
|
+
// light up every tab in between on the way. Interrupted mid-fade it is
|
|
141
|
+
// still on screen, so from there it slides as it always does.
|
|
142
|
+
slideIndex.value = highlightOpacity.value === 0 ? activeIndex : withSpring(activeIndex, SLIDE_SPRING);
|
|
143
|
+
highlightOpacity.value = withTiming(1, HIGHLIGHT_FADE);
|
|
144
|
+
}, [activeIndex, hasSelection, slideIndex, highlightOpacity, isDragging]);
|
|
107
145
|
|
|
108
146
|
// Scrubbing: the highlight tracks the finger 1:1 while dragging (no spring —
|
|
109
147
|
// it must feel attached), haptic ticks fire on boundary crossings, and
|
|
@@ -126,8 +164,17 @@ function TabBarBody({
|
|
|
126
164
|
const raw = (x - ROW_PAD_H) / itemWidth - 0.5;
|
|
127
165
|
return Math.min(Math.max(raw, 0), tabCount - 1);
|
|
128
166
|
};
|
|
129
|
-
const pan = Gesture.Pan().activeOffsetX([-6, 6]).failOffsetY([-14, 14]).onStart(
|
|
167
|
+
const pan = Gesture.Pan().activeOffsetX([-6, 6]).failOffsetY([-14, 14]).onStart(event => {
|
|
130
168
|
isDragging.value = true;
|
|
169
|
+
// Arming from the no-selection state: a hidden capsule has no position
|
|
170
|
+
// the finger can pick up, so it starts under the finger rather than at
|
|
171
|
+
// the index it faded out on — which would also make the first boundary
|
|
172
|
+
// tick fire against a phantom position. Mid-fade it is still visible,
|
|
173
|
+
// so it keeps the position it is at, exactly as it always has.
|
|
174
|
+
if (highlightOpacity.value === 0) {
|
|
175
|
+
slideIndex.value = indexAtX(event.x, progress.value);
|
|
176
|
+
}
|
|
177
|
+
highlightOpacity.value = withTiming(1, HIGHLIGHT_FADE);
|
|
131
178
|
lastTicked.value = Math.round(slideIndex.value);
|
|
132
179
|
// Scrubbing is a deliberate bar interaction — surface the labels.
|
|
133
180
|
setMinimized(minimized, 0);
|
|
@@ -158,7 +205,10 @@ function TabBarBody({
|
|
|
158
205
|
return;
|
|
159
206
|
}
|
|
160
207
|
const index = Math.round(indexAtX(event.x, progress.value));
|
|
161
|
-
|
|
208
|
+
// Same rule as the controlled path above: appear at the tapped tab when
|
|
209
|
+
// hidden, slide to it when already on screen.
|
|
210
|
+
slideIndex.value = highlightOpacity.value === 0 ? index : withSpring(index, SLIDE_SPRING);
|
|
211
|
+
highlightOpacity.value = withTiming(1, HIGHLIGHT_FADE);
|
|
162
212
|
setMinimized(minimized, 0);
|
|
163
213
|
runOnJS(selectIndex)(index);
|
|
164
214
|
});
|
|
@@ -177,7 +227,7 @@ function TabBarBody({
|
|
|
177
227
|
runOnJS(longPressIndex)(Math.round(indexAtX(event.x, progress.value)));
|
|
178
228
|
});
|
|
179
229
|
return Gesture.Race(pan, tap, longPress);
|
|
180
|
-
}, [barOuterWidth, tabCount, selectIndex, hasLongPress, longPressIndex, tick, isDragging, lastTicked, slideIndex, minimized, progress]);
|
|
230
|
+
}, [barOuterWidth, tabCount, selectIndex, hasLongPress, longPressIndex, tick, isDragging, lastTicked, slideIndex, highlightOpacity, minimized, progress]);
|
|
181
231
|
|
|
182
232
|
// CRITICAL — every shared value and every scalar a mapper READS must appear
|
|
183
233
|
// in its dependency array. On web WITHOUT the react-native-worklets babel
|
|
@@ -237,11 +287,16 @@ function TabBarBody({
|
|
|
237
287
|
width: itemWidth,
|
|
238
288
|
borderRadius: height / 2,
|
|
239
289
|
top: (barHeight - height) / 2,
|
|
290
|
+
// With no selection there is nothing to highlight, and the capsule has to
|
|
291
|
+
// stop being drawn: `slideIndex` is a position in tab units, so an
|
|
292
|
+
// out-of-range one is a real place — one item-width to the LEFT of the
|
|
293
|
+
// first tab, i.e. half outside the pill — not an absence.
|
|
294
|
+
opacity: highlightOpacity.value,
|
|
240
295
|
transform: [{
|
|
241
296
|
translateX: ROW_PAD_H + itemWidth * slideIndex.value
|
|
242
297
|
}]
|
|
243
298
|
};
|
|
244
|
-
}, [progress, slideIndex, barOuterWidth, tabCount]);
|
|
299
|
+
}, [progress, slideIndex, highlightOpacity, barOuterWidth, tabCount]);
|
|
245
300
|
|
|
246
301
|
// Shared with `useTabBarFootprint`, so a consumer accounting for the bar in
|
|
247
302
|
// its own layout can never drift from where the bar actually sits.
|
|
@@ -264,11 +319,12 @@ function TabBarBody({
|
|
|
264
319
|
};
|
|
265
320
|
const barContext = useMemo(() => ({
|
|
266
321
|
slideIndex,
|
|
322
|
+
highlightOpacity,
|
|
267
323
|
isDragging,
|
|
268
324
|
theme,
|
|
269
325
|
activeIndex,
|
|
270
326
|
selectIndex
|
|
271
|
-
}), [slideIndex, isDragging, theme, activeIndex, selectIndex]);
|
|
327
|
+
}), [slideIndex, highlightOpacity, isDragging, theme, activeIndex, selectIndex]);
|
|
272
328
|
return /*#__PURE__*/_jsxs(View, {
|
|
273
329
|
...viewProps,
|
|
274
330
|
style: [styles.root, style],
|
|
@@ -327,6 +383,7 @@ function TabBarButtonBody({
|
|
|
327
383
|
const standaloneTheme = useTabBarTheme();
|
|
328
384
|
const theme = bar?.theme ?? standaloneTheme;
|
|
329
385
|
const slideIndex = bar?.slideIndex;
|
|
386
|
+
const highlightOpacity = bar?.highlightOpacity;
|
|
330
387
|
// The two paths meet here: an explicit `isFocused` (router adapter) wins;
|
|
331
388
|
// otherwise focus comes from the bar's controlled `activeIndex`.
|
|
332
389
|
const focused = isFocused ?? bar?.activeIndex === index;
|
|
@@ -345,14 +402,37 @@ function TabBarButtonBody({
|
|
|
345
402
|
// Tint follows the sliding highlight, not navigation focus: whatever the pill
|
|
346
403
|
// is over lights up — live while scrubbing, traveling on taps. Without a bar
|
|
347
404
|
// there is nothing to follow, so it falls back to plain focus.
|
|
405
|
+
//
|
|
406
|
+
// Scaled by the highlight's own visibility, so a bar with NO selection leaves
|
|
407
|
+
// nothing lit: distance alone would keep the tab the capsule faded out on
|
|
408
|
+
// fully tinted, which is the same bug as a stray capsule wearing a different
|
|
409
|
+
// hat — a tab that looks selected while nothing is.
|
|
348
410
|
// (Deps: see the CRITICAL note in `TabBarBody`.)
|
|
349
|
-
const activeGlyphStyle = useAnimatedStyle(() =>
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
411
|
+
const activeGlyphStyle = useAnimatedStyle(() => {
|
|
412
|
+
if (!slideIndex || !highlightOpacity) return {
|
|
413
|
+
opacity: focused ? 1 : 0
|
|
414
|
+
};
|
|
415
|
+
const proximity = 1 - Math.min(Math.abs(slideIndex.value - index), 1);
|
|
416
|
+
return {
|
|
417
|
+
opacity: highlightOpacity.value * proximity
|
|
418
|
+
};
|
|
419
|
+
}, [slideIndex, highlightOpacity, index, focused]);
|
|
420
|
+
const labelStyle = useAnimatedStyle(() => {
|
|
421
|
+
const opacity = interpolate(progress.value, [0, 0.4], [1, 0], Extrapolation.CLAMP);
|
|
422
|
+
if (!slideIndex || !highlightOpacity) {
|
|
423
|
+
return {
|
|
424
|
+
opacity,
|
|
425
|
+
color: focused ? theme.activeTint : theme.inactiveTint
|
|
426
|
+
};
|
|
427
|
+
}
|
|
428
|
+
// Same quantity as the glyph crossfade above, so a label can never disagree
|
|
429
|
+
// with the icon it sits under.
|
|
430
|
+
const proximity = 1 - Math.min(Math.abs(slideIndex.value - index), 1);
|
|
431
|
+
return {
|
|
432
|
+
opacity,
|
|
433
|
+
color: interpolateColor(highlightOpacity.value * proximity, [0, 1], [theme.inactiveTint, theme.activeTint])
|
|
434
|
+
};
|
|
435
|
+
}, [progress, slideIndex, highlightOpacity, index, focused, theme]);
|
|
356
436
|
|
|
357
437
|
// Height is animated EXPLICITLY (not derived from children) so the icon stays
|
|
358
438
|
// perfectly centered every frame — layout-driven sizing lags a frame behind
|
|
@@ -373,7 +453,12 @@ function TabBarButtonBody({
|
|
|
373
453
|
onPress: event => {
|
|
374
454
|
// The bar's GestureDetector normally consumes touches; this still fires
|
|
375
455
|
// for assistive-technology activation (VoiceOver) and keyboard focus.
|
|
376
|
-
if (bar)
|
|
456
|
+
if (bar) {
|
|
457
|
+
// Appear at the tab when hidden, slide to it when visible — the same
|
|
458
|
+
// rule the tap gesture and the controlled path follow.
|
|
459
|
+
bar.slideIndex.value = bar.highlightOpacity.value === 0 ? index : withSpring(index, SLIDE_SPRING);
|
|
460
|
+
bar.highlightOpacity.value = withTiming(1, HIGHLIGHT_FADE);
|
|
461
|
+
}
|
|
377
462
|
setMinimized(minimized, 0);
|
|
378
463
|
// Controlled path only. On the focus-driven path the trigger's own
|
|
379
464
|
// `onPress` below performs the navigation, so reporting the selection
|