@oxyhq/bloom 1.14.0 → 1.14.2
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/docs/bottom-sheet.mdx +1 -0
- package/docs/media-flight.mdx +15 -6
- package/lib/commonjs/bottom-sheet/BottomSheetBase.js +4 -0
- package/lib/commonjs/bottom-sheet/BottomSheetBase.js.map +1 -1
- package/lib/commonjs/media-flight/MediaSurface.js +51 -10
- package/lib/commonjs/media-flight/MediaSurface.js.map +1 -1
- package/lib/commonjs/media-flight/constants.js +32 -7
- package/lib/commonjs/media-flight/constants.js.map +1 -1
- package/lib/commonjs/tab-bar/TabBarBase.js +34 -6
- package/lib/commonjs/tab-bar/TabBarBase.js.map +1 -1
- package/lib/commonjs/theme/color-scope/ColorScope.js +42 -12
- package/lib/commonjs/theme/color-scope/ColorScope.js.map +1 -1
- package/lib/commonjs/theme/color-scope/ColorScope.web.js +2 -8
- package/lib/commonjs/theme/color-scope/ColorScope.web.js.map +1 -1
- package/lib/module/bottom-sheet/BottomSheetBase.js +5 -1
- package/lib/module/bottom-sheet/BottomSheetBase.js.map +1 -1
- package/lib/module/media-flight/MediaSurface.js +52 -11
- package/lib/module/media-flight/MediaSurface.js.map +1 -1
- package/lib/module/media-flight/constants.js +31 -6
- package/lib/module/media-flight/constants.js.map +1 -1
- package/lib/module/tab-bar/TabBarBase.js +35 -7
- package/lib/module/tab-bar/TabBarBase.js.map +1 -1
- package/lib/module/theme/color-scope/ColorScope.js +45 -13
- package/lib/module/theme/color-scope/ColorScope.js.map +1 -1
- package/lib/module/theme/color-scope/ColorScope.web.js +3 -9
- package/lib/module/theme/color-scope/ColorScope.web.js.map +1 -1
- package/lib/typescript/commonjs/bottom-sheet/BottomSheetBase.d.ts.map +1 -1
- package/lib/typescript/commonjs/bottom-sheet/types.d.ts +6 -0
- package/lib/typescript/commonjs/bottom-sheet/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/media-flight/MediaSurface.d.ts.map +1 -1
- package/lib/typescript/commonjs/media-flight/constants.d.ts +30 -6
- package/lib/typescript/commonjs/media-flight/constants.d.ts.map +1 -1
- package/lib/typescript/commonjs/media-flight/types.d.ts +7 -2
- package/lib/typescript/commonjs/media-flight/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/tab-bar/TabBarBase.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-scope/ColorScope.d.ts +36 -2
- package/lib/typescript/commonjs/theme/color-scope/ColorScope.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-scope/ColorScope.web.d.ts +6 -2
- package/lib/typescript/commonjs/theme/color-scope/ColorScope.web.d.ts.map +1 -1
- package/lib/typescript/module/bottom-sheet/BottomSheetBase.d.ts.map +1 -1
- package/lib/typescript/module/bottom-sheet/types.d.ts +6 -0
- package/lib/typescript/module/bottom-sheet/types.d.ts.map +1 -1
- package/lib/typescript/module/media-flight/MediaSurface.d.ts.map +1 -1
- package/lib/typescript/module/media-flight/constants.d.ts +30 -6
- package/lib/typescript/module/media-flight/constants.d.ts.map +1 -1
- package/lib/typescript/module/media-flight/types.d.ts +7 -2
- package/lib/typescript/module/media-flight/types.d.ts.map +1 -1
- package/lib/typescript/module/tab-bar/TabBarBase.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-scope/ColorScope.d.ts +36 -2
- package/lib/typescript/module/theme/color-scope/ColorScope.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-scope/ColorScope.web.d.ts +6 -2
- package/lib/typescript/module/theme/color-scope/ColorScope.web.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/support/collision-fixture-barrel.ts +20 -0
- package/src/__tests__/support/constructed-style-sheets.ts +68 -0
- package/src/__tests__/support/press-host.ts +30 -0
- package/src/__tests__/support/rendered-style.ts +99 -0
- package/src/__tests__/support/unread-hook-fixture.ts +33 -0
- package/src/bottom-sheet/BottomSheetBase.tsx +13 -0
- package/src/bottom-sheet/types.ts +6 -0
- package/src/media-flight/MediaSurface.tsx +60 -14
- package/src/media-flight/constants.ts +31 -6
- package/src/media-flight/types.ts +7 -2
- package/src/tab-bar/TabBarBase.tsx +41 -7
- package/src/theme/__tests__/__fixtures__/golden-resolved-tokens.json +7682 -0
- package/src/theme/__tests__/fixtures/color-engine-golden.json +1 -0
- package/src/theme/color-scope/ColorScope.tsx +53 -12
- package/src/theme/color-scope/ColorScope.web.tsx +10 -8
|
@@ -12,6 +12,43 @@ var _buildTheme = require("../build-theme.js");
|
|
|
12
12
|
var _styleBuilder = require("./style-builder.js");
|
|
13
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
14
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
|
+
/**
|
|
16
|
+
* The variables a scope publishes when it carries no preset of its own.
|
|
17
|
+
*
|
|
18
|
+
* Empty and shared at module scope, both deliberately: react-native-css's
|
|
19
|
+
* `VariableContextProvider` MERGES its value over the inherited one, so an empty
|
|
20
|
+
* record leaves the parent scope's variables exactly as they were, and one
|
|
21
|
+
* shared identity keeps that provider's `useMemo` from recomputing every render.
|
|
22
|
+
*/const NO_VARS = Object.freeze({});
|
|
23
|
+
/**
|
|
24
|
+
* A subtree themed by one color preset.
|
|
25
|
+
*
|
|
26
|
+
* THE SHAPE OF WHAT THIS RETURNS DOES NOT DEPEND ON `colorPreset`. Both
|
|
27
|
+
* providers are mounted unconditionally, and an absent preset is expressed as
|
|
28
|
+
* pass-through VALUES ({@link NO_VARS}, the parent's own theme) rather than as a
|
|
29
|
+
* shorter tree. That is a correctness requirement, not a tidiness one, and it
|
|
30
|
+
* cost a real bug to learn:
|
|
31
|
+
*
|
|
32
|
+
* The no-preset path used to be `return <>{children}</>` — two provider levels
|
|
33
|
+
* shallower than the preset path. React reconciles by POSITION, so the first
|
|
34
|
+
* render after a preset arrives finds different element types at that position
|
|
35
|
+
* and unmounts the whole subtree to mount a new one. Every consumer that resolves
|
|
36
|
+
* its preset asynchronously — a profile screen learning the account's color a
|
|
37
|
+
* few hundred milliseconds after it opens — therefore remounted everything below
|
|
38
|
+
* the scope, including its own navigator.
|
|
39
|
+
*
|
|
40
|
+
* In Mention that scope sits above the app's route stack: the remount rebuilt
|
|
41
|
+
* the `[username]` navigator from scratch, which dropped the pushed child route
|
|
42
|
+
* AND its `username` param, and the profile a reader had just tapped rendered
|
|
43
|
+
* itself as "Profile not found" (mention#…, reproduced from the reel on a Pixel
|
|
44
|
+
* 10 Pro; the A/B was pinning `colorPreset` and watching the collapse stop).
|
|
45
|
+
* Remounting also throws away scroll positions, video players and in-flight
|
|
46
|
+
* state, so the same bug was costing far more than the one visible symptom.
|
|
47
|
+
*
|
|
48
|
+
* If a future change wants the no-preset case to render less, it has to keep the
|
|
49
|
+
* element types at this position identical across a preset change, or the
|
|
50
|
+
* remount comes back.
|
|
51
|
+
*/
|
|
15
52
|
function BloomColorScope({
|
|
16
53
|
colorPreset,
|
|
17
54
|
asChild = false,
|
|
@@ -19,10 +56,9 @@ function BloomColorScope({
|
|
|
19
56
|
children
|
|
20
57
|
}) {
|
|
21
58
|
// All hooks are called UNCONDITIONALLY, in the same order on every render —
|
|
22
|
-
// never gate a hook behind an early return (rules of hooks). The
|
|
23
|
-
//
|
|
24
|
-
// the
|
|
25
|
-
// is absent (that render path throws below anyway).
|
|
59
|
+
// never gate a hook behind an early return (rules of hooks). The throw below
|
|
60
|
+
// happens AFTER every hook has run. `resolvedMode` falls back harmlessly when
|
|
61
|
+
// the provider is absent (that render path throws anyway).
|
|
26
62
|
const parent = (0, _react.useContext)(_BloomThemeProvider.BloomThemeContext);
|
|
27
63
|
const resolvedMode = parent?.theme.mode ?? 'light';
|
|
28
64
|
const contextValue = (0, _react.useMemo)(() => {
|
|
@@ -43,12 +79,6 @@ function BloomColorScope({
|
|
|
43
79
|
if (!parent) {
|
|
44
80
|
throw new Error('BloomColorScope must be used within a <BloomThemeProvider>');
|
|
45
81
|
}
|
|
46
|
-
// `colorPreset` undefined => the scope is a no-op; children inherit the
|
|
47
|
-
// parent scope. With `parent` present, `contextValue`/`nativeVars` are null
|
|
48
|
-
// iff `colorPreset` is absent, so this guard also narrows them to non-null.
|
|
49
|
-
if (!contextValue || !nativeVars) return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
50
|
-
children: children
|
|
51
|
-
});
|
|
52
82
|
const VariableProvider = (0, _styleBuilder.getVariableContextProvider)();
|
|
53
83
|
let content;
|
|
54
84
|
if (asChild) {
|
|
@@ -75,11 +105,11 @@ function BloomColorScope({
|
|
|
75
105
|
// Wrap the subtree in the variable provider when NativeWind is available;
|
|
76
106
|
// otherwise render as-is so we never crash on web/non-NativeWind hosts.
|
|
77
107
|
const scoped = VariableProvider ? /*#__PURE__*/(0, _jsxRuntime.jsx)(VariableProvider, {
|
|
78
|
-
value: nativeVars,
|
|
108
|
+
value: nativeVars ?? NO_VARS,
|
|
79
109
|
children: content
|
|
80
110
|
}) : content;
|
|
81
111
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_BloomThemeProvider.BloomThemeContext.Provider, {
|
|
82
|
-
value: contextValue,
|
|
112
|
+
value: contextValue ?? parent,
|
|
83
113
|
children: scoped
|
|
84
114
|
});
|
|
85
115
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_BloomThemeProvider","_buildTheme","_styleBuilder","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BloomColorScope","colorPreset","asChild","style","children","parent","useContext","BloomThemeContext","resolvedMode","theme","mode","contextValue","useMemo","buildTheme","nativeVars","buildScopeVars","Error","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_BloomThemeProvider","_buildTheme","_styleBuilder","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","NO_VARS","freeze","BloomColorScope","colorPreset","asChild","style","children","parent","useContext","BloomThemeContext","resolvedMode","theme","mode","contextValue","useMemo","buildTheme","nativeVars","buildScopeVars","Error","VariableProvider","getVariableContextProvider","content","child","Children","only","isValidElement","childStyle","props","mergedStyle","cloneElement","jsx","View","flex","scoped","value","Provider","useColorScopeStyle","scopeStyle","buildNativePresetStyle"],"sourceRoot":"../../../../src","sources":["theme/color-scope/ColorScope.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -64,12 +64,6 @@ function BloomColorScope({
|
|
|
64
64
|
if (!parent) {
|
|
65
65
|
throw new Error('BloomColorScope must be used within a <BloomThemeProvider>');
|
|
66
66
|
}
|
|
67
|
-
// `colorPreset` undefined => the scope is a no-op; children inherit the
|
|
68
|
-
// parent scope. With `parent` present, `contextValue`/`varsStyle` are null
|
|
69
|
-
// iff `colorPreset` is absent, so this guard also narrows them to non-null.
|
|
70
|
-
if (!contextValue || !varsStyle) return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
71
|
-
children: children
|
|
72
|
-
});
|
|
73
67
|
let content;
|
|
74
68
|
if (asChild) {
|
|
75
69
|
const child = _react.Children.only(children);
|
|
@@ -82,7 +76,7 @@ function BloomColorScope({
|
|
|
82
76
|
// otherwise — an array reaching a DOM node throws on commit.
|
|
83
77
|
const childStyle = child.props.style;
|
|
84
78
|
const childIsRnStyled = Array.isArray(childStyle) || typeof childStyle === 'number';
|
|
85
|
-
const mergedStyle = childIsRnStyled ? [varsStyle, style, childStyle] : {
|
|
79
|
+
const mergedStyle = childIsRnStyled ? [varsStyle ?? undefined, style, childStyle] : {
|
|
86
80
|
...varsStyle,
|
|
87
81
|
...style,
|
|
88
82
|
...(childStyle || undefined)
|
|
@@ -103,7 +97,7 @@ function BloomColorScope({
|
|
|
103
97
|
});
|
|
104
98
|
}
|
|
105
99
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_BloomThemeProvider.BloomThemeContext.Provider, {
|
|
106
|
-
value: contextValue,
|
|
100
|
+
value: contextValue ?? parent,
|
|
107
101
|
children: content
|
|
108
102
|
});
|
|
109
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_BloomThemeProvider","_buildTheme","_styleBuilder","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","buildWebScopeVars","colorPreset","mode","buildScopeVars","BloomColorScope","asChild","style","children","parent","useContext","BloomThemeContext","resolvedMode","theme","contextValue","useMemo","buildTheme","varsStyle","Error","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_BloomThemeProvider","_buildTheme","_styleBuilder","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","buildWebScopeVars","colorPreset","mode","buildScopeVars","BloomColorScope","asChild","style","children","parent","useContext","BloomThemeContext","resolvedMode","theme","contextValue","useMemo","buildTheme","varsStyle","Error","content","child","Children","only","isValidElement","childStyle","props","childIsRnStyled","Array","isArray","mergedStyle","undefined","cloneElement","jsx","Provider","value","useColorScopeStyle","scopeStyle"],"sourceRoot":"../../../../src","sources":["theme/color-scope/ColorScope.web.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ import { View, StyleSheet, Dimensions, Platform } from 'react-native';
|
|
|
5
5
|
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
|
|
6
6
|
import { adoptStyleSheet, dropStyleSheet } from "../styles/adopt-style-sheet.js";
|
|
7
7
|
import { Z_INDEX } from "../styles/z-index.js";
|
|
8
|
-
import Animated, { interpolate, runOnJS, useAnimatedScrollHandler, useAnimatedStyle, useDerivedValue, useSharedValue, withSpring, withTiming } from 'react-native-reanimated';
|
|
8
|
+
import Animated, { interpolate, runOnJS, useAnimatedScrollHandler, useAnimatedReaction, useAnimatedStyle, useDerivedValue, useSharedValue, withSpring, withTiming } from 'react-native-reanimated';
|
|
9
9
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
10
10
|
import { EDGE_GAP, windowEdgeGap } from "../layout/edge.js";
|
|
11
11
|
import { Backdrop, BACKDROP_DIM_OPACITY } from "../overlay/index.js";
|
|
@@ -47,6 +47,7 @@ export const BottomSheetBase = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
47
47
|
scrollable = true,
|
|
48
48
|
manualActivation = false,
|
|
49
49
|
dynamicBackdrop = false,
|
|
50
|
+
animatedProgress,
|
|
50
51
|
handleComponent,
|
|
51
52
|
scrollY: externalScrollY,
|
|
52
53
|
headerOverlay,
|
|
@@ -483,6 +484,9 @@ export const BottomSheetBase = /*#__PURE__*/forwardRef((props, ref) => {
|
|
|
483
484
|
const dragFactor = dynamicBackdrop ? interpolate(translateY.value, [0, screenHeightSV.value * 0.4], [1, 0.3], 'clamp') : 1;
|
|
484
485
|
return opacity.value * dragFactor;
|
|
485
486
|
}, [dynamicBackdrop, opacity, translateY, screenHeightSV]);
|
|
487
|
+
useAnimatedReaction(() => Math.min(opacity.value, interpolate(translateY.value, [0, screenHeightSV.value], [1, 0], 'clamp')), progress => {
|
|
488
|
+
if (animatedProgress) animatedProgress.value = progress;
|
|
489
|
+
}, [animatedProgress, opacity, translateY, screenHeightSV]);
|
|
486
490
|
|
|
487
491
|
// Only the consumer-supplied `backdropComponent` needs the progress as a
|
|
488
492
|
// style — it owns its own visuals, blur included, so the ancestor-opacity
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["forwardRef","useImperativeHandle","useRef","useEffect","useState","useCallback","useMemo","View","StyleSheet","Dimensions","Platform","Gesture","GestureDetector","adoptStyleSheet","dropStyleSheet","Z_INDEX","Animated","interpolate","runOnJS","useAnimatedScrollHandler","useAnimatedStyle","useDerivedValue","useSharedValue","withSpring","withTiming","useSafeAreaInsets","EDGE_GAP","windowEdgeGap","Backdrop","BACKDROP_DIM_OPACITY","useTheme","jsx","_jsx","jsxs","_jsxs","useScreenDimensions","dimensions","setDimensions","get","subscription","addEventListener","window","remove","SPRING_CONFIG","damping","stiffness","mass","BottomSheetBase","props","ref","Shell","children","open","onDismiss","enablePanDownToClose","backgroundComponent","backdropComponent","style","enableHandlePanningGesture","onDismissAttempt","detached","showHandle","backdropOpacity","scrollable","manualActivation","dynamicBackdrop","handleComponent","scrollY","externalScrollY","headerOverlay","onLayout","insets","theme","colors","height","screenHeight","visible","setVisible","rendered","setRendered","closeTimeoutRef","hasClosedRef","scrollViewRef","closeGenerationRef","screenHeightSV","value","translateY","opacity","scrollOffsetY","isScrollAtTop","allowPanClose","keyboardHeight","contextY","closeGeneration","touchStartY","bodyPanRef","undefined","handlePanRef","safeClose","safeCloseRef","current","renderedRef","visibleRef","finishClose","generation","clearTimeout","duration","finished","setTimeout","OS","createWebScrollbarStyle","border","removeWebScrollbarStyle","present","dismiss","scrollTo","y","animated","close","expand","collapse","nativeGesture","Native","panGesture","Pan","enabled","withRef","simultaneousWithExternalGesture","onTouchesDown","e","t","changedTouches","absoluteY","onTouchesMove","state","dy","atTop","activate","fail","onUpdate","event","translationY","newTranslateY","onEnd","velocity","velocityY","distance","closeThreshold","Math","max","fastSwipeThreshold","shouldClose","onStart","atTopOrNearTop","handlePanGesture","activeOffsetY","backdropProgress","dragFactor","customBackdropStyle","sheetStyle","scale","transform","detachedGap","bottom","sheetHeightStyle","maxHeight","top","sheetMarginStyle","marginBottom","handleBackdropPress","scrollHandler","onScroll","contentOffset","dynamicStyles","create","handle","styles","backgroundColor","isDark","sheet","background","sheetDetached","sheetNormal","scrollContent","renderDefaultHandle","handleNode","handleSlot","gesture","handleHitArea","webScrollbarStyle","scrollbarWidth","scrollbarColor","scrollViewNode","ScrollView","scrollView","contentContainerStyle","showsVerticalScrollIndicator","keyboardShouldPersistTaps","scrollEventThrottle","className","bodyContent","nonScrollableContent","onRequestClose","absoluteFill","onPress","dimOpacity","progress","backdrop","displayName","flex","backdropTouchable","position","overflow","maxWidth","alignSelf","marginHorizontal","left","right","borderRadius","borderTopLeftRadius","borderTopRightRadius","marginLeft","width","zIndex","sheetHandle","alignItems","justifyContent","paddingTop","flexGrow","minHeight","borderColor","scrollbarHoverColor","startsWith","replace","SCROLLBAR_STYLE_ID"],"sourceRoot":"../../../src","sources":["bottom-sheet/BottomSheetBase.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["forwardRef","useImperativeHandle","useRef","useEffect","useState","useCallback","useMemo","View","StyleSheet","Dimensions","Platform","Gesture","GestureDetector","adoptStyleSheet","dropStyleSheet","Z_INDEX","Animated","interpolate","runOnJS","useAnimatedScrollHandler","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","withSpring","withTiming","useSafeAreaInsets","EDGE_GAP","windowEdgeGap","Backdrop","BACKDROP_DIM_OPACITY","useTheme","jsx","_jsx","jsxs","_jsxs","useScreenDimensions","dimensions","setDimensions","get","subscription","addEventListener","window","remove","SPRING_CONFIG","damping","stiffness","mass","BottomSheetBase","props","ref","Shell","children","open","onDismiss","enablePanDownToClose","backgroundComponent","backdropComponent","style","enableHandlePanningGesture","onDismissAttempt","detached","showHandle","backdropOpacity","scrollable","manualActivation","dynamicBackdrop","animatedProgress","handleComponent","scrollY","externalScrollY","headerOverlay","onLayout","insets","theme","colors","height","screenHeight","visible","setVisible","rendered","setRendered","closeTimeoutRef","hasClosedRef","scrollViewRef","closeGenerationRef","screenHeightSV","value","translateY","opacity","scrollOffsetY","isScrollAtTop","allowPanClose","keyboardHeight","contextY","closeGeneration","touchStartY","bodyPanRef","undefined","handlePanRef","safeClose","safeCloseRef","current","renderedRef","visibleRef","finishClose","generation","clearTimeout","duration","finished","setTimeout","OS","createWebScrollbarStyle","border","removeWebScrollbarStyle","present","dismiss","scrollTo","y","animated","close","expand","collapse","nativeGesture","Native","panGesture","Pan","enabled","withRef","simultaneousWithExternalGesture","onTouchesDown","e","t","changedTouches","absoluteY","onTouchesMove","state","dy","atTop","activate","fail","onUpdate","event","translationY","newTranslateY","onEnd","velocity","velocityY","distance","closeThreshold","Math","max","fastSwipeThreshold","shouldClose","onStart","atTopOrNearTop","handlePanGesture","activeOffsetY","backdropProgress","dragFactor","min","progress","customBackdropStyle","sheetStyle","scale","transform","detachedGap","bottom","sheetHeightStyle","maxHeight","top","sheetMarginStyle","marginBottom","handleBackdropPress","scrollHandler","onScroll","contentOffset","dynamicStyles","create","handle","styles","backgroundColor","isDark","sheet","background","sheetDetached","sheetNormal","scrollContent","renderDefaultHandle","handleNode","handleSlot","gesture","handleHitArea","webScrollbarStyle","scrollbarWidth","scrollbarColor","scrollViewNode","ScrollView","scrollView","contentContainerStyle","showsVerticalScrollIndicator","keyboardShouldPersistTaps","scrollEventThrottle","className","bodyContent","nonScrollableContent","onRequestClose","absoluteFill","onPress","dimOpacity","backdrop","displayName","flex","backdropTouchable","position","overflow","maxWidth","alignSelf","marginHorizontal","left","right","borderRadius","borderTopLeftRadius","borderTopRightRadius","marginLeft","width","zIndex","sheetHandle","alignItems","justifyContent","paddingTop","flexGrow","minHeight","borderColor","scrollbarHoverColor","startsWith","replace","SCROLLBAR_STYLE_ID"],"sourceRoot":"../../../src","sources":["bottom-sheet/BottomSheetBase.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,7 +19,7 @@ import { memo, useCallback, useEffect, useRef, useState } from 'react';
|
|
|
19
19
|
import { Platform, StyleSheet, View } from 'react-native';
|
|
20
20
|
import { Image } from 'expo-image';
|
|
21
21
|
import Animated from 'react-native-reanimated';
|
|
22
|
-
import { SLOT_IDENTITY_CHURN_LIMIT } from "./constants.js";
|
|
22
|
+
import { SLOT_IDENTITY_CHURN_LIMIT, SLOT_IDENTITY_CHURN_WINDOW_MS } from "./constants.js";
|
|
23
23
|
import { handOffFlight } from "./store.js";
|
|
24
24
|
import { loadExpoVideo, warnExpoVideoUnavailable } from "./expo-video-module.js";
|
|
25
25
|
|
|
@@ -69,17 +69,58 @@ export const MediaSurface = /*#__PURE__*/memo(function MediaSurface({
|
|
|
69
69
|
// supports.
|
|
70
70
|
const [mountedSurfaceType] = useState(surfaceType);
|
|
71
71
|
|
|
72
|
-
// A slot rebuilt on every render
|
|
73
|
-
//
|
|
74
|
-
//
|
|
75
|
-
//
|
|
76
|
-
//
|
|
77
|
-
|
|
72
|
+
// A slot rebuilt on every render re-renders this surface — and on web
|
|
73
|
+
// republishes the shared node — every time the row it lives in renders, which
|
|
74
|
+
// nothing at runtime reports: the picture is correct and the app is just
|
|
75
|
+
// doing work in proportion to its render count.
|
|
76
|
+
//
|
|
77
|
+
// What is counted is a RUN of consecutive commits that each carried a new
|
|
78
|
+
// slot, NOT how many times the slot has ever changed. The lifetime count
|
|
79
|
+
// cannot tell the defect from a correctly memoised slot: Bloom's own
|
|
80
|
+
// documented example lists `isWatched` in its deps, so its identity changes
|
|
81
|
+
// once per activation of a long-lived surface, and any such consumer reaches
|
|
82
|
+
// any fixed lifetime total eventually. It would then be told to do the thing
|
|
83
|
+
// it is already doing, with no way to make the warning stop — which is worse
|
|
84
|
+
// than not warning, because the advice is unsatisfiable. A slot rebuilt per
|
|
85
|
+
// render is different in kind: it is new on EVERY commit, including the ones
|
|
86
|
+
// where nothing it reads changed.
|
|
87
|
+
//
|
|
88
|
+
// The run must also be FAST, and that second condition is what covers the
|
|
89
|
+
// consumer who memoised everything else too. With `content` and the rest
|
|
90
|
+
// stable, `memo` skips the renders where only the parent changed, so this
|
|
91
|
+
// component commits ONLY when the slot changes — every commit carries a new
|
|
92
|
+
// slot and the run never breaks, even though there is nothing to fix and no
|
|
93
|
+
// cost to pay. Rate is what tells them apart, and it is what the warning was
|
|
94
|
+
// ever about: a slot rebuilt per render churns as fast as its row renders,
|
|
95
|
+
// while one rebuilt when its state changes moves at the speed of a finger.
|
|
96
|
+
//
|
|
97
|
+
// All three refs are written from effects rather than in render: a
|
|
98
|
+
// render-phase ref write makes the React Compiler bail on the whole
|
|
99
|
+
// component. The first effect fires only when the identity changed, and the
|
|
100
|
+
// second — declared after it, and with no dependency array, so it runs on
|
|
101
|
+
// every commit — is what reads that mark and either extends the run or
|
|
102
|
+
// clears it.
|
|
103
|
+
const slotChangedInCommit = useRef(false);
|
|
104
|
+
const slotChurnRun = useRef(0);
|
|
105
|
+
const slotChurnRunStartedAt = useRef(0);
|
|
78
106
|
useEffect(() => {
|
|
79
|
-
|
|
80
|
-
slotChurn.current += 1;
|
|
81
|
-
if (slotChurn.current === SLOT_IDENTITY_CHURN_LIMIT) warnSlotNotMemoised();
|
|
107
|
+
slotChangedInCommit.current = true;
|
|
82
108
|
}, [renderVideo]);
|
|
109
|
+
useEffect(() => {
|
|
110
|
+
if (renderVideo === undefined || !slotChangedInCommit.current) {
|
|
111
|
+
slotChurnRun.current = 0;
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
slotChangedInCommit.current = false;
|
|
115
|
+
const now = Date.now();
|
|
116
|
+
if (slotChurnRun.current === 0 || now - slotChurnRunStartedAt.current > SLOT_IDENTITY_CHURN_WINDOW_MS) {
|
|
117
|
+
slotChurnRun.current = 1;
|
|
118
|
+
slotChurnRunStartedAt.current = now;
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
slotChurnRun.current += 1;
|
|
122
|
+
if (slotChurnRun.current === SLOT_IDENTITY_CHURN_LIMIT) warnSlotNotMemoised();
|
|
123
|
+
});
|
|
83
124
|
|
|
84
125
|
// Both arms report the same fact — "there is a picture here now" — because the
|
|
85
126
|
// destination of a flight can be either, and a caller should not have to know
|
|
@@ -164,7 +205,7 @@ function warnSlotNotMemoised() {
|
|
|
164
205
|
if (process.env.NODE_ENV === 'production' || hasWarnedAboutSlotChurn) return;
|
|
165
206
|
hasWarnedAboutSlotChurn = true;
|
|
166
207
|
// eslint-disable-next-line no-console
|
|
167
|
-
console.warn(`[Bloom] A \`renderVideo\` slot
|
|
208
|
+
console.warn(`[Bloom] A \`renderVideo\` slot was a NEW function on ${SLOT_IDENTITY_CHURN_LIMIT} ` + 'consecutive renders, including ones where nothing it reads changed. The slot is ' + 'compared by identity — on web it is part of what a media host publishes to the ' + 'flight layer — so one rebuilt per render re-renders the surface per render. Wrap ' + 'it in `useCallback` with the props it actually reads. A slot that changes when ' + 'those props change is fine and does not reach this.');
|
|
168
209
|
}
|
|
169
210
|
|
|
170
211
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","useCallback","useEffect","useRef","useState","Platform","StyleSheet","View","Image","Animated","SLOT_IDENTITY_CHURN_LIMIT","handOffFlight","loadExpoVideo","warnExpoVideoUnavailable","jsx","_jsx","jsxs","_jsxs","webDraggableProps","OS","draggable","MediaSurface","content","style","contentFit","surfaceType","renderVideo","nativeControls","accessibilityLabel","pointerEvents","flightId","detached","mountedSurfaceType","
|
|
1
|
+
{"version":3,"names":["memo","useCallback","useEffect","useRef","useState","Platform","StyleSheet","View","Image","Animated","SLOT_IDENTITY_CHURN_LIMIT","SLOT_IDENTITY_CHURN_WINDOW_MS","handOffFlight","loadExpoVideo","warnExpoVideoUnavailable","jsx","_jsx","jsxs","_jsxs","webDraggableProps","OS","draggable","MediaSurface","content","style","contentFit","surfaceType","renderVideo","nativeControls","accessibilityLabel","pointerEvents","flightId","detached","mountedSurfaceType","slotChangedInCommit","slotChurnRun","slotChurnRunStartedAt","current","undefined","now","Date","warnSlotNotMemoised","reportLive","still","kind","poster","uri","expoVideo","styles","box","children","source","absoluteFill","transition","onLoad","player","fillReplaced","VideoView","onFirstFrameRender","displayName","hasWarnedAboutSlotChurn","process","env","NODE_ENV","console","warn","MediaPoster","EmptyMediaSurface","empty","create","width","height","overflow","backgroundColor"],"sourceRoot":"../../../src","sources":["media-flight/MediaSurface.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,IAAI,EAAEC,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAA6B,OAAO;AAC3F,SACEC,QAAQ,EACRC,UAAU,EACVC,IAAI,QAIC,cAAc;AACrB,SAASC,KAAK,QAAQ,YAAY;AAClC,OAAOC,QAAQ,MAAM,yBAAyB;AAE9C,SAASC,yBAAyB,EAAEC,6BAA6B,QAAQ,gBAAa;AACtF,SAASC,aAAa,QAAQ,YAAS;AAEvC,SACEC,aAAa,EACbC,wBAAwB,QAEnB,wBAAqB;;AAE5B;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AALA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAQA;AACA;AACA;AACA;AACA;AACA,MAAMC,iBAAiB,GAAGd,QAAQ,CAACe,EAAE,KAAK,KAAK,GAAG;EAAEC,SAAS,EAAE;AAAM,CAAC,GAAG,CAAC,CAAC;AAsE3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,gBAAGtB,IAAI,CAAC,SAASsB,YAAYA,CAAC;EACrDC,OAAO;EACPC,KAAK;EACLC,UAAU,GAAG,SAAS;EACtBC,WAAW,GAAG,aAAa;EAC3BC,WAAW;EACXC,cAAc,GAAG,KAAK;EACtBC,kBAAkB;EAClBC,aAAa;EACbC,QAAQ;EACRC,QAAQ,GAAG;AACM,CAAC,EAAE;EACpB;EACA;EACA;EACA,MAAM,CAACC,kBAAkB,CAAC,GAAG7B,QAAQ,CAACsB,WAAW,CAAC;;EAElD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMQ,mBAAmB,GAAG/B,MAAM,CAAC,KAAK,CAAC;EACzC,MAAMgC,YAAY,GAAGhC,MAAM,CAAC,CAAC,CAAC;EAC9B,MAAMiC,qBAAqB,GAAGjC,MAAM,CAAC,CAAC,CAAC;EACvCD,SAAS,CAAC,MAAM;IACdgC,mBAAmB,CAACG,OAAO,GAAG,IAAI;EACpC,CAAC,EAAE,CAACV,WAAW,CAAC,CAAC;EACjBzB,SAAS,CAAC,MAAM;IACd,IAAIyB,WAAW,KAAKW,SAAS,IAAI,CAACJ,mBAAmB,CAACG,OAAO,EAAE;MAC7DF,YAAY,CAACE,OAAO,GAAG,CAAC;MACxB;IACF;IACAH,mBAAmB,CAACG,OAAO,GAAG,KAAK;IACnC,MAAME,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;IACtB,IACEJ,YAAY,CAACE,OAAO,KAAK,CAAC,IAC1BE,GAAG,GAAGH,qBAAqB,CAACC,OAAO,GAAG1B,6BAA6B,EACnE;MACAwB,YAAY,CAACE,OAAO,GAAG,CAAC;MACxBD,qBAAqB,CAACC,OAAO,GAAGE,GAAG;MACnC;IACF;IACAJ,YAAY,CAACE,OAAO,IAAI,CAAC;IACzB,IAAIF,YAAY,CAACE,OAAO,KAAK3B,yBAAyB,EAAE+B,mBAAmB,CAAC,CAAC;EAC/E,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA,MAAMC,UAAU,GAAGzC,WAAW,CAAC,MAAM;IACnC,IAAI8B,QAAQ,KAAKO,SAAS,EAAE1B,aAAa,CAACmB,QAAQ,CAAC;EACrD,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,MAAMY,KAAK,GAAGpB,OAAO,CAACqB,IAAI,KAAK,OAAO,GAAGrB,OAAO,CAACsB,MAAM,GAAGtB,OAAO,CAACuB,GAAG;EACrE;EACA;EACA;EACA,MAAMC,SAAS,GACbxB,OAAO,CAACqB,IAAI,KAAK,OAAO,IAAIjB,WAAW,KAAKW,SAAS,GAAGzB,aAAa,CAAC,CAAC,GAAG,IAAI;EAChF,IAAIU,OAAO,CAACqB,IAAI,KAAK,OAAO,IAAIjB,WAAW,KAAKW,SAAS,IAAIS,SAAS,KAAK,IAAI,EAAE;IAC/E;IACA;IACA;IACA;IACAjC,wBAAwB,CAAC,CAAC;EAC5B;EAEA,oBACEI,KAAA,CAACT,QAAQ,CAACF,IAAI;IAACiB,KAAK,EAAE,CAACwB,MAAM,CAACC,GAAG,EAAEzB,KAAK,CAAE;IAACM,aAAa,EAAEA,aAAc;IAAAoB,QAAA,GACrEP,KAAK,KAAKL,SAAS,GAAG,IAAI;IAAA;IACzB;IACA;IACA;IACA;IACA;IACA;IACAtB,IAAA,CAACR,KAAK;MACJ2C,MAAM,EAAE;QAAEL,GAAG,EAAEH;MAAM,CAAE;MACvBlB,UAAU,EAAEA,UAAW;MACvBD,KAAK,EAAElB,UAAU,CAAC8C,YAAa;MAC/BC,UAAU,EAAE,CAAE;MACdxB,kBAAkB,EAAEA;MACpB;MACA;MACA;MAAA;MACAyB,MAAM,EAAE/B,OAAO,CAACqB,IAAI,KAAK,OAAO,GAAGN,SAAS,GAAGI,UAAW;MAAA,GACtDvB;IAAiB,CACtB,CACF,EACAI,OAAO,CAACqB,IAAI,KAAK,OAAO,IAAIjB,WAAW,KAAKW,SAAS,GAClDX,WAAW,CAAC;MACV4B,MAAM,EAAEvB,QAAQ,GAAG,IAAI,GAAGT,OAAO,CAACgC,MAAM;MACxC;MACA;MACA/B,KAAK,EAAE,CAAClB,UAAU,CAAC8C,YAAY,EAAEJ,MAAM,CAACQ,YAAY,CAAC;MACrD/B;IACF,CAAC,CAAC,GACF,IAAI,EACPF,OAAO,CAACqB,IAAI,KAAK,OAAO,IAAIjB,WAAW,KAAKW,SAAS,IAAIS,SAAS,KAAK,IAAI,gBAC1E/B,IAAA,CAAC+B,SAAS,CAACU,SAAS;MAClBF,MAAM,EAAEvB,QAAQ,GAAG,IAAI,GAAGT,OAAO,CAACgC,MAAO;MACzC9B,UAAU,EAAEA,UAAW;MACvBC,WAAW,EAAEO,kBAAmB;MAChCL,cAAc,EAAEA;MAChB;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MAAA;MACAJ,KAAK,EAAE,CAAClB,UAAU,CAAC8C,YAAY,EAAEJ,MAAM,CAACQ,YAAY,CAAE;MACtD3B,kBAAkB,EAAEA,kBAAmB;MACvC6B,kBAAkB,EAAEhB;IAAW,CAChC,CAAC,GACA,IAAI;EAAA,CACK,CAAC;AAEpB,CAAC,CAAC;AAEFpB,YAAY,CAACqC,WAAW,GAAG,cAAc;AAEzC,IAAIC,uBAAuB,GAAG,KAAK;;AAEnC;AACA;AACA;AACA;AACA,SAASnB,mBAAmBA,CAAA,EAAS;EACnC,IAAIoB,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IAAIH,uBAAuB,EAAE;EACtEA,uBAAuB,GAAG,IAAI;EAC9B;EACAI,OAAO,CAACC,IAAI,CACV,wDAAwDvD,yBAAyB,GAAG,GAClF,kFAAkF,GAClF,iFAAiF,GACjF,mFAAmF,GACnF,iFAAiF,GACjF,qDACJ,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASwD,WAAWA,CAAC;EAC1B3C,OAAO;EACPC,KAAK;EACLC,UAAU,GAAG,OAAO;EACpBI;AAMF,CAAC,EAAE;EACD,MAAMiB,GAAG,GAAGvB,OAAO,CAACqB,IAAI,KAAK,OAAO,GAAGrB,OAAO,CAACsB,MAAM,GAAGtB,OAAO,CAACuB,GAAG;EACnE,IAAIA,GAAG,KAAKR,SAAS,EAAE,oBAAOtB,IAAA,CAACmD,iBAAiB;IAAC3C,KAAK,EAAEA;EAAM,CAAE,CAAC;EACjE,oBACER,IAAA,CAACR,KAAK;IACJ2C,MAAM,EAAE;MAAEL;IAAI,CAAE;IAChBrB,UAAU,EAAEA,UAAW;IACvBD,KAAK,EAAEA,KAAM;IACb6B,UAAU,EAAE,CAAE;IACdxB,kBAAkB,EAAEA,kBAAmB;IAAA,GACnCV;EAAiB,CACtB,CAAC;AAEN;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASgD,iBAAiBA,CAAC;EAAE3C;AAAoC,CAAC,EAAE;EACzE,oBAAOR,IAAA,CAACT,IAAI;IAACiB,KAAK,EAAE,CAACwB,MAAM,CAACoB,KAAK,EAAE5C,KAAK,CAAE;IAACM,aAAa,EAAC;EAAM,CAAE,CAAC;AACpE;AAEA,MAAMkB,MAAM,GAAG1C,UAAU,CAAC+D,MAAM,CAAC;EAC/B;AACF;AACA;AACA;EACEb,YAAY,EAAE;IACZc,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE;EACV,CAAC;EACDtB,GAAG,EAAE;IACH;IACA;IACAuB,QAAQ,EAAE;EACZ,CAAC;EACDJ,KAAK,EAAE;IACLK,eAAe,EAAE;EACnB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -34,16 +34,41 @@ export const SURFACE_MOUNT_TIMEOUT_MS = 250;
|
|
|
34
34
|
*/
|
|
35
35
|
|
|
36
36
|
/**
|
|
37
|
-
* How many
|
|
37
|
+
* How many CONSECUTIVE renders a video slot may arrive new on before Bloom says
|
|
38
|
+
* so.
|
|
38
39
|
*
|
|
39
|
-
* `renderVideo` is
|
|
40
|
-
*
|
|
41
|
-
* lives in
|
|
42
|
-
*
|
|
43
|
-
*
|
|
40
|
+
* `renderVideo` is compared by identity — and on web it is part of what a host
|
|
41
|
+
* publishes to the layer — so an unmemoised slot re-renders the surface on
|
|
42
|
+
* every render of the row it lives in, silently and only under load.
|
|
43
|
+
*
|
|
44
|
+
* Consecutive, never a lifetime total. A correctly memoised slot changes
|
|
45
|
+
* identity whenever the state it reads changes (`isWatched` on a reel slide,
|
|
46
|
+
* say), so ANY fixed lifetime total is reached eventually by a consumer with
|
|
47
|
+
* nothing to fix — and the warning's own advice, `useCallback` over the props
|
|
48
|
+
* the slot reads, is what such a consumer already wrote. Five in a row is
|
|
49
|
+
* unreachable that way: it takes five commits where nothing the slot reads
|
|
50
|
+
* changed and the slot was rebuilt anyway.
|
|
44
51
|
*/
|
|
45
52
|
export const SLOT_IDENTITY_CHURN_LIMIT = 5;
|
|
46
53
|
|
|
54
|
+
/**
|
|
55
|
+
* How long a run of {@link SLOT_IDENTITY_CHURN_LIMIT} new slots may take and
|
|
56
|
+
* still be reported (ms).
|
|
57
|
+
*
|
|
58
|
+
* "Consecutive" alone is not enough for the consumer who memoised the surface's
|
|
59
|
+
* other props as well: `memo` then skips every render where only the parent
|
|
60
|
+
* changed, so the surface commits ONLY when the slot changes and the run never
|
|
61
|
+
* breaks — with nothing to fix and, because the renders were skipped, no cost
|
|
62
|
+
* paid either.
|
|
63
|
+
*
|
|
64
|
+
* Rate is what separates them, and it is what the warning was always about. A
|
|
65
|
+
* slot rebuilt per render changes as fast as its row renders, which in a
|
|
66
|
+
* scrolling feed is five times in a fraction of a frame budget. A slot rebuilt
|
|
67
|
+
* when the state it reads changes moves at the speed of a finger, and half a
|
|
68
|
+
* second is far too short for five activations of ONE surface.
|
|
69
|
+
*/
|
|
70
|
+
export const SLOT_IDENTITY_CHURN_WINDOW_MS = 500;
|
|
71
|
+
|
|
47
72
|
/**
|
|
48
73
|
* How far a media element may sit from the box it is supposed to fill, in px,
|
|
49
74
|
* before Bloom says so.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SURFACE_MOUNT_TIMEOUT_MS","SLOT_IDENTITY_CHURN_LIMIT","SLOT_FILL_TOLERANCE_PX"],"sourceRoot":"../../../src","sources":["media-flight/constants.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,wBAAwB,GAAG,GAAG;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,yBAAyB,GAAG,CAAC;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAG,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["SURFACE_MOUNT_TIMEOUT_MS","SLOT_IDENTITY_CHURN_LIMIT","SLOT_IDENTITY_CHURN_WINDOW_MS","SLOT_FILL_TOLERANCE_PX"],"sourceRoot":"../../../src","sources":["media-flight/constants.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,wBAAwB,GAAG,GAAG;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,yBAAyB,GAAG,CAAC;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,6BAA6B,GAAG,GAAG;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAG,CAAC","ignoreList":[]}
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* consumer's type-check.
|
|
17
17
|
*/
|
|
18
18
|
import { Children, createContext, useCallback, useContext, useEffect, useMemo } from 'react';
|
|
19
|
-
import { Pressable, StyleSheet, useWindowDimensions, View } from 'react-native';
|
|
19
|
+
import { Platform, Pressable, StyleSheet, useWindowDimensions, View } from 'react-native';
|
|
20
20
|
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
|
|
21
21
|
import Animated, { Extrapolation, interpolate, interpolateColor, runOnJS, useAnimatedReaction, useAnimatedStyle, useSharedValue, withSpring, withTiming } from 'react-native-reanimated';
|
|
22
22
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
@@ -178,8 +178,14 @@ function TabBarBody({
|
|
|
178
178
|
// Scrubbing: the highlight tracks the finger 1:1 while dragging (no spring —
|
|
179
179
|
// it must feel attached), haptic ticks fire on boundary crossings, and
|
|
180
180
|
// navigation happens only on release. Taps are handled by a Tap gesture
|
|
181
|
-
// racing the pan
|
|
182
|
-
//
|
|
181
|
+
// racing the pan.
|
|
182
|
+
//
|
|
183
|
+
// THE DETECTOR DOES NOT CONSUME THE PRESS, which this file assumed for a long
|
|
184
|
+
// time. A `Tap` gesture activates on RELEASE, by which point the inner
|
|
185
|
+
// `Pressable` has already fired `onPress`, and RNGH's cancellation of the RN
|
|
186
|
+
// responder comes too late to stop it. Measured on a Pixel 10 Pro: ONE tap
|
|
187
|
+
// produced both, ~600ms apart on a busy JS thread, so every consumer got two
|
|
188
|
+
// selections per tap. `TabBarButtonBody` is where that is resolved.
|
|
183
189
|
const gesture = useMemo(() => {
|
|
184
190
|
const indexAtX = (x, minimizedValue) => {
|
|
185
191
|
'worklet';
|
|
@@ -417,6 +423,10 @@ function TabBarBody({
|
|
|
417
423
|
});
|
|
418
424
|
}
|
|
419
425
|
/** One tab trigger: icon + label that fades out when the bar minimizes. */
|
|
426
|
+
/** Stable identity: a new array each render would re-send the actions to the OS. */
|
|
427
|
+
const ACTIVATE_ACTIONS = [{
|
|
428
|
+
name: 'activate'
|
|
429
|
+
}];
|
|
420
430
|
function TabBarButtonBody({
|
|
421
431
|
Glyph,
|
|
422
432
|
item,
|
|
@@ -506,6 +516,15 @@ function TabBarButtonBody({
|
|
|
506
516
|
"aria-selected": focused,
|
|
507
517
|
accessibilityLabel: item.label,
|
|
508
518
|
...pressableProps,
|
|
519
|
+
// ASSISTIVE TECHNOLOGY, on native, is the one activation the bar's gesture
|
|
520
|
+
// cannot see: TalkBack and VoiceOver activate a view without ever
|
|
521
|
+
// producing a touch, so the `Tap` gesture never runs and the selection has
|
|
522
|
+
// to come from here.
|
|
523
|
+
accessibilityActions: ACTIVATE_ACTIONS,
|
|
524
|
+
onAccessibilityAction: event => {
|
|
525
|
+
if (event.nativeEvent.actionName !== 'activate') return;
|
|
526
|
+
if (isFocused === undefined) bar?.selectIndex(index);
|
|
527
|
+
},
|
|
509
528
|
onPress: event => {
|
|
510
529
|
// The bar's GestureDetector normally consumes touches; this still fires
|
|
511
530
|
// for assistive-technology activation (VoiceOver) and keyboard focus.
|
|
@@ -520,10 +539,19 @@ function TabBarButtonBody({
|
|
|
520
539
|
bar.highlightOpacity.value = withTiming(1, HIGHLIGHT_FADE);
|
|
521
540
|
}
|
|
522
541
|
setMinimized(minimized, 0);
|
|
523
|
-
// Controlled path only. On the focus-driven path the
|
|
524
|
-
// `onPress` below performs the navigation, so reporting
|
|
525
|
-
// here as well would navigate twice.
|
|
526
|
-
|
|
542
|
+
// Controlled path only, and NOT on Android. On the focus-driven path the
|
|
543
|
+
// trigger's own `onPress` below performs the navigation, so reporting
|
|
544
|
+
// the selection here as well would navigate twice.
|
|
545
|
+
//
|
|
546
|
+
// ANDROID IS THE ONE PLATFORM THAT DOUBLES. RNGH sets
|
|
547
|
+
// `cancelsTouchesInView` on iOS, so a recognised tap cancels this press
|
|
548
|
+
// and the gesture above is the only reporter there; react-native-web
|
|
549
|
+
// likewise routes a keyboard Enter or Space through this press and
|
|
550
|
+
// nothing else. Android cancels nothing — measured on a Pixel 10 Pro,
|
|
551
|
+
// one tap produced `PRESSABLE selectIndex(1)` AND `GESTURE tap
|
|
552
|
+
// selectIndex(1)` ~600ms apart on a busy JS thread — so there, and only
|
|
553
|
+
// there, this press stands down.
|
|
554
|
+
if (isFocused === undefined && Platform.OS !== 'android') bar?.selectIndex(index);
|
|
527
555
|
onPress?.(event);
|
|
528
556
|
}
|
|
529
557
|
// `Pressable`'s `style` also accepts a function of the press state; both
|