@oxyhq/bloom 1.2.1 → 1.2.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/getting-started.mdx +29 -0
- package/docs/media-flight.mdx +21 -0
- package/lib/commonjs/media-flight/MediaFlightLayer.js +7 -1
- package/lib/commonjs/media-flight/MediaFlightLayer.js.map +1 -1
- package/lib/commonjs/media-flight/MediaSurface.js +3 -2
- package/lib/commonjs/media-flight/MediaSurface.js.map +1 -1
- package/lib/commonjs/media-flight/store.js +46 -2
- package/lib/commonjs/media-flight/store.js.map +1 -1
- package/lib/module/media-flight/MediaFlightLayer.js +7 -1
- package/lib/module/media-flight/MediaFlightLayer.js.map +1 -1
- package/lib/module/media-flight/MediaSurface.js +3 -2
- package/lib/module/media-flight/MediaSurface.js.map +1 -1
- package/lib/module/media-flight/store.js +46 -2
- package/lib/module/media-flight/store.js.map +1 -1
- package/lib/typescript/commonjs/media-flight/MediaSurface.d.ts +13 -0
- package/lib/typescript/commonjs/media-flight/MediaSurface.d.ts.map +1 -1
- package/lib/typescript/commonjs/media-flight/store.d.ts +24 -1
- package/lib/typescript/commonjs/media-flight/store.d.ts.map +1 -1
- package/lib/typescript/commonjs/media-flight/types.d.ts +13 -0
- package/lib/typescript/commonjs/media-flight/types.d.ts.map +1 -1
- package/lib/typescript/module/media-flight/MediaSurface.d.ts +13 -0
- package/lib/typescript/module/media-flight/MediaSurface.d.ts.map +1 -1
- package/lib/typescript/module/media-flight/store.d.ts +24 -1
- package/lib/typescript/module/media-flight/store.d.ts.map +1 -1
- package/lib/typescript/module/media-flight/types.d.ts +13 -0
- package/lib/typescript/module/media-flight/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/media-flight/MediaFlightLayer.tsx +5 -1
- package/src/media-flight/MediaSurface.tsx +15 -1
- package/src/media-flight/store.ts +46 -1
- package/src/media-flight/types.ts +13 -0
package/docs/getting-started.mdx
CHANGED
|
@@ -64,6 +64,35 @@ export function Hello() {
|
|
|
64
64
|
}
|
|
65
65
|
```
|
|
66
66
|
|
|
67
|
+
## If you build with Vite (or any ESM web bundler)
|
|
68
|
+
|
|
69
|
+
Bloom reaches its **optional** peers through a `require()` that Metro marks
|
|
70
|
+
optional. An ESM web bundle has no `require` at all — measured: `typeof require`
|
|
71
|
+
is `undefined` in a Vite bundle — so those loads cannot run and every optional
|
|
72
|
+
peer degrades **even when the package is installed**. Metro is unaffected, which
|
|
73
|
+
is why this only appears off Metro.
|
|
74
|
+
|
|
75
|
+
**Check in one line**, in your app's console:
|
|
76
|
+
|
|
77
|
+
```js
|
|
78
|
+
typeof require // "undefined" -> the optional peers below are inert for you
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Today one of them can be handed over explicitly:
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
import * as ExpoVideo from 'expo-video';
|
|
85
|
+
import { provideExpoVideo } from '@oxyhq/bloom/media-flight';
|
|
86
|
+
|
|
87
|
+
provideExpoVideo(ExpoVideo); // otherwise video silently shows only its poster
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
The others have no equivalent yet, so on an ESM bundle you currently lose
|
|
91
|
+
scoped NativeWind presets (`BloomColorScope`), adaptive colours, haptics and the
|
|
92
|
+
connection toasts. Most of them say so in the dev console — the warning ends
|
|
93
|
+
`Reason: this bundle has no CommonJS require` — with the exception noted in
|
|
94
|
+
`theme/adaptive-colors.ts`, which degrades silently.
|
|
95
|
+
|
|
67
96
|
## Recommended layout
|
|
68
97
|
|
|
69
98
|
If your app supports both light and dark themes:
|
package/docs/media-flight.mdx
CHANGED
|
@@ -260,6 +260,27 @@ the root barrel, because Metro does not tree-shake). `expo-video` is
|
|
|
260
260
|
flies video without it gets the poster plus a single dev warning naming the
|
|
261
261
|
package.
|
|
262
262
|
|
|
263
|
+
<Callout variant="warning" title="On Vite (or any ESM web bundler) you must hand expo-video over">
|
|
264
|
+
Bloom loads optional peers through a `require()` that Metro marks optional.
|
|
265
|
+
**An ESM web bundle has no `require` at all** — measured: `typeof require` is
|
|
266
|
+
`undefined` in a Vite bundle — so the load cannot run and video degrades to its
|
|
267
|
+
poster **even when `expo-video` is installed**. Metro has a real `require` and
|
|
268
|
+
is unaffected, which is why this only shows up off Metro.
|
|
269
|
+
|
|
270
|
+
One line at startup fixes it:
|
|
271
|
+
|
|
272
|
+
```ts
|
|
273
|
+
import * as ExpoVideo from 'expo-video';
|
|
274
|
+
import { provideExpoVideo } from '@oxyhq/bloom/media-flight';
|
|
275
|
+
|
|
276
|
+
provideExpoVideo(ExpoVideo);
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
How to tell whether it applies to you: run `typeof require` in your app's
|
|
280
|
+
console. If it answers `"undefined"`, you need this. The dev console also says
|
|
281
|
+
so directly — the warning ends `Reason: this bundle has no CommonJS require`.
|
|
282
|
+
</Callout>
|
|
283
|
+
|
|
263
284
|
## What a jest run can and cannot see
|
|
264
285
|
|
|
265
286
|
The registry: that a flight is created, that a second `flyTo` retargets rather
|
|
@@ -94,7 +94,8 @@ function MediaFlightSurface({
|
|
|
94
94
|
content,
|
|
95
95
|
cornerRadius,
|
|
96
96
|
contentFit,
|
|
97
|
-
surfaceType
|
|
97
|
+
surfaceType,
|
|
98
|
+
unbinding
|
|
98
99
|
} = flight;
|
|
99
100
|
|
|
100
101
|
// The COMMIT signal `flyTo`'s promise waits on, and the reason it is an effect
|
|
@@ -131,6 +132,11 @@ function MediaFlightSurface({
|
|
|
131
132
|
content: content,
|
|
132
133
|
contentFit: contentFit,
|
|
133
134
|
surfaceType: surfaceType
|
|
135
|
+
// One commit with no player before this node leaves the DOM — see
|
|
136
|
+
// `releaseFlight`. Without it the dying element's auto-pause mirrors
|
|
137
|
+
// through expo-video and stops the video the viewer just landed on.
|
|
138
|
+
,
|
|
139
|
+
detached: unbinding
|
|
134
140
|
// A flying surface is a picture, never a control: it must not intercept
|
|
135
141
|
// the press that is already travelling to whatever is underneath it.
|
|
136
142
|
,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_index","_portal","_MediaSurface","_store","_jsxRuntime","MediaFlightLayer","flights","useSyncExternalStore","subscribeToFlights","getFlights","length","jsx","Portal","children","OverlayRoot","map","flight","MediaFlightSurface","id","displayName","from","to","progress","content","cornerRadius","contentFit","surfaceType","useEffect","notifySurfaceMounted","originX","x","originY","y","boxStyle","useAnimatedStyle","transform","translateX","interpolate","value","translateY","width","height","MediaSurface","pointerEvents","style","styles","box","left","top","borderRadius","StyleSheet","create","position","overflow"],"sourceRoot":"../../../src","sources":["media-flight/MediaFlightLayer.tsx"],"mappings":";;;;;;AAqCA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AAEA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAA+E,IAAAO,WAAA,GAAAP,OAAA;AA5C/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAWA;AACA;AACA;AACA;AACA;AACA;AACO,SAASQ,gBAAgBA,CAAA,EAAG;EACjC,MAAMC,OAAO,GAAG,IAAAC,2BAAoB,EAACC,yBAAkB,EAAEC,iBAAU,EAAEA,iBAAU,CAAC;EAEhF,IAAIH,OAAO,CAACI,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EAErC,oBACE,IAAAN,WAAA,CAAAO,GAAA,EAACV,OAAA,CAAAW,MAAM;IAAAC,QAAA,eAKL,IAAAT,WAAA,CAAAO,GAAA,EAACX,MAAA,CAAAc,WAAW;MAAAD,QAAA,EACTP,OAAO,CAACS,GAAG,CAAEC,MAAM,iBAClB,IAAAZ,WAAA,CAAAO,GAAA,EAACM,kBAAkB;QAAiBD,MAAM,EAAEA;MAAO,GAA1BA,MAAM,CAACE,EAAqB,CACtD;IAAC,CACS;EAAC,CACR,CAAC;AAEb;AAEAb,gBAAgB,CAACc,WAAW,GAAG,kBAAkB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASF,kBAAkBA,CAAC;EAAED;AAAgC,CAAC,EAAE;EAC/D,MAAM;IAAEE,EAAE;IAAEE,IAAI;IAAEC,EAAE;IAAEC,QAAQ;IAAEC,OAAO;IAAEC,YAAY;IAAEC,UAAU;IAAEC;
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_index","_portal","_MediaSurface","_store","_jsxRuntime","MediaFlightLayer","flights","useSyncExternalStore","subscribeToFlights","getFlights","length","jsx","Portal","children","OverlayRoot","map","flight","MediaFlightSurface","id","displayName","from","to","progress","content","cornerRadius","contentFit","surfaceType","unbinding","useEffect","notifySurfaceMounted","originX","x","originY","y","boxStyle","useAnimatedStyle","transform","translateX","interpolate","value","translateY","width","height","MediaSurface","detached","pointerEvents","style","styles","box","left","top","borderRadius","StyleSheet","create","position","overflow"],"sourceRoot":"../../../src","sources":["media-flight/MediaFlightLayer.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -67,7 +67,8 @@ const MediaSurface = exports.MediaSurface = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
67
67
|
nativeControls = false,
|
|
68
68
|
accessibilityLabel,
|
|
69
69
|
pointerEvents,
|
|
70
|
-
flightId
|
|
70
|
+
flightId,
|
|
71
|
+
detached = false
|
|
71
72
|
}) {
|
|
72
73
|
// Captured once — see `surfaceType` above. A consumer changing it later gets
|
|
73
74
|
// the value the view was mounted with, which is the only value expo-video
|
|
@@ -118,7 +119,7 @@ const MediaSurface = exports.MediaSurface = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
118
119
|
onLoad: content.kind === 'video' ? undefined : reportLive,
|
|
119
120
|
...webDraggableProps
|
|
120
121
|
}), content.kind === 'video' && expoVideo !== null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(expoVideo.VideoView, {
|
|
121
|
-
player: content.player,
|
|
122
|
+
player: detached ? null : content.player,
|
|
122
123
|
contentFit: contentFit,
|
|
123
124
|
surfaceType: mountedSurfaceType,
|
|
124
125
|
nativeControls: nativeControls
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_expoImage","_reactNativeReanimated","_interopRequireDefault","_store","_expoVideoModule","_jsxRuntime","e","__esModule","default","webDraggableProps","Platform","OS","draggable","MediaSurface","exports","memo","content","style","contentFit","surfaceType","nativeControls","accessibilityLabel","pointerEvents","flightId","mountedSurfaceType","useState","reportLive","useCallback","undefined","handOffFlight","still","kind","poster","uri","expoVideo","loadExpoVideo","warnExpoVideoUnavailable","jsxs","View","styles","box","children","jsx","Image","source","StyleSheet","absoluteFill","transition","onLoad","VideoView","player","fillReplaced","onFirstFrameRender","displayName","MediaPoster","EmptyMediaSurface","empty","create","width","height","overflow","backgroundColor"],"sourceRoot":"../../../src","sources":["media-flight/MediaSurface.tsx"],"mappings":";;;;;;;;AAeA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAQA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,sBAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAEA,IAAAK,MAAA,GAAAL,OAAA;AAEA,IAAAM,gBAAA,GAAAN,OAAA;AAI6B,IAAAO,WAAA,GAAAP,OAAA;AAAA,SAAAI,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAjC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAqBA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA,MAAMG,iBAAiB,GAAGC,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAG;EAAEC,SAAS,EAAE;AAAM,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_expoImage","_reactNativeReanimated","_interopRequireDefault","_store","_expoVideoModule","_jsxRuntime","e","__esModule","default","webDraggableProps","Platform","OS","draggable","MediaSurface","exports","memo","content","style","contentFit","surfaceType","nativeControls","accessibilityLabel","pointerEvents","flightId","detached","mountedSurfaceType","useState","reportLive","useCallback","undefined","handOffFlight","still","kind","poster","uri","expoVideo","loadExpoVideo","warnExpoVideoUnavailable","jsxs","View","styles","box","children","jsx","Image","source","StyleSheet","absoluteFill","transition","onLoad","VideoView","player","fillReplaced","onFirstFrameRender","displayName","MediaPoster","EmptyMediaSurface","empty","create","width","height","overflow","backgroundColor"],"sourceRoot":"../../../src","sources":["media-flight/MediaSurface.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -86,7 +86,8 @@ function statusFor(id) {
|
|
|
86
86
|
settled: false,
|
|
87
87
|
handedOff: false,
|
|
88
88
|
mountWaiters: [],
|
|
89
|
-
mountTimer: null
|
|
89
|
+
mountTimer: null,
|
|
90
|
+
unbindTimer: null
|
|
90
91
|
};
|
|
91
92
|
reg.status.set(id, status);
|
|
92
93
|
}
|
|
@@ -94,7 +95,9 @@ function statusFor(id) {
|
|
|
94
95
|
}
|
|
95
96
|
function clearTimers(status) {
|
|
96
97
|
if (status.mountTimer !== null) clearTimeout(status.mountTimer);
|
|
98
|
+
if (status.unbindTimer !== null) clearTimeout(status.unbindTimer);
|
|
97
99
|
status.mountTimer = null;
|
|
100
|
+
status.unbindTimer = null;
|
|
98
101
|
}
|
|
99
102
|
function resolveMountWaiters(status) {
|
|
100
103
|
const waiters = status.mountWaiters;
|
|
@@ -225,6 +228,7 @@ function flyTo(id, rect, content, options) {
|
|
|
225
228
|
// silently ignored by the view it is meant to configure.
|
|
226
229
|
surfaceType: existing.surfaceType,
|
|
227
230
|
landing: false,
|
|
231
|
+
unbinding: false,
|
|
228
232
|
generation: existing.generation + 1
|
|
229
233
|
};
|
|
230
234
|
reg.flights.set(id, next);
|
|
@@ -247,6 +251,7 @@ function flyTo(id, rect, content, options) {
|
|
|
247
251
|
surfaceType: options?.surfaceType ?? 'textureView',
|
|
248
252
|
progress: (0, _reactNativeReanimated.makeMutable)(0),
|
|
249
253
|
landing: false,
|
|
254
|
+
unbinding: false,
|
|
250
255
|
generation: 0
|
|
251
256
|
};
|
|
252
257
|
reg.flights.set(id, flight);
|
|
@@ -355,9 +360,48 @@ function flyBack(id) {
|
|
|
355
360
|
});
|
|
356
361
|
}
|
|
357
362
|
|
|
358
|
-
/**
|
|
363
|
+
/**
|
|
364
|
+
* Drop the surface for `id`. Called when a landing leg settles, and on teardown.
|
|
365
|
+
*
|
|
366
|
+
* A VIDEO surface does not go straight out. It renders for one more commit with
|
|
367
|
+
* NO player first, because expo-video's web player mirrors pause across every
|
|
368
|
+
* element bound to it and a `<video>` removed from the DOM is auto-paused by the
|
|
369
|
+
* browser — while `unmountVideoView` only runs in a PASSIVE effect cleanup,
|
|
370
|
+
* i.e. after removal and after that auto-pause. So the dying element pauses the
|
|
371
|
+
* one the viewer is now watching. Measured: the reel's video paused 1 ms after
|
|
372
|
+
* the flying surface left the DOM, with `currentTime` still advancing and
|
|
373
|
+
* nobody having called `pause()`.
|
|
374
|
+
*
|
|
375
|
+
* Rendering `player={null}` for one commit runs expo-video's own `[props.player]`
|
|
376
|
+
* effect while the node is STILL in the DOM: its cleanup calls
|
|
377
|
+
* `unmountVideoView`, the element leaves `_mountedVideos`, and its later pause
|
|
378
|
+
* reaches nobody. That is the documented mount/unmount pair, not a patch of
|
|
379
|
+
* somebody else's module.
|
|
380
|
+
*
|
|
381
|
+
* The cost is one frame in which the outgoing surface shows its poster instead
|
|
382
|
+
* of video. It is already on its way out and the destination is live by then —
|
|
383
|
+
* `handOff` is what got us here — so that frame is covered.
|
|
384
|
+
*/
|
|
359
385
|
function releaseFlight(id) {
|
|
360
386
|
const reg = registry();
|
|
387
|
+
const flight = reg.flights.get(id);
|
|
388
|
+
if (flight !== undefined && flight.content.kind === 'video' && !flight.unbinding) {
|
|
389
|
+
reg.flights.set(id, {
|
|
390
|
+
...flight,
|
|
391
|
+
unbinding: true
|
|
392
|
+
});
|
|
393
|
+
const unbinding = statusFor(id);
|
|
394
|
+
if (unbinding.unbindTimer === null) {
|
|
395
|
+
// After the commit AND expo-video's passive effect, which is the whole
|
|
396
|
+
// point — a microtask would run before either.
|
|
397
|
+
unbinding.unbindTimer = setTimeout(() => {
|
|
398
|
+
unbinding.unbindTimer = null;
|
|
399
|
+
releaseFlight(id);
|
|
400
|
+
}, 0);
|
|
401
|
+
}
|
|
402
|
+
publish(reg);
|
|
403
|
+
return;
|
|
404
|
+
}
|
|
361
405
|
const status = reg.status.get(id);
|
|
362
406
|
if (status) {
|
|
363
407
|
// A waiter still parked on `flyTo`'s promise would otherwise hang until its
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_reactNativeReanimated","_index","_constants","_constants2","DEFAULT_FLIGHT_CORNER_RADIUS","exports","RADIUS","emptyRegistry","anchors","Map","flights","status","listeners","Set","snapshot","progress","makeMutable","statusFor","id","reg","registry","get","mounted","settled","handedOff","mountWaiters","mountTimer","set","clearTimers","clearTimeout","resolveMountWaiters","waiters","waiter","globalThis","__oxyhq_bloom_media_flight__","publish","values","listener","subscribeToFlights","add","delete","getFlights","flightProgress","registerAnchor","node","measureAnchor","Promise","resolve","measureInWindow","x","y","width","height","hasFlight","has","flyTo","rect","content","options","existing","next","from","interpolateRect","to","value","cornerRadius","contentFit","surfaceType","landing","generation","retargeted","animate","awaitSurfaceMount","flight","push","setTimeout","warnNoLayerMounted","SURFACE_MOUNT_TIMEOUT_MS","notifySurfaceMounted","notifySurfaceSettled","releaseFlight","handOffFlight","flyBack","then","resetMediaFlight","hasWarnedNoLayer","process","env","NODE_ENV","console","warn","t","clamped","onSettled","finished","runOnJS","Platform","OS","duration","CLOSE_DURATION_WEB","OPEN_DURATION_WEB","easing","Easing","in","cubic","out","withTiming","spring","CLOSE_SPRING","OPEN_SPRING","withSpring"],"sourceRoot":"../../../src","sources":["media-flight/store.ts"],"mappings":";;;;;;;;;;;;;;;;;;;AA0BA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AASA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2BA;AACA;AACA;AACA;AACA;AACO,MAAMK,4BAA4B,GAAAC,OAAA,CAAAD,4BAAA,GAAGE,aAAM,CAAC,WAAW,CAAC;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAgCA,SAASC,aAAaA,CAAA,EAAa;EACjC,OAAO;IACLC,OAAO,EAAE,IAAIC,GAAG,CAAC,CAAC;IAClBC,OAAO,EAAE,IAAID,GAAG,CAAC,CAAC;IAClBE,MAAM,EAAE,IAAIF,GAAG,CAAC,CAAC;IACjBG,SAAS,EAAE,IAAIC,GAAG,CAAC,CAAC;IACpBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE,IAAAC,kCAAW,EAAC,CAAC;EACzB,CAAC;AACH;AAEA,SAASC,SAASA,CAACC,EAAU,EAAgB;EAC3C,MAAMC,GAAG,GAAGC,QAAQ,CAAC,CAAC;EACtB,IAAIT,MAAM,GAAGQ,GAAG,CAACR,MAAM,CAACU,GAAG,CAACH,EAAE,CAAC;EAC/B,IAAI,CAACP,MAAM,EAAE;IACXA,MAAM,GAAG;MACPW,OAAO,EAAE,KAAK;MACdC,OAAO,EAAE,KAAK;MACdC,SAAS,EAAE,KAAK;MAChBC,YAAY,EAAE,EAAE;MAChBC,UAAU,EAAE;IACd,CAAC;IACDP,GAAG,CAACR,MAAM,CAACgB,GAAG,CAACT,EAAE,EAAEP,MAAM,CAAC;EAC5B;EACA,OAAOA,MAAM;AACf;AAEA,SAASiB,WAAWA,CAACjB,MAAoB,EAAQ;EAC/C,IAAIA,MAAM,CAACe,UAAU,KAAK,IAAI,EAAEG,YAAY,CAAClB,MAAM,CAACe,UAAU,CAAC;EAC/Df,MAAM,CAACe,UAAU,GAAG,IAAI;AAC1B;AAEA,SAASI,mBAAmBA,CAACnB,MAAoB,EAAQ;EACvD,MAAMoB,OAAO,GAAGpB,MAAM,CAACc,YAAY;EACnCd,MAAM,CAACc,YAAY,GAAG,EAAE;EACxB,IAAId,MAAM,CAACe,UAAU,KAAK,IAAI,EAAE;IAC9BG,YAAY,CAAClB,MAAM,CAACe,UAAU,CAAC;IAC/Bf,MAAM,CAACe,UAAU,GAAG,IAAI;EAC1B;EACA,KAAK,MAAMM,MAAM,IAAID,OAAO,EAAEC,MAAM,CAAC,CAAC;AACxC;AAEA,SAASZ,QAAQA,CAAA,EAAa;EAC5Ba,UAAU,CAACC,4BAA4B,KAAK3B,aAAa,CAAC,CAAC;EAC3D,OAAO0B,UAAU,CAACC,4BAA4B;AAChD;AAEA,SAASC,OAAOA,CAAChB,GAAa,EAAQ;EACpCA,GAAG,CAACL,QAAQ,GAAG,CAAC,GAAGK,GAAG,CAACT,OAAO,CAAC0B,MAAM,CAAC,CAAC,CAAC;EACxC,KAAK,MAAMC,QAAQ,IAAIlB,GAAG,CAACP,SAAS,EAAEyB,QAAQ,CAAC,CAAC;AAClD;;AAEA;AACO,SAASC,kBAAkBA,CAACD,QAAoB,EAAc;EACnE,MAAMlB,GAAG,GAAGC,QAAQ,CAAC,CAAC;EACtBD,GAAG,CAACP,SAAS,CAAC2B,GAAG,CAACF,QAAQ,CAAC;EAC3B,OAAO,MAAM;IACXlB,GAAG,CAACP,SAAS,CAAC4B,MAAM,CAACH,QAAQ,CAAC;EAChC,CAAC;AACH;;AAEA;AACO,SAASI,UAAUA,CAAA,EAA2B;EACnD,OAAOrB,QAAQ,CAAC,CAAC,CAACN,QAAQ;AAC5B;;AAEA;AACO,SAAS4B,cAAcA,CAAA,EAAwB;EACpD,OAAOtB,QAAQ,CAAC,CAAC,CAACL,QAAQ;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS4B,cAAcA,CAACzB,EAAU,EAAE0B,IAAkC,EAAQ;EACnF,MAAMzB,GAAG,GAAGC,QAAQ,CAAC,CAAC;EACtBD,GAAG,CAACX,OAAO,CAACgC,MAAM,CAACtB,EAAE,CAAC;EACtB,IAAI0B,IAAI,KAAK,IAAI,EAAEzB,GAAG,CAACX,OAAO,CAACmB,GAAG,CAACT,EAAE,EAAE0B,IAAI,CAAC;AAC9C;AAEO,SAASC,aAAaA,CAAC3B,EAAU,EAAgC;EACtE,MAAM0B,IAAI,GAAGxB,QAAQ,CAAC,CAAC,CAACZ,OAAO,CAACa,GAAG,CAACH,EAAE,CAAC;EACvC,IAAI,CAAC0B,IAAI,EAAE,OAAOE,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;EACvC,OAAO,IAAID,OAAO,CAAuBC,OAAO,IAAK;IACnDH,IAAI,CAACI,eAAe,CAAC,CAACC,CAAC,EAAEC,CAAC,EAAEC,KAAK,EAAEC,MAAM,KAAK;MAC5C;MACA;MACA;MACAL,OAAO,CAACI,KAAK,GAAG,CAAC,IAAIC,MAAM,GAAG,CAAC,GAAG;QAAEH,CAAC;QAAEC,CAAC;QAAEC,KAAK;QAAEC;MAAO,CAAC,GAAG,IAAI,CAAC;IACnE,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;;AAEA;AACO,SAASC,SAASA,CAACnC,EAAU,EAAW;EAC7C,OAAOE,QAAQ,CAAC,CAAC,CAACV,OAAO,CAAC4C,GAAG,CAACpC,EAAE,CAAC;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASqC,KAAKA,CACnBrC,EAAU,EACVsC,IAAkB,EAClBC,OAA4B,EAC5BC,OAA4B,EACb;EACf,MAAMvC,GAAG,GAAGC,QAAQ,CAAC,CAAC;EACtB,MAAMuC,QAAQ,GAAGxC,GAAG,CAACT,OAAO,CAACW,GAAG,CAACH,EAAE,CAAC;EAEpC,IAAIyC,QAAQ,EAAE;IACZ;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMC,IAAiB,GAAG;MACxB,GAAGD,QAAQ;MACX;MACA;MACAE,IAAI,EAAEC,eAAe,CAACH,QAAQ,CAACE,IAAI,EAAEF,QAAQ,CAACI,EAAE,EAAEJ,QAAQ,CAAC5C,QAAQ,CAACiD,KAAK,CAAC;MAC1ED,EAAE,EAAEP,IAAI;MACRC,OAAO;MACPQ,YAAY,EAAEP,OAAO,EAAEO,YAAY,IAAIN,QAAQ,CAACM,YAAY;MAC5DC,UAAU,EAAER,OAAO,EAAEQ,UAAU,IAAIP,QAAQ,CAACO,UAAU;MACtD;MACA;MACA;MACAC,WAAW,EAAER,QAAQ,CAACQ,WAAW;MACjCC,OAAO,EAAE,KAAK;MACdC,UAAU,EAAEV,QAAQ,CAACU,UAAU,GAAG;IACpC,CAAC;IACDlD,GAAG,CAACT,OAAO,CAACiB,GAAG,CAACT,EAAE,EAAE0C,IAAI,CAAC;IACzB,MAAMU,UAAU,GAAGrD,SAAS,CAACC,EAAE,CAAC;IAChCoD,UAAU,CAAC/C,OAAO,GAAG,KAAK;IAC1BgD,OAAO,CAACX,IAAI,EAAE,KAAK,CAAC;IACpBzB,OAAO,CAAChB,GAAG,CAAC;IACZ,OAAOqD,iBAAiB,CAACtD,EAAE,CAAC;EAC9B;;EAEA;EACA;EACA,MAAMuD,MAAmB,GAAG;IAC1BvD,EAAE;IACFuC,OAAO;IACPI,IAAI,EAAEH,OAAO,EAAEG,IAAI,IAAIL,IAAI;IAC3BO,EAAE,EAAEP,IAAI;IACRS,YAAY,EAAEP,OAAO,EAAEO,YAAY,IAAI7D,4BAA4B;IACnE8D,UAAU,EAAER,OAAO,EAAEQ,UAAU,IAAI,OAAO;IAC1CC,WAAW,EAAET,OAAO,EAAES,WAAW,IAAI,aAAa;IAClDpD,QAAQ,EAAE,IAAAC,kCAAW,EAAC,CAAC,CAAC;IACxBoD,OAAO,EAAE,KAAK;IACdC,UAAU,EAAE;EACd,CAAC;EACDlD,GAAG,CAACT,OAAO,CAACiB,GAAG,CAACT,EAAE,EAAEuD,MAAM,CAAC;EAC3B,MAAM9D,MAAM,GAAGM,SAAS,CAACC,EAAE,CAAC;EAC5BP,MAAM,CAACW,OAAO,GAAG,KAAK;EACtBX,MAAM,CAACY,OAAO,GAAG,KAAK;EACtBZ,MAAM,CAACa,SAAS,GAAG,KAAK;EACxB+C,OAAO,CAACE,MAAM,EAAE,KAAK,CAAC;EACtBtC,OAAO,CAAChB,GAAG,CAAC;EACZ,OAAOqD,iBAAiB,CAACtD,EAAE,CAAC;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASsD,iBAAiBA,CAACtD,EAAU,EAAiB;EACpD,MAAMP,MAAM,GAAGM,SAAS,CAACC,EAAE,CAAC;EAC5B,IAAIP,MAAM,CAACW,OAAO,EAAE,OAAOwB,OAAO,CAACC,OAAO,CAAC,CAAC;EAC5C,OAAO,IAAID,OAAO,CAAQC,OAAO,IAAK;IACpCpC,MAAM,CAACc,YAAY,CAACiD,IAAI,CAAC3B,OAAO,CAAC;IACjC,IAAIpC,MAAM,CAACe,UAAU,KAAK,IAAI,EAAE;IAChCf,MAAM,CAACe,UAAU,GAAGiD,UAAU,CAAC,MAAM;MACnChE,MAAM,CAACe,UAAU,GAAG,IAAI;MACxBkD,kBAAkB,CAAC,CAAC;MACpB9C,mBAAmB,CAACnB,MAAM,CAAC;IAC7B,CAAC,EAAEkE,mCAAwB,CAAC;EAC9B,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,oBAAoBA,CAAC5D,EAAU,EAAQ;EACrD,MAAMP,MAAM,GAAGM,SAAS,CAACC,EAAE,CAAC;EAC5BP,MAAM,CAACW,OAAO,GAAG,IAAI;EACrBQ,mBAAmB,CAACnB,MAAM,CAAC;AAC7B;;AAEA;AACO,SAASoE,oBAAoBA,CAAC7D,EAAU,EAAQ;EACrD,MAAMP,MAAM,GAAGM,SAAS,CAACC,EAAE,CAAC;EAC5BP,MAAM,CAACY,OAAO,GAAG,IAAI;EACrB,IAAIZ,MAAM,CAACa,SAAS,EAAEwD,aAAa,CAAC9D,EAAE,CAAC;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS+D,aAAaA,CAAC/D,EAAU,EAAQ;EAC9C,MAAMC,GAAG,GAAGC,QAAQ,CAAC,CAAC;EACtB,IAAI,CAACD,GAAG,CAACT,OAAO,CAAC4C,GAAG,CAACpC,EAAE,CAAC,EAAE;EAC1B,MAAMP,MAAM,GAAGM,SAAS,CAACC,EAAE,CAAC;EAC5BP,MAAM,CAACa,SAAS,GAAG,IAAI;EACvB;EACA;EACA,IAAIb,MAAM,CAACY,OAAO,EAAEyD,aAAa,CAAC9D,EAAE,CAAC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASgE,OAAOA,CAAChE,EAAU,EAAQ;EACxC,MAAMuD,MAAM,GAAGrD,QAAQ,CAAC,CAAC,CAACV,OAAO,CAACW,GAAG,CAACH,EAAE,CAAC;EACzC,IAAI,CAACuD,MAAM,EAAE;EAEb,KAAK5B,aAAa,CAAC3B,EAAE,CAAC,CAACiE,IAAI,CAAE3B,IAAI,IAAK;IACpC;IACA;IACA;IACA,MAAMrC,GAAG,GAAGC,QAAQ,CAAC,CAAC;IACtB,IAAID,GAAG,CAACT,OAAO,CAACW,GAAG,CAACH,EAAE,CAAC,KAAKuD,MAAM,EAAE;IACpC,IAAIjB,IAAI,KAAK,IAAI,EAAE;MACjBwB,aAAa,CAAC9D,EAAE,CAAC;MACjB;IACF;IACA,MAAMkD,OAAoB,GAAG;MAC3B,GAAGK,MAAM;MACTZ,IAAI,EAAEC,eAAe,CAACW,MAAM,CAACZ,IAAI,EAAEY,MAAM,CAACV,EAAE,EAAEU,MAAM,CAAC1D,QAAQ,CAACiD,KAAK,CAAC;MACpED,EAAE,EAAEP,IAAI;MACRY,OAAO,EAAE,IAAI;MACbC,UAAU,EAAEI,MAAM,CAACJ,UAAU,GAAG;IAClC,CAAC;IACDlD,GAAG,CAACT,OAAO,CAACiB,GAAG,CAACT,EAAE,EAAEkD,OAAO,CAAC;IAC5BG,OAAO,CAACH,OAAO,EAAE,IAAI,CAAC;IACtBjC,OAAO,CAAChB,GAAG,CAAC;EACd,CAAC,CAAC;AACJ;;AAEA;AACO,SAAS6D,aAAaA,CAAC9D,EAAU,EAAQ;EAC9C,MAAMC,GAAG,GAAGC,QAAQ,CAAC,CAAC;EACtB,MAAMT,MAAM,GAAGQ,GAAG,CAACR,MAAM,CAACU,GAAG,CAACH,EAAE,CAAC;EACjC,IAAIP,MAAM,EAAE;IACV;IACA;IACAiB,WAAW,CAACjB,MAAM,CAAC;IACnBmB,mBAAmB,CAACnB,MAAM,CAAC;IAC3BQ,GAAG,CAACR,MAAM,CAAC6B,MAAM,CAACtB,EAAE,CAAC;EACvB;EACA,IAAI,CAACC,GAAG,CAACT,OAAO,CAAC8B,MAAM,CAACtB,EAAE,CAAC,EAAE;EAC7BiB,OAAO,CAAChB,GAAG,CAAC;AACd;;AAEA;AACO,SAASiE,gBAAgBA,CAAA,EAAS;EACvC,MAAMzB,QAAQ,GAAG1B,UAAU,CAACC,4BAA4B;EACxD;EACA;EACA,IAAIyB,QAAQ,EAAE,KAAK,MAAMhD,MAAM,IAAIgD,QAAQ,CAAChD,MAAM,CAACyB,MAAM,CAAC,CAAC,EAAER,WAAW,CAACjB,MAAM,CAAC;EAChFsB,UAAU,CAACC,4BAA4B,GAAG3B,aAAa,CAAC,CAAC;EACzD8E,gBAAgB,GAAG,KAAK;AAC1B;AAEA,IAAIA,gBAAgB,GAAG,KAAK;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAST,kBAAkBA,CAAA,EAAS;EAClC,IAAIU,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IAAIH,gBAAgB,EAAE;EAC/DA,gBAAgB,GAAG,IAAI;EACvB;EACAI,OAAO,CAACC,IAAI,CACV,6EAA6E,GAC3E,2EAA2E,GAC3E,uEAAuE,GACvE,sCACJ,CAAC;AACH;;AAEA;AACA,SAAS5B,eAAeA,CAACD,IAAkB,EAAEE,EAAgB,EAAE4B,CAAS,EAAgB;EACtF,MAAMC,OAAO,GAAGD,CAAC,GAAG,CAAC,GAAG,CAAC,GAAGA,CAAC,GAAG,CAAC,GAAG,CAAC,GAAGA,CAAC;EACzC,OAAO;IACL1C,CAAC,EAAEY,IAAI,CAACZ,CAAC,GAAG,CAACc,EAAE,CAACd,CAAC,GAAGY,IAAI,CAACZ,CAAC,IAAI2C,OAAO;IACrC1C,CAAC,EAAEW,IAAI,CAACX,CAAC,GAAG,CAACa,EAAE,CAACb,CAAC,GAAGW,IAAI,CAACX,CAAC,IAAI0C,OAAO;IACrCzC,KAAK,EAAEU,IAAI,CAACV,KAAK,GAAG,CAACY,EAAE,CAACZ,KAAK,GAAGU,IAAI,CAACV,KAAK,IAAIyC,OAAO;IACrDxC,MAAM,EAAES,IAAI,CAACT,MAAM,GAAG,CAACW,EAAE,CAACX,MAAM,GAAGS,IAAI,CAACT,MAAM,IAAIwC;EACpD,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASrB,OAAOA,CAACE,MAAmB,EAAEL,OAAgB,EAAQ;EAC5D,MAAMjD,GAAG,GAAGC,QAAQ,CAAC,CAAC;EACtB,MAAMF,EAAE,GAAGuD,MAAM,CAACvD,EAAE;EACpB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM2E,SAAS,GAAIC,QAAkB,IAAK;IACxC,SAAS;;IACT,IAAIA,QAAQ,KAAK,KAAK,EAAE;IACxB,IAAAC,8BAAO,EAAC3B,OAAO,GAAGY,aAAa,GAAGD,oBAAoB,CAAC,CAAC7D,EAAE,CAAC;EAC7D,CAAC;EAEDuD,MAAM,CAAC1D,QAAQ,CAACiD,KAAK,GAAG,CAAC;EACzB7C,GAAG,CAACJ,QAAQ,CAACiD,KAAK,GAAG,CAAC;EAEtB,IAAIgC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IACzB,MAAMC,QAAQ,GAAG9B,OAAO,GAAG+B,8BAAkB,GAAGC,6BAAiB;IACjE,MAAMC,MAAM,GAAGjC,OAAO,GAAGkC,6BAAM,CAACC,EAAE,CAACD,6BAAM,CAACE,KAAK,CAAC,GAAGF,6BAAM,CAACG,GAAG,CAACH,6BAAM,CAACE,KAAK,CAAC;IAC3E/B,MAAM,CAAC1D,QAAQ,CAACiD,KAAK,GAAG,IAAA0C,iCAAU,EAAC,CAAC,EAAE;MAAER,QAAQ;MAAEG;IAAO,CAAC,EAAER,SAAS,CAAC;IACtE1E,GAAG,CAACJ,QAAQ,CAACiD,KAAK,GAAG,IAAA0C,iCAAU,EAAC,CAAC,EAAE;MAAER,QAAQ;MAAEG;IAAO,CAAC,CAAC;IACxD;EACF;EAEA,MAAMM,MAAM,GAAGvC,OAAO,GAAGwC,wBAAY,GAAGC,uBAAW;EACnDpC,MAAM,CAAC1D,QAAQ,CAACiD,KAAK,GAAG,IAAA8C,iCAAU,EAAC,CAAC,EAAEH,MAAM,EAAEd,SAAS,CAAC;EACxD1E,GAAG,CAACJ,QAAQ,CAACiD,KAAK,GAAG,IAAA8C,iCAAU,EAAC,CAAC,EAAEH,MAAM,CAAC;AAC5C","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_reactNativeReanimated","_index","_constants","_constants2","DEFAULT_FLIGHT_CORNER_RADIUS","exports","RADIUS","emptyRegistry","anchors","Map","flights","status","listeners","Set","snapshot","progress","makeMutable","statusFor","id","reg","registry","get","mounted","settled","handedOff","mountWaiters","mountTimer","unbindTimer","set","clearTimers","clearTimeout","resolveMountWaiters","waiters","waiter","globalThis","__oxyhq_bloom_media_flight__","publish","values","listener","subscribeToFlights","add","delete","getFlights","flightProgress","registerAnchor","node","measureAnchor","Promise","resolve","measureInWindow","x","y","width","height","hasFlight","has","flyTo","rect","content","options","existing","next","from","interpolateRect","to","value","cornerRadius","contentFit","surfaceType","landing","unbinding","generation","retargeted","animate","awaitSurfaceMount","flight","push","setTimeout","warnNoLayerMounted","SURFACE_MOUNT_TIMEOUT_MS","notifySurfaceMounted","notifySurfaceSettled","releaseFlight","handOffFlight","flyBack","then","undefined","kind","resetMediaFlight","hasWarnedNoLayer","process","env","NODE_ENV","console","warn","t","clamped","onSettled","finished","runOnJS","Platform","OS","duration","CLOSE_DURATION_WEB","OPEN_DURATION_WEB","easing","Easing","in","cubic","out","withTiming","spring","CLOSE_SPRING","OPEN_SPRING","withSpring"],"sourceRoot":"../../../src","sources":["media-flight/store.ts"],"mappings":";;;;;;;;;;;;;;;;;;;AA0BA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AASA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA2BA;AACA;AACA;AACA;AACA;AACO,MAAMK,4BAA4B,GAAAC,OAAA,CAAAD,4BAAA,GAAGE,aAAM,CAAC,WAAW,CAAC;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAkCA,SAASC,aAAaA,CAAA,EAAa;EACjC,OAAO;IACLC,OAAO,EAAE,IAAIC,GAAG,CAAC,CAAC;IAClBC,OAAO,EAAE,IAAID,GAAG,CAAC,CAAC;IAClBE,MAAM,EAAE,IAAIF,GAAG,CAAC,CAAC;IACjBG,SAAS,EAAE,IAAIC,GAAG,CAAC,CAAC;IACpBC,QAAQ,EAAE,EAAE;IACZC,QAAQ,EAAE,IAAAC,kCAAW,EAAC,CAAC;EACzB,CAAC;AACH;AAEA,SAASC,SAASA,CAACC,EAAU,EAAgB;EAC3C,MAAMC,GAAG,GAAGC,QAAQ,CAAC,CAAC;EACtB,IAAIT,MAAM,GAAGQ,GAAG,CAACR,MAAM,CAACU,GAAG,CAACH,EAAE,CAAC;EAC/B,IAAI,CAACP,MAAM,EAAE;IACXA,MAAM,GAAG;MACPW,OAAO,EAAE,KAAK;MACdC,OAAO,EAAE,KAAK;MACdC,SAAS,EAAE,KAAK;MAChBC,YAAY,EAAE,EAAE;MAChBC,UAAU,EAAE,IAAI;MAChBC,WAAW,EAAE;IACf,CAAC;IACDR,GAAG,CAACR,MAAM,CAACiB,GAAG,CAACV,EAAE,EAAEP,MAAM,CAAC;EAC5B;EACA,OAAOA,MAAM;AACf;AAEA,SAASkB,WAAWA,CAAClB,MAAoB,EAAQ;EAC/C,IAAIA,MAAM,CAACe,UAAU,KAAK,IAAI,EAAEI,YAAY,CAACnB,MAAM,CAACe,UAAU,CAAC;EAC/D,IAAIf,MAAM,CAACgB,WAAW,KAAK,IAAI,EAAEG,YAAY,CAACnB,MAAM,CAACgB,WAAW,CAAC;EACjEhB,MAAM,CAACe,UAAU,GAAG,IAAI;EACxBf,MAAM,CAACgB,WAAW,GAAG,IAAI;AAC3B;AAEA,SAASI,mBAAmBA,CAACpB,MAAoB,EAAQ;EACvD,MAAMqB,OAAO,GAAGrB,MAAM,CAACc,YAAY;EACnCd,MAAM,CAACc,YAAY,GAAG,EAAE;EACxB,IAAId,MAAM,CAACe,UAAU,KAAK,IAAI,EAAE;IAC9BI,YAAY,CAACnB,MAAM,CAACe,UAAU,CAAC;IAC/Bf,MAAM,CAACe,UAAU,GAAG,IAAI;EAC1B;EACA,KAAK,MAAMO,MAAM,IAAID,OAAO,EAAEC,MAAM,CAAC,CAAC;AACxC;AAEA,SAASb,QAAQA,CAAA,EAAa;EAC5Bc,UAAU,CAACC,4BAA4B,KAAK5B,aAAa,CAAC,CAAC;EAC3D,OAAO2B,UAAU,CAACC,4BAA4B;AAChD;AAEA,SAASC,OAAOA,CAACjB,GAAa,EAAQ;EACpCA,GAAG,CAACL,QAAQ,GAAG,CAAC,GAAGK,GAAG,CAACT,OAAO,CAAC2B,MAAM,CAAC,CAAC,CAAC;EACxC,KAAK,MAAMC,QAAQ,IAAInB,GAAG,CAACP,SAAS,EAAE0B,QAAQ,CAAC,CAAC;AAClD;;AAEA;AACO,SAASC,kBAAkBA,CAACD,QAAoB,EAAc;EACnE,MAAMnB,GAAG,GAAGC,QAAQ,CAAC,CAAC;EACtBD,GAAG,CAACP,SAAS,CAAC4B,GAAG,CAACF,QAAQ,CAAC;EAC3B,OAAO,MAAM;IACXnB,GAAG,CAACP,SAAS,CAAC6B,MAAM,CAACH,QAAQ,CAAC;EAChC,CAAC;AACH;;AAEA;AACO,SAASI,UAAUA,CAAA,EAA2B;EACnD,OAAOtB,QAAQ,CAAC,CAAC,CAACN,QAAQ;AAC5B;;AAEA;AACO,SAAS6B,cAAcA,CAAA,EAAwB;EACpD,OAAOvB,QAAQ,CAAC,CAAC,CAACL,QAAQ;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS6B,cAAcA,CAAC1B,EAAU,EAAE2B,IAAkC,EAAQ;EACnF,MAAM1B,GAAG,GAAGC,QAAQ,CAAC,CAAC;EACtBD,GAAG,CAACX,OAAO,CAACiC,MAAM,CAACvB,EAAE,CAAC;EACtB,IAAI2B,IAAI,KAAK,IAAI,EAAE1B,GAAG,CAACX,OAAO,CAACoB,GAAG,CAACV,EAAE,EAAE2B,IAAI,CAAC;AAC9C;AAEO,SAASC,aAAaA,CAAC5B,EAAU,EAAgC;EACtE,MAAM2B,IAAI,GAAGzB,QAAQ,CAAC,CAAC,CAACZ,OAAO,CAACa,GAAG,CAACH,EAAE,CAAC;EACvC,IAAI,CAAC2B,IAAI,EAAE,OAAOE,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;EACvC,OAAO,IAAID,OAAO,CAAuBC,OAAO,IAAK;IACnDH,IAAI,CAACI,eAAe,CAAC,CAACC,CAAC,EAAEC,CAAC,EAAEC,KAAK,EAAEC,MAAM,KAAK;MAC5C;MACA;MACA;MACAL,OAAO,CAACI,KAAK,GAAG,CAAC,IAAIC,MAAM,GAAG,CAAC,GAAG;QAAEH,CAAC;QAAEC,CAAC;QAAEC,KAAK;QAAEC;MAAO,CAAC,GAAG,IAAI,CAAC;IACnE,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ;;AAEA;AACO,SAASC,SAASA,CAACpC,EAAU,EAAW;EAC7C,OAAOE,QAAQ,CAAC,CAAC,CAACV,OAAO,CAAC6C,GAAG,CAACrC,EAAE,CAAC;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASsC,KAAKA,CACnBtC,EAAU,EACVuC,IAAkB,EAClBC,OAA4B,EAC5BC,OAA4B,EACb;EACf,MAAMxC,GAAG,GAAGC,QAAQ,CAAC,CAAC;EACtB,MAAMwC,QAAQ,GAAGzC,GAAG,CAACT,OAAO,CAACW,GAAG,CAACH,EAAE,CAAC;EAEpC,IAAI0C,QAAQ,EAAE;IACZ;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMC,IAAiB,GAAG;MACxB,GAAGD,QAAQ;MACX;MACA;MACAE,IAAI,EAAEC,eAAe,CAACH,QAAQ,CAACE,IAAI,EAAEF,QAAQ,CAACI,EAAE,EAAEJ,QAAQ,CAAC7C,QAAQ,CAACkD,KAAK,CAAC;MAC1ED,EAAE,EAAEP,IAAI;MACRC,OAAO;MACPQ,YAAY,EAAEP,OAAO,EAAEO,YAAY,IAAIN,QAAQ,CAACM,YAAY;MAC5DC,UAAU,EAAER,OAAO,EAAEQ,UAAU,IAAIP,QAAQ,CAACO,UAAU;MACtD;MACA;MACA;MACAC,WAAW,EAAER,QAAQ,CAACQ,WAAW;MACjCC,OAAO,EAAE,KAAK;MACdC,SAAS,EAAE,KAAK;MAChBC,UAAU,EAAEX,QAAQ,CAACW,UAAU,GAAG;IACpC,CAAC;IACDpD,GAAG,CAACT,OAAO,CAACkB,GAAG,CAACV,EAAE,EAAE2C,IAAI,CAAC;IACzB,MAAMW,UAAU,GAAGvD,SAAS,CAACC,EAAE,CAAC;IAChCsD,UAAU,CAACjD,OAAO,GAAG,KAAK;IAC1BkD,OAAO,CAACZ,IAAI,EAAE,KAAK,CAAC;IACpBzB,OAAO,CAACjB,GAAG,CAAC;IACZ,OAAOuD,iBAAiB,CAACxD,EAAE,CAAC;EAC9B;;EAEA;EACA;EACA,MAAMyD,MAAmB,GAAG;IAC1BzD,EAAE;IACFwC,OAAO;IACPI,IAAI,EAAEH,OAAO,EAAEG,IAAI,IAAIL,IAAI;IAC3BO,EAAE,EAAEP,IAAI;IACRS,YAAY,EAAEP,OAAO,EAAEO,YAAY,IAAI9D,4BAA4B;IACnE+D,UAAU,EAAER,OAAO,EAAEQ,UAAU,IAAI,OAAO;IAC1CC,WAAW,EAAET,OAAO,EAAES,WAAW,IAAI,aAAa;IAClDrD,QAAQ,EAAE,IAAAC,kCAAW,EAAC,CAAC,CAAC;IACxBqD,OAAO,EAAE,KAAK;IACdC,SAAS,EAAE,KAAK;IAChBC,UAAU,EAAE;EACd,CAAC;EACDpD,GAAG,CAACT,OAAO,CAACkB,GAAG,CAACV,EAAE,EAAEyD,MAAM,CAAC;EAC3B,MAAMhE,MAAM,GAAGM,SAAS,CAACC,EAAE,CAAC;EAC5BP,MAAM,CAACW,OAAO,GAAG,KAAK;EACtBX,MAAM,CAACY,OAAO,GAAG,KAAK;EACtBZ,MAAM,CAACa,SAAS,GAAG,KAAK;EACxBiD,OAAO,CAACE,MAAM,EAAE,KAAK,CAAC;EACtBvC,OAAO,CAACjB,GAAG,CAAC;EACZ,OAAOuD,iBAAiB,CAACxD,EAAE,CAAC;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASwD,iBAAiBA,CAACxD,EAAU,EAAiB;EACpD,MAAMP,MAAM,GAAGM,SAAS,CAACC,EAAE,CAAC;EAC5B,IAAIP,MAAM,CAACW,OAAO,EAAE,OAAOyB,OAAO,CAACC,OAAO,CAAC,CAAC;EAC5C,OAAO,IAAID,OAAO,CAAQC,OAAO,IAAK;IACpCrC,MAAM,CAACc,YAAY,CAACmD,IAAI,CAAC5B,OAAO,CAAC;IACjC,IAAIrC,MAAM,CAACe,UAAU,KAAK,IAAI,EAAE;IAChCf,MAAM,CAACe,UAAU,GAAGmD,UAAU,CAAC,MAAM;MACnClE,MAAM,CAACe,UAAU,GAAG,IAAI;MACxBoD,kBAAkB,CAAC,CAAC;MACpB/C,mBAAmB,CAACpB,MAAM,CAAC;IAC7B,CAAC,EAAEoE,mCAAwB,CAAC;EAC9B,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,oBAAoBA,CAAC9D,EAAU,EAAQ;EACrD,MAAMP,MAAM,GAAGM,SAAS,CAACC,EAAE,CAAC;EAC5BP,MAAM,CAACW,OAAO,GAAG,IAAI;EACrBS,mBAAmB,CAACpB,MAAM,CAAC;AAC7B;;AAEA;AACO,SAASsE,oBAAoBA,CAAC/D,EAAU,EAAQ;EACrD,MAAMP,MAAM,GAAGM,SAAS,CAACC,EAAE,CAAC;EAC5BP,MAAM,CAACY,OAAO,GAAG,IAAI;EACrB,IAAIZ,MAAM,CAACa,SAAS,EAAE0D,aAAa,CAAChE,EAAE,CAAC;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASiE,aAAaA,CAACjE,EAAU,EAAQ;EAC9C,MAAMC,GAAG,GAAGC,QAAQ,CAAC,CAAC;EACtB,IAAI,CAACD,GAAG,CAACT,OAAO,CAAC6C,GAAG,CAACrC,EAAE,CAAC,EAAE;EAC1B,MAAMP,MAAM,GAAGM,SAAS,CAACC,EAAE,CAAC;EAC5BP,MAAM,CAACa,SAAS,GAAG,IAAI;EACvB;EACA;EACA,IAAIb,MAAM,CAACY,OAAO,EAAE2D,aAAa,CAAChE,EAAE,CAAC;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASkE,OAAOA,CAAClE,EAAU,EAAQ;EACxC,MAAMyD,MAAM,GAAGvD,QAAQ,CAAC,CAAC,CAACV,OAAO,CAACW,GAAG,CAACH,EAAE,CAAC;EACzC,IAAI,CAACyD,MAAM,EAAE;EAEb,KAAK7B,aAAa,CAAC5B,EAAE,CAAC,CAACmE,IAAI,CAAE5B,IAAI,IAAK;IACpC;IACA;IACA;IACA,MAAMtC,GAAG,GAAGC,QAAQ,CAAC,CAAC;IACtB,IAAID,GAAG,CAACT,OAAO,CAACW,GAAG,CAACH,EAAE,CAAC,KAAKyD,MAAM,EAAE;IACpC,IAAIlB,IAAI,KAAK,IAAI,EAAE;MACjByB,aAAa,CAAChE,EAAE,CAAC;MACjB;IACF;IACA,MAAMmD,OAAoB,GAAG;MAC3B,GAAGM,MAAM;MACTb,IAAI,EAAEC,eAAe,CAACY,MAAM,CAACb,IAAI,EAAEa,MAAM,CAACX,EAAE,EAAEW,MAAM,CAAC5D,QAAQ,CAACkD,KAAK,CAAC;MACpED,EAAE,EAAEP,IAAI;MACRY,OAAO,EAAE,IAAI;MACbE,UAAU,EAAEI,MAAM,CAACJ,UAAU,GAAG;IAClC,CAAC;IACDpD,GAAG,CAACT,OAAO,CAACkB,GAAG,CAACV,EAAE,EAAEmD,OAAO,CAAC;IAC5BI,OAAO,CAACJ,OAAO,EAAE,IAAI,CAAC;IACtBjC,OAAO,CAACjB,GAAG,CAAC;EACd,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS+D,aAAaA,CAAChE,EAAU,EAAQ;EAC9C,MAAMC,GAAG,GAAGC,QAAQ,CAAC,CAAC;EACtB,MAAMuD,MAAM,GAAGxD,GAAG,CAACT,OAAO,CAACW,GAAG,CAACH,EAAE,CAAC;EAElC,IAAIyD,MAAM,KAAKW,SAAS,IAAIX,MAAM,CAACjB,OAAO,CAAC6B,IAAI,KAAK,OAAO,IAAI,CAACZ,MAAM,CAACL,SAAS,EAAE;IAChFnD,GAAG,CAACT,OAAO,CAACkB,GAAG,CAACV,EAAE,EAAE;MAAE,GAAGyD,MAAM;MAAEL,SAAS,EAAE;IAAK,CAAC,CAAC;IACnD,MAAMA,SAAS,GAAGrD,SAAS,CAACC,EAAE,CAAC;IAC/B,IAAIoD,SAAS,CAAC3C,WAAW,KAAK,IAAI,EAAE;MAClC;MACA;MACA2C,SAAS,CAAC3C,WAAW,GAAGkD,UAAU,CAAC,MAAM;QACvCP,SAAS,CAAC3C,WAAW,GAAG,IAAI;QAC5BuD,aAAa,CAAChE,EAAE,CAAC;MACnB,CAAC,EAAE,CAAC,CAAC;IACP;IACAkB,OAAO,CAACjB,GAAG,CAAC;IACZ;EACF;EAEA,MAAMR,MAAM,GAAGQ,GAAG,CAACR,MAAM,CAACU,GAAG,CAACH,EAAE,CAAC;EACjC,IAAIP,MAAM,EAAE;IACV;IACA;IACAkB,WAAW,CAAClB,MAAM,CAAC;IACnBoB,mBAAmB,CAACpB,MAAM,CAAC;IAC3BQ,GAAG,CAACR,MAAM,CAAC8B,MAAM,CAACvB,EAAE,CAAC;EACvB;EACA,IAAI,CAACC,GAAG,CAACT,OAAO,CAAC+B,MAAM,CAACvB,EAAE,CAAC,EAAE;EAC7BkB,OAAO,CAACjB,GAAG,CAAC;AACd;;AAEA;AACO,SAASqE,gBAAgBA,CAAA,EAAS;EACvC,MAAM5B,QAAQ,GAAG1B,UAAU,CAACC,4BAA4B;EACxD;EACA;EACA,IAAIyB,QAAQ,EAAE,KAAK,MAAMjD,MAAM,IAAIiD,QAAQ,CAACjD,MAAM,CAAC0B,MAAM,CAAC,CAAC,EAAER,WAAW,CAAClB,MAAM,CAAC;EAChFuB,UAAU,CAACC,4BAA4B,GAAG5B,aAAa,CAAC,CAAC;EACzDkF,gBAAgB,GAAG,KAAK;AAC1B;AAEA,IAAIA,gBAAgB,GAAG,KAAK;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASX,kBAAkBA,CAAA,EAAS;EAClC,IAAIY,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IAAIH,gBAAgB,EAAE;EAC/DA,gBAAgB,GAAG,IAAI;EACvB;EACAI,OAAO,CAACC,IAAI,CACV,6EAA6E,GAC3E,2EAA2E,GAC3E,uEAAuE,GACvE,sCACJ,CAAC;AACH;;AAEA;AACA,SAAS/B,eAAeA,CAACD,IAAkB,EAAEE,EAAgB,EAAE+B,CAAS,EAAgB;EACtF,MAAMC,OAAO,GAAGD,CAAC,GAAG,CAAC,GAAG,CAAC,GAAGA,CAAC,GAAG,CAAC,GAAG,CAAC,GAAGA,CAAC;EACzC,OAAO;IACL7C,CAAC,EAAEY,IAAI,CAACZ,CAAC,GAAG,CAACc,EAAE,CAACd,CAAC,GAAGY,IAAI,CAACZ,CAAC,IAAI8C,OAAO;IACrC7C,CAAC,EAAEW,IAAI,CAACX,CAAC,GAAG,CAACa,EAAE,CAACb,CAAC,GAAGW,IAAI,CAACX,CAAC,IAAI6C,OAAO;IACrC5C,KAAK,EAAEU,IAAI,CAACV,KAAK,GAAG,CAACY,EAAE,CAACZ,KAAK,GAAGU,IAAI,CAACV,KAAK,IAAI4C,OAAO;IACrD3C,MAAM,EAAES,IAAI,CAACT,MAAM,GAAG,CAACW,EAAE,CAACX,MAAM,GAAGS,IAAI,CAACT,MAAM,IAAI2C;EACpD,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASvB,OAAOA,CAACE,MAAmB,EAAEN,OAAgB,EAAQ;EAC5D,MAAMlD,GAAG,GAAGC,QAAQ,CAAC,CAAC;EACtB,MAAMF,EAAE,GAAGyD,MAAM,CAACzD,EAAE;EACpB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAM+E,SAAS,GAAIC,QAAkB,IAAK;IACxC,SAAS;;IACT,IAAIA,QAAQ,KAAK,KAAK,EAAE;IACxB,IAAAC,8BAAO,EAAC9B,OAAO,GAAGa,aAAa,GAAGD,oBAAoB,CAAC,CAAC/D,EAAE,CAAC;EAC7D,CAAC;EAEDyD,MAAM,CAAC5D,QAAQ,CAACkD,KAAK,GAAG,CAAC;EACzB9C,GAAG,CAACJ,QAAQ,CAACkD,KAAK,GAAG,CAAC;EAEtB,IAAImC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;IACzB,MAAMC,QAAQ,GAAGjC,OAAO,GAAGkC,8BAAkB,GAAGC,6BAAiB;IACjE,MAAMC,MAAM,GAAGpC,OAAO,GAAGqC,6BAAM,CAACC,EAAE,CAACD,6BAAM,CAACE,KAAK,CAAC,GAAGF,6BAAM,CAACG,GAAG,CAACH,6BAAM,CAACE,KAAK,CAAC;IAC3EjC,MAAM,CAAC5D,QAAQ,CAACkD,KAAK,GAAG,IAAA6C,iCAAU,EAAC,CAAC,EAAE;MAAER,QAAQ;MAAEG;IAAO,CAAC,EAAER,SAAS,CAAC;IACtE9E,GAAG,CAACJ,QAAQ,CAACkD,KAAK,GAAG,IAAA6C,iCAAU,EAAC,CAAC,EAAE;MAAER,QAAQ;MAAEG;IAAO,CAAC,CAAC;IACxD;EACF;EAEA,MAAMM,MAAM,GAAG1C,OAAO,GAAG2C,wBAAY,GAAGC,uBAAW;EACnDtC,MAAM,CAAC5D,QAAQ,CAACkD,KAAK,GAAG,IAAAiD,iCAAU,EAAC,CAAC,EAAEH,MAAM,EAAEd,SAAS,CAAC;EACxD9E,GAAG,CAACJ,QAAQ,CAACkD,KAAK,GAAG,IAAAiD,iCAAU,EAAC,CAAC,EAAEH,MAAM,CAAC;AAC5C","ignoreList":[]}
|
|
@@ -89,7 +89,8 @@ function MediaFlightSurface({
|
|
|
89
89
|
content,
|
|
90
90
|
cornerRadius,
|
|
91
91
|
contentFit,
|
|
92
|
-
surfaceType
|
|
92
|
+
surfaceType,
|
|
93
|
+
unbinding
|
|
93
94
|
} = flight;
|
|
94
95
|
|
|
95
96
|
// The COMMIT signal `flyTo`'s promise waits on, and the reason it is an effect
|
|
@@ -126,6 +127,11 @@ function MediaFlightSurface({
|
|
|
126
127
|
content: content,
|
|
127
128
|
contentFit: contentFit,
|
|
128
129
|
surfaceType: surfaceType
|
|
130
|
+
// One commit with no player before this node leaves the DOM — see
|
|
131
|
+
// `releaseFlight`. Without it the dying element's auto-pause mirrors
|
|
132
|
+
// through expo-video and stops the video the viewer just landed on.
|
|
133
|
+
,
|
|
134
|
+
detached: unbinding
|
|
129
135
|
// A flying surface is a picture, never a control: it must not intercept
|
|
130
136
|
// the press that is already travelling to whatever is underneath it.
|
|
131
137
|
,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useSyncExternalStore","StyleSheet","interpolate","useAnimatedStyle","OverlayRoot","Portal","MediaSurface","getFlights","notifySurfaceMounted","subscribeToFlights","jsx","_jsx","MediaFlightLayer","flights","length","children","map","flight","MediaFlightSurface","id","displayName","from","to","progress","content","cornerRadius","contentFit","surfaceType","originX","x","originY","y","boxStyle","transform","translateX","value","translateY","width","height","pointerEvents","style","styles","box","left","top","borderRadius","create","position","overflow"],"sourceRoot":"../../../src","sources":["media-flight/MediaFlightLayer.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,oBAAoB,QAAQ,OAAO;AACvD,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,WAAW,EAAEC,gBAAgB,QAAQ,yBAAyB;AAEvE,SAASC,WAAW,QAAQ,qBAAY;AACxC,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,UAAU,EAAEC,oBAAoB,EAAEC,kBAAkB,QAAQ,YAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG/E;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAA,EAAG;EACjC,MAAMC,OAAO,GAAGb,oBAAoB,CAACS,kBAAkB,EAAEF,UAAU,EAAEA,UAAU,CAAC;EAEhF,IAAIM,OAAO,CAACC,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EAErC,oBACEH,IAAA,CAACN,MAAM;IAAAU,QAAA,eAKLJ,IAAA,CAACP,WAAW;MAAAW,QAAA,EACTF,OAAO,CAACG,GAAG,CAAEC,MAAM,iBAClBN,IAAA,CAACO,kBAAkB;QAAiBD,MAAM,EAAEA;MAAO,GAA1BA,MAAM,CAACE,EAAqB,CACtD;IAAC,CACS;EAAC,CACR,CAAC;AAEb;AAEAP,gBAAgB,CAACQ,WAAW,GAAG,kBAAkB;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASF,kBAAkBA,CAAC;EAAED;AAAgC,CAAC,EAAE;EAC/D,MAAM;IAAEE,EAAE;IAAEE,IAAI;IAAEC,EAAE;IAAEC,QAAQ;IAAEC,OAAO;IAAEC,YAAY;IAAEC,UAAU;IAAEC;
|
|
1
|
+
{"version":3,"names":["useEffect","useSyncExternalStore","StyleSheet","interpolate","useAnimatedStyle","OverlayRoot","Portal","MediaSurface","getFlights","notifySurfaceMounted","subscribeToFlights","jsx","_jsx","MediaFlightLayer","flights","length","children","map","flight","MediaFlightSurface","id","displayName","from","to","progress","content","cornerRadius","contentFit","surfaceType","unbinding","originX","x","originY","y","boxStyle","transform","translateX","value","translateY","width","height","detached","pointerEvents","style","styles","box","left","top","borderRadius","create","position","overflow"],"sourceRoot":"../../../src","sources":["media-flight/MediaFlightLayer.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -59,7 +59,8 @@ export const MediaSurface = /*#__PURE__*/memo(function MediaSurface({
|
|
|
59
59
|
nativeControls = false,
|
|
60
60
|
accessibilityLabel,
|
|
61
61
|
pointerEvents,
|
|
62
|
-
flightId
|
|
62
|
+
flightId,
|
|
63
|
+
detached = false
|
|
63
64
|
}) {
|
|
64
65
|
// Captured once — see `surfaceType` above. A consumer changing it later gets
|
|
65
66
|
// the value the view was mounted with, which is the only value expo-video
|
|
@@ -110,7 +111,7 @@ export const MediaSurface = /*#__PURE__*/memo(function MediaSurface({
|
|
|
110
111
|
onLoad: content.kind === 'video' ? undefined : reportLive,
|
|
111
112
|
...webDraggableProps
|
|
112
113
|
}), content.kind === 'video' && expoVideo !== null ? /*#__PURE__*/_jsx(expoVideo.VideoView, {
|
|
113
|
-
player: content.player,
|
|
114
|
+
player: detached ? null : content.player,
|
|
114
115
|
contentFit: contentFit,
|
|
115
116
|
surfaceType: mountedSurfaceType,
|
|
116
117
|
nativeControls: nativeControls
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","useCallback","useState","Platform","StyleSheet","View","Image","Animated","handOffFlight","loadExpoVideo","warnExpoVideoUnavailable","jsx","_jsx","jsxs","_jsxs","webDraggableProps","OS","draggable","MediaSurface","content","style","contentFit","surfaceType","nativeControls","accessibilityLabel","pointerEvents","flightId","mountedSurfaceType","reportLive","undefined","still","kind","poster","uri","expoVideo","styles","box","children","source","absoluteFill","transition","onLoad","VideoView","player","fillReplaced","onFirstFrameRender","displayName","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,QAAQ,QAA6B,OAAO;AACxE,SACEC,QAAQ,EACRC,UAAU,EACVC,IAAI,QAIC,cAAc;AACrB,SAASC,KAAK,QAAQ,YAAY;AAClC,OAAOC,QAAQ,MAAM,yBAAyB;AAE9C,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,GAAGZ,QAAQ,CAACa,EAAE,KAAK,KAAK,GAAG;EAAEC,SAAS,EAAE;AAAM,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"names":["memo","useCallback","useState","Platform","StyleSheet","View","Image","Animated","handOffFlight","loadExpoVideo","warnExpoVideoUnavailable","jsx","_jsx","jsxs","_jsxs","webDraggableProps","OS","draggable","MediaSurface","content","style","contentFit","surfaceType","nativeControls","accessibilityLabel","pointerEvents","flightId","detached","mountedSurfaceType","reportLive","undefined","still","kind","poster","uri","expoVideo","styles","box","children","source","absoluteFill","transition","onLoad","VideoView","player","fillReplaced","onFirstFrameRender","displayName","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,QAAQ,QAA6B,OAAO;AACxE,SACEC,QAAQ,EACRC,UAAU,EACVC,IAAI,QAIC,cAAc;AACrB,SAASC,KAAK,QAAQ,YAAY;AAClC,OAAOC,QAAQ,MAAM,yBAAyB;AAE9C,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,GAAGZ,QAAQ,CAACa,EAAE,KAAK,KAAK,GAAG;EAAEC,SAAS,EAAE;AAAM,CAAC,GAAG,CAAC,CAAC;AAuD3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,gBAAGlB,IAAI,CAAC,SAASkB,YAAYA,CAAC;EACrDC,OAAO;EACPC,KAAK;EACLC,UAAU,GAAG,SAAS;EACtBC,WAAW,GAAG,aAAa;EAC3BC,cAAc,GAAG,KAAK;EACtBC,kBAAkB;EAClBC,aAAa;EACbC,QAAQ;EACRC,QAAQ,GAAG;AACM,CAAC,EAAE;EACpB;EACA;EACA;EACA,MAAM,CAACC,kBAAkB,CAAC,GAAG1B,QAAQ,CAACoB,WAAW,CAAC;;EAElD;EACA;EACA;EACA;EACA,MAAMO,UAAU,GAAG5B,WAAW,CAAC,MAAM;IACnC,IAAIyB,QAAQ,KAAKI,SAAS,EAAEtB,aAAa,CAACkB,QAAQ,CAAC;EACrD,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,MAAMK,KAAK,GAAGZ,OAAO,CAACa,IAAI,KAAK,OAAO,GAAGb,OAAO,CAACc,MAAM,GAAGd,OAAO,CAACe,GAAG;EACrE;EACA;EACA,MAAMC,SAAS,GAAGhB,OAAO,CAACa,IAAI,KAAK,OAAO,GAAGvB,aAAa,CAAC,CAAC,GAAG,IAAI;EACnE,IAAIU,OAAO,CAACa,IAAI,KAAK,OAAO,IAAIG,SAAS,KAAK,IAAI,EAAE;IAClD;IACA;IACA;IACA;IACAzB,wBAAwB,CAAC,CAAC;EAC5B;EAEA,oBACEI,KAAA,CAACP,QAAQ,CAACF,IAAI;IAACe,KAAK,EAAE,CAACgB,MAAM,CAACC,GAAG,EAAEjB,KAAK,CAAE;IAACK,aAAa,EAAEA,aAAc;IAAAa,QAAA,GACrEP,KAAK,KAAKD,SAAS,GAAG,IAAI;IAAA;IACzB;IACA;IACA;IACA;IACA;IACA;IACAlB,IAAA,CAACN,KAAK;MACJiC,MAAM,EAAE;QAAEL,GAAG,EAAEH;MAAM,CAAE;MACvBV,UAAU,EAAEA,UAAW;MACvBD,KAAK,EAAEhB,UAAU,CAACoC,YAAa;MAC/BC,UAAU,EAAE,CAAE;MACdjB,kBAAkB,EAAEA;MACpB;MACA;MACA;MAAA;MACAkB,MAAM,EAAEvB,OAAO,CAACa,IAAI,KAAK,OAAO,GAAGF,SAAS,GAAGD,UAAW;MAAA,GACtDd;IAAiB,CACtB,CACF,EACAI,OAAO,CAACa,IAAI,KAAK,OAAO,IAAIG,SAAS,KAAK,IAAI,gBAC7CvB,IAAA,CAACuB,SAAS,CAACQ,SAAS;MAClBC,MAAM,EAAEjB,QAAQ,GAAG,IAAI,GAAGR,OAAO,CAACyB,MAAO;MACzCvB,UAAU,EAAEA,UAAW;MACvBC,WAAW,EAAEM,kBAAmB;MAChCL,cAAc,EAAEA;MAChB;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MAAA;MACAH,KAAK,EAAE,CAAChB,UAAU,CAACoC,YAAY,EAAEJ,MAAM,CAACS,YAAY,CAAE;MACtDrB,kBAAkB,EAAEA,kBAAmB;MACvCsB,kBAAkB,EAAEjB;IAAW,CAChC,CAAC,GACA,IAAI;EAAA,CACK,CAAC;AAEpB,CAAC,CAAC;AAEFX,YAAY,CAAC6B,WAAW,GAAG,cAAc;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAAC;EAC1B7B,OAAO;EACPC,KAAK;EACLC,UAAU,GAAG,OAAO;EACpBG;AAMF,CAAC,EAAE;EACD,MAAMU,GAAG,GAAGf,OAAO,CAACa,IAAI,KAAK,OAAO,GAAGb,OAAO,CAACc,MAAM,GAAGd,OAAO,CAACe,GAAG;EACnE,IAAIA,GAAG,KAAKJ,SAAS,EAAE,oBAAOlB,IAAA,CAACqC,iBAAiB;IAAC7B,KAAK,EAAEA;EAAM,CAAE,CAAC;EACjE,oBACER,IAAA,CAACN,KAAK;IACJiC,MAAM,EAAE;MAAEL;IAAI,CAAE;IAChBb,UAAU,EAAEA,UAAW;IACvBD,KAAK,EAAEA,KAAM;IACbqB,UAAU,EAAE,CAAE;IACdjB,kBAAkB,EAAEA,kBAAmB;IAAA,GACnCT;EAAiB,CACtB,CAAC;AAEN;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASkC,iBAAiBA,CAAC;EAAE7B;AAAoC,CAAC,EAAE;EACzE,oBAAOR,IAAA,CAACP,IAAI;IAACe,KAAK,EAAE,CAACgB,MAAM,CAACc,KAAK,EAAE9B,KAAK,CAAE;IAACK,aAAa,EAAC;EAAM,CAAE,CAAC;AACpE;AAEA,MAAMW,MAAM,GAAGhC,UAAU,CAAC+C,MAAM,CAAC;EAC/B;AACF;AACA;AACA;EACEN,YAAY,EAAE;IACZO,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE;EACV,CAAC;EACDhB,GAAG,EAAE;IACH;IACA;IACAiB,QAAQ,EAAE;EACZ,CAAC;EACDJ,KAAK,EAAE;IACLK,eAAe,EAAE;EACnB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -68,7 +68,8 @@ function statusFor(id) {
|
|
|
68
68
|
settled: false,
|
|
69
69
|
handedOff: false,
|
|
70
70
|
mountWaiters: [],
|
|
71
|
-
mountTimer: null
|
|
71
|
+
mountTimer: null,
|
|
72
|
+
unbindTimer: null
|
|
72
73
|
};
|
|
73
74
|
reg.status.set(id, status);
|
|
74
75
|
}
|
|
@@ -76,7 +77,9 @@ function statusFor(id) {
|
|
|
76
77
|
}
|
|
77
78
|
function clearTimers(status) {
|
|
78
79
|
if (status.mountTimer !== null) clearTimeout(status.mountTimer);
|
|
80
|
+
if (status.unbindTimer !== null) clearTimeout(status.unbindTimer);
|
|
79
81
|
status.mountTimer = null;
|
|
82
|
+
status.unbindTimer = null;
|
|
80
83
|
}
|
|
81
84
|
function resolveMountWaiters(status) {
|
|
82
85
|
const waiters = status.mountWaiters;
|
|
@@ -207,6 +210,7 @@ export function flyTo(id, rect, content, options) {
|
|
|
207
210
|
// silently ignored by the view it is meant to configure.
|
|
208
211
|
surfaceType: existing.surfaceType,
|
|
209
212
|
landing: false,
|
|
213
|
+
unbinding: false,
|
|
210
214
|
generation: existing.generation + 1
|
|
211
215
|
};
|
|
212
216
|
reg.flights.set(id, next);
|
|
@@ -229,6 +233,7 @@ export function flyTo(id, rect, content, options) {
|
|
|
229
233
|
surfaceType: options?.surfaceType ?? 'textureView',
|
|
230
234
|
progress: makeMutable(0),
|
|
231
235
|
landing: false,
|
|
236
|
+
unbinding: false,
|
|
232
237
|
generation: 0
|
|
233
238
|
};
|
|
234
239
|
reg.flights.set(id, flight);
|
|
@@ -337,9 +342,48 @@ export function flyBack(id) {
|
|
|
337
342
|
});
|
|
338
343
|
}
|
|
339
344
|
|
|
340
|
-
/**
|
|
345
|
+
/**
|
|
346
|
+
* Drop the surface for `id`. Called when a landing leg settles, and on teardown.
|
|
347
|
+
*
|
|
348
|
+
* A VIDEO surface does not go straight out. It renders for one more commit with
|
|
349
|
+
* NO player first, because expo-video's web player mirrors pause across every
|
|
350
|
+
* element bound to it and a `<video>` removed from the DOM is auto-paused by the
|
|
351
|
+
* browser — while `unmountVideoView` only runs in a PASSIVE effect cleanup,
|
|
352
|
+
* i.e. after removal and after that auto-pause. So the dying element pauses the
|
|
353
|
+
* one the viewer is now watching. Measured: the reel's video paused 1 ms after
|
|
354
|
+
* the flying surface left the DOM, with `currentTime` still advancing and
|
|
355
|
+
* nobody having called `pause()`.
|
|
356
|
+
*
|
|
357
|
+
* Rendering `player={null}` for one commit runs expo-video's own `[props.player]`
|
|
358
|
+
* effect while the node is STILL in the DOM: its cleanup calls
|
|
359
|
+
* `unmountVideoView`, the element leaves `_mountedVideos`, and its later pause
|
|
360
|
+
* reaches nobody. That is the documented mount/unmount pair, not a patch of
|
|
361
|
+
* somebody else's module.
|
|
362
|
+
*
|
|
363
|
+
* The cost is one frame in which the outgoing surface shows its poster instead
|
|
364
|
+
* of video. It is already on its way out and the destination is live by then —
|
|
365
|
+
* `handOff` is what got us here — so that frame is covered.
|
|
366
|
+
*/
|
|
341
367
|
export function releaseFlight(id) {
|
|
342
368
|
const reg = registry();
|
|
369
|
+
const flight = reg.flights.get(id);
|
|
370
|
+
if (flight !== undefined && flight.content.kind === 'video' && !flight.unbinding) {
|
|
371
|
+
reg.flights.set(id, {
|
|
372
|
+
...flight,
|
|
373
|
+
unbinding: true
|
|
374
|
+
});
|
|
375
|
+
const unbinding = statusFor(id);
|
|
376
|
+
if (unbinding.unbindTimer === null) {
|
|
377
|
+
// After the commit AND expo-video's passive effect, which is the whole
|
|
378
|
+
// point — a microtask would run before either.
|
|
379
|
+
unbinding.unbindTimer = setTimeout(() => {
|
|
380
|
+
unbinding.unbindTimer = null;
|
|
381
|
+
releaseFlight(id);
|
|
382
|
+
}, 0);
|
|
383
|
+
}
|
|
384
|
+
publish(reg);
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
343
387
|
const status = reg.status.get(id);
|
|
344
388
|
if (status) {
|
|
345
389
|
// A waiter still parked on `flyTo`'s promise would otherwise hang until its
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","Easing","makeMutable","runOnJS","withSpring","withTiming","RADIUS","SURFACE_MOUNT_TIMEOUT_MS","CLOSE_DURATION_WEB","CLOSE_SPRING","OPEN_DURATION_WEB","OPEN_SPRING","DEFAULT_FLIGHT_CORNER_RADIUS","emptyRegistry","anchors","Map","flights","status","listeners","Set","snapshot","progress","statusFor","id","reg","registry","get","mounted","settled","handedOff","mountWaiters","mountTimer","set","clearTimers","clearTimeout","resolveMountWaiters","waiters","waiter","globalThis","__oxyhq_bloom_media_flight__","publish","values","listener","subscribeToFlights","add","delete","getFlights","flightProgress","registerAnchor","node","measureAnchor","Promise","resolve","measureInWindow","x","y","width","height","hasFlight","has","flyTo","rect","content","options","existing","next","from","interpolateRect","to","value","cornerRadius","contentFit","surfaceType","landing","generation","retargeted","animate","awaitSurfaceMount","flight","push","setTimeout","warnNoLayerMounted","notifySurfaceMounted","notifySurfaceSettled","releaseFlight","handOffFlight","flyBack","then","resetMediaFlight","hasWarnedNoLayer","process","env","NODE_ENV","console","warn","t","clamped","onSettled","finished","OS","duration","easing","in","cubic","out","spring"],"sourceRoot":"../../../src","sources":["media-flight/store.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Platform","Easing","makeMutable","runOnJS","withSpring","withTiming","RADIUS","SURFACE_MOUNT_TIMEOUT_MS","CLOSE_DURATION_WEB","CLOSE_SPRING","OPEN_DURATION_WEB","OPEN_SPRING","DEFAULT_FLIGHT_CORNER_RADIUS","emptyRegistry","anchors","Map","flights","status","listeners","Set","snapshot","progress","statusFor","id","reg","registry","get","mounted","settled","handedOff","mountWaiters","mountTimer","unbindTimer","set","clearTimers","clearTimeout","resolveMountWaiters","waiters","waiter","globalThis","__oxyhq_bloom_media_flight__","publish","values","listener","subscribeToFlights","add","delete","getFlights","flightProgress","registerAnchor","node","measureAnchor","Promise","resolve","measureInWindow","x","y","width","height","hasFlight","has","flyTo","rect","content","options","existing","next","from","interpolateRect","to","value","cornerRadius","contentFit","surfaceType","landing","unbinding","generation","retargeted","animate","awaitSurfaceMount","flight","push","setTimeout","warnNoLayerMounted","notifySurfaceMounted","notifySurfaceSettled","releaseFlight","handOffFlight","flyBack","then","undefined","kind","resetMediaFlight","hasWarnedNoLayer","process","env","NODE_ENV","console","warn","t","clamped","onSettled","finished","OS","duration","easing","in","cubic","out","spring"],"sourceRoot":"../../../src","sources":["media-flight/store.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -69,6 +69,19 @@ export interface MediaSurfaceProps {
|
|
|
69
69
|
* surface that handed off to itself would release on its own first frame.
|
|
70
70
|
*/
|
|
71
71
|
flightId?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Render the video arm with NO player, unbinding this element from it while
|
|
74
|
+
* the element is still in the DOM.
|
|
75
|
+
*
|
|
76
|
+
* expo-video's web player mirrors pause across every element bound to it, and
|
|
77
|
+
* a `<video>` removed from the DOM is auto-paused by the browser — but
|
|
78
|
+
* `unmountVideoView` only runs in a PASSIVE effect cleanup, so it happens
|
|
79
|
+
* after removal and after that auto-pause. A dying element therefore pauses
|
|
80
|
+
* the one the viewer is watching. Setting this for one commit before unmount
|
|
81
|
+
* runs expo-video's own `[props.player]` effect early, whose cleanup unbinds,
|
|
82
|
+
* so the later pause reaches nobody.
|
|
83
|
+
*/
|
|
84
|
+
detached?: boolean;
|
|
72
85
|
}
|
|
73
86
|
/**
|
|
74
87
|
* A still image, or a video fed by a player the CONSUMER owns.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaSurface.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/MediaSurface.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAA+B,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAG/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAE7B;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC;AASjE,MAAM,WAAW,iBAAiB;IAChC,2EAA2E;IAC3E,OAAO,EAAE,mBAAmB,CAAC;IAC7B,0EAA0E;IAC1E,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,4DAA4D;IAC5D,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACjC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,kFAAkF;IAClF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;IAC1D;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"MediaSurface.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/MediaSurface.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAA+B,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAG/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAE7B;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC;AASjE,MAAM,WAAW,iBAAiB;IAChC,2EAA2E;IAC3E,OAAO,EAAE,mBAAmB,CAAC;IAC7B,0EAA0E;IAC1E,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,4DAA4D;IAC5D,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACjC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,kFAAkF;IAClF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;IAC1D;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,yDAiFvB,CAAC;AAIH;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,KAAK,EACL,UAAoB,EACpB,kBAAkB,GACnB,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,2CAaA;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,gBAAgB,CAAA;CAAE,2CAExE"}
|
|
@@ -26,6 +26,8 @@ interface FlightStatus {
|
|
|
26
26
|
/** Waiters on `flyTo`'s promise, resolved once `mounted` turns true. */
|
|
27
27
|
mountWaiters: Array<() => void>;
|
|
28
28
|
mountTimer: ReturnType<typeof setTimeout> | null;
|
|
29
|
+
/** Pending final removal while the surface unbinds from its player. */
|
|
30
|
+
unbindTimer: ReturnType<typeof setTimeout> | null;
|
|
29
31
|
}
|
|
30
32
|
interface Registry {
|
|
31
33
|
anchors: Map<string, MediaFlightAnchorNode>;
|
|
@@ -124,7 +126,28 @@ export declare function handOffFlight(id: string): void;
|
|
|
124
126
|
* that point, and holding a flying copy over it would double the video.
|
|
125
127
|
*/
|
|
126
128
|
export declare function flyBack(id: string): void;
|
|
127
|
-
/**
|
|
129
|
+
/**
|
|
130
|
+
* Drop the surface for `id`. Called when a landing leg settles, and on teardown.
|
|
131
|
+
*
|
|
132
|
+
* A VIDEO surface does not go straight out. It renders for one more commit with
|
|
133
|
+
* NO player first, because expo-video's web player mirrors pause across every
|
|
134
|
+
* element bound to it and a `<video>` removed from the DOM is auto-paused by the
|
|
135
|
+
* browser — while `unmountVideoView` only runs in a PASSIVE effect cleanup,
|
|
136
|
+
* i.e. after removal and after that auto-pause. So the dying element pauses the
|
|
137
|
+
* one the viewer is now watching. Measured: the reel's video paused 1 ms after
|
|
138
|
+
* the flying surface left the DOM, with `currentTime` still advancing and
|
|
139
|
+
* nobody having called `pause()`.
|
|
140
|
+
*
|
|
141
|
+
* Rendering `player={null}` for one commit runs expo-video's own `[props.player]`
|
|
142
|
+
* effect while the node is STILL in the DOM: its cleanup calls
|
|
143
|
+
* `unmountVideoView`, the element leaves `_mountedVideos`, and its later pause
|
|
144
|
+
* reaches nobody. That is the documented mount/unmount pair, not a patch of
|
|
145
|
+
* somebody else's module.
|
|
146
|
+
*
|
|
147
|
+
* The cost is one frame in which the outgoing surface shows its poster instead
|
|
148
|
+
* of video. It is already on its way out and the destination is live by then —
|
|
149
|
+
* `handOff` is what got us here — so that frame is covered.
|
|
150
|
+
*/
|
|
128
151
|
export declare function releaseFlight(id: string): void;
|
|
129
152
|
/** Test seam — drops every anchor and surface. */
|
|
130
153
|
export declare function resetMediaFlight(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/store.ts"],"names":[],"mappings":"AA2BA,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAUjC,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,IAAsB,CAAC;AAEhE;;;;;;;;;GASG;AACH,UAAU,YAAY;IACpB,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,YAAY,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAChC,UAAU,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/store.ts"],"names":[],"mappings":"AA2BA,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAUjC,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,IAAsB,CAAC;AAEhE;;;;;;;;;GASG;AACH,UAAU,YAAY;IACpB,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,YAAY,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAChC,UAAU,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC;IACjD,uEAAuE;IACvE,WAAW,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC;CACnD;AAED,UAAU,QAAQ;IAChB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC5C,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAClC,SAAS,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IACjC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,4BAA4B,EAAE,QAAQ,GAAG,SAAS,CAAC;CACxD;AAyDD,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAMnE;AAED,wEAAwE;AACxE,wBAAgB,UAAU,IAAI,SAAS,WAAW,EAAE,CAEnD;AAED,wDAAwD;AACxD,wBAAgB,cAAc,IAAI,WAAW,CAAC,MAAM,CAAC,CAEpD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAInF;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAWtE;AAED,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE7C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,KAAK,CACnB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA4Df;AAuBD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAIrD;AAED,4DAA4D;AAC5D,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAIrD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAQ9C;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAyBxC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CA6B9C;AAED,kDAAkD;AAClD,wBAAgB,gBAAgB,IAAI,IAAI,CAOvC"}
|
|
@@ -85,6 +85,19 @@ export interface MediaFlight {
|
|
|
85
85
|
* settles, the surface is released instead of parked.
|
|
86
86
|
*/
|
|
87
87
|
landing: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* True for the ONE commit between "release requested" and the surface
|
|
90
|
+
* actually going away, during which a video surface renders with no player.
|
|
91
|
+
*
|
|
92
|
+
* expo-video's web player MIRRORS pause across every element bound to it
|
|
93
|
+
* (`VideoPlayer.web.js`: `video.onpause` pauses all the others), and a
|
|
94
|
+
* `<video>` removed from the DOM is auto-paused by the browser. Its
|
|
95
|
+
* `unmountVideoView` runs in a PASSIVE effect cleanup — after removal, after
|
|
96
|
+
* the auto-pause — so a dying element pauses the one the viewer is watching.
|
|
97
|
+
* Unbinding first takes this element out of `_mountedVideos` while it is
|
|
98
|
+
* still in the DOM, so its later pause reaches nobody.
|
|
99
|
+
*/
|
|
100
|
+
unbinding: boolean;
|
|
88
101
|
/** Bumped on every retarget, so React remounts nothing but the layer re-reads. */
|
|
89
102
|
generation: number;
|
|
90
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE7E;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,eAAe,CACb,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GACtE,IAAI,CAAC;CACT;AAED,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,kEAAkE;IAClE,MAAM,EAAE,eAAe,CAAC;IACxB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,6EAA6E;AAC7E,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAExE;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,mBAAmB,CAAC;IAC7B,wCAAwC;IACxC,IAAI,EAAE,YAAY,CAAC;IACnB,oCAAoC;IACpC,EAAE,EAAE,YAAY,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC;IAChC,gFAAgF;IAChF,WAAW,EAAE,gBAAgB,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,kFAAkF;IAClF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACjC;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,IAAI,KAAK,IAAI,CAAC;IACzE;;;;OAIG;IACH,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC5D;;;;;;;;;;;;;OAaG;IACH,KAAK,EAAE,CACL,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB;;;;OAIG;IACH,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B;;;;;;;;;OASG;IACH,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/B"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,6 +69,19 @@ export interface MediaSurfaceProps {
|
|
|
69
69
|
* surface that handed off to itself would release on its own first frame.
|
|
70
70
|
*/
|
|
71
71
|
flightId?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Render the video arm with NO player, unbinding this element from it while
|
|
74
|
+
* the element is still in the DOM.
|
|
75
|
+
*
|
|
76
|
+
* expo-video's web player mirrors pause across every element bound to it, and
|
|
77
|
+
* a `<video>` removed from the DOM is auto-paused by the browser — but
|
|
78
|
+
* `unmountVideoView` only runs in a PASSIVE effect cleanup, so it happens
|
|
79
|
+
* after removal and after that auto-pause. A dying element therefore pauses
|
|
80
|
+
* the one the viewer is watching. Setting this for one commit before unmount
|
|
81
|
+
* runs expo-video's own `[props.player]` effect early, whose cleanup unbinds,
|
|
82
|
+
* so the later pause reaches nobody.
|
|
83
|
+
*/
|
|
84
|
+
detached?: boolean;
|
|
72
85
|
}
|
|
73
86
|
/**
|
|
74
87
|
* A still image, or a video fed by a player the CONSUMER owns.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaSurface.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/MediaSurface.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAA+B,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAG/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAE7B;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC;AASjE,MAAM,WAAW,iBAAiB;IAChC,2EAA2E;IAC3E,OAAO,EAAE,mBAAmB,CAAC;IAC7B,0EAA0E;IAC1E,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,4DAA4D;IAC5D,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACjC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,kFAAkF;IAClF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;IAC1D;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"MediaSurface.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/MediaSurface.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAA+B,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAEtB,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAG/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAE7B;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC;AASjE,MAAM,WAAW,iBAAiB;IAChC,2EAA2E;IAC3E,OAAO,EAAE,mBAAmB,CAAC;IAC7B,0EAA0E;IAC1E,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,4DAA4D;IAC5D,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACjC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,kFAAkF;IAClF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;IAC1D;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,yDAiFvB,CAAC;AAIH;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,KAAK,EACL,UAAoB,EACpB,kBAAkB,GACnB,EAAE;IACD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,2CAaA;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,gBAAgB,CAAA;CAAE,2CAExE"}
|
|
@@ -26,6 +26,8 @@ interface FlightStatus {
|
|
|
26
26
|
/** Waiters on `flyTo`'s promise, resolved once `mounted` turns true. */
|
|
27
27
|
mountWaiters: Array<() => void>;
|
|
28
28
|
mountTimer: ReturnType<typeof setTimeout> | null;
|
|
29
|
+
/** Pending final removal while the surface unbinds from its player. */
|
|
30
|
+
unbindTimer: ReturnType<typeof setTimeout> | null;
|
|
29
31
|
}
|
|
30
32
|
interface Registry {
|
|
31
33
|
anchors: Map<string, MediaFlightAnchorNode>;
|
|
@@ -124,7 +126,28 @@ export declare function handOffFlight(id: string): void;
|
|
|
124
126
|
* that point, and holding a flying copy over it would double the video.
|
|
125
127
|
*/
|
|
126
128
|
export declare function flyBack(id: string): void;
|
|
127
|
-
/**
|
|
129
|
+
/**
|
|
130
|
+
* Drop the surface for `id`. Called when a landing leg settles, and on teardown.
|
|
131
|
+
*
|
|
132
|
+
* A VIDEO surface does not go straight out. It renders for one more commit with
|
|
133
|
+
* NO player first, because expo-video's web player mirrors pause across every
|
|
134
|
+
* element bound to it and a `<video>` removed from the DOM is auto-paused by the
|
|
135
|
+
* browser — while `unmountVideoView` only runs in a PASSIVE effect cleanup,
|
|
136
|
+
* i.e. after removal and after that auto-pause. So the dying element pauses the
|
|
137
|
+
* one the viewer is now watching. Measured: the reel's video paused 1 ms after
|
|
138
|
+
* the flying surface left the DOM, with `currentTime` still advancing and
|
|
139
|
+
* nobody having called `pause()`.
|
|
140
|
+
*
|
|
141
|
+
* Rendering `player={null}` for one commit runs expo-video's own `[props.player]`
|
|
142
|
+
* effect while the node is STILL in the DOM: its cleanup calls
|
|
143
|
+
* `unmountVideoView`, the element leaves `_mountedVideos`, and its later pause
|
|
144
|
+
* reaches nobody. That is the documented mount/unmount pair, not a patch of
|
|
145
|
+
* somebody else's module.
|
|
146
|
+
*
|
|
147
|
+
* The cost is one frame in which the outgoing surface shows its poster instead
|
|
148
|
+
* of video. It is already on its way out and the destination is live by then —
|
|
149
|
+
* `handOff` is what got us here — so that frame is covered.
|
|
150
|
+
*/
|
|
128
151
|
export declare function releaseFlight(id: string): void;
|
|
129
152
|
/** Test seam — drops every anchor and surface. */
|
|
130
153
|
export declare function resetMediaFlight(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/store.ts"],"names":[],"mappings":"AA2BA,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAUjC,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,IAAsB,CAAC;AAEhE;;;;;;;;;GASG;AACH,UAAU,YAAY;IACpB,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,YAAY,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAChC,UAAU,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/store.ts"],"names":[],"mappings":"AA2BA,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAUjC,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACb,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,IAAsB,CAAC;AAEhE;;;;;;;;;GASG;AACH,UAAU,YAAY;IACpB,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,YAAY,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAChC,UAAU,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC;IACjD,uEAAuE;IACvE,WAAW,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC;CACnD;AAED,UAAU,QAAQ;IAChB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC5C,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAClC,SAAS,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IACjC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,4BAA4B,EAAE,QAAQ,GAAG,SAAS,CAAC;CACxD;AAyDD,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAMnE;AAED,wEAAwE;AACxE,wBAAgB,UAAU,IAAI,SAAS,WAAW,EAAE,CAEnD;AAED,wDAAwD;AACxD,wBAAgB,cAAc,IAAI,WAAW,CAAC,MAAM,CAAC,CAEpD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAInF;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAWtE;AAED,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE7C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,KAAK,CACnB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA4Df;AAuBD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAIrD;AAED,4DAA4D;AAC5D,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAIrD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAQ9C;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAyBxC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CA6B9C;AAED,kDAAkD;AAClD,wBAAgB,gBAAgB,IAAI,IAAI,CAOvC"}
|
|
@@ -85,6 +85,19 @@ export interface MediaFlight {
|
|
|
85
85
|
* settles, the surface is released instead of parked.
|
|
86
86
|
*/
|
|
87
87
|
landing: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* True for the ONE commit between "release requested" and the surface
|
|
90
|
+
* actually going away, during which a video surface renders with no player.
|
|
91
|
+
*
|
|
92
|
+
* expo-video's web player MIRRORS pause across every element bound to it
|
|
93
|
+
* (`VideoPlayer.web.js`: `video.onpause` pauses all the others), and a
|
|
94
|
+
* `<video>` removed from the DOM is auto-paused by the browser. Its
|
|
95
|
+
* `unmountVideoView` runs in a PASSIVE effect cleanup — after removal, after
|
|
96
|
+
* the auto-pause — so a dying element pauses the one the viewer is watching.
|
|
97
|
+
* Unbinding first takes this element out of `_mountedVideos` while it is
|
|
98
|
+
* still in the DOM, so its later pause reaches nobody.
|
|
99
|
+
*/
|
|
100
|
+
unbinding: boolean;
|
|
88
101
|
/** Bumped on every retarget, so React remounts nothing but the layer re-reads. */
|
|
89
102
|
generation: number;
|
|
90
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE7E;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,eAAe,CACb,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GACtE,IAAI,CAAC;CACT;AAED,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,kEAAkE;IAClE,MAAM,EAAE,eAAe,CAAC;IACxB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,6EAA6E;AAC7E,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAExE;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,mBAAmB,CAAC;IAC7B,wCAAwC;IACxC,IAAI,EAAE,YAAY,CAAC;IACnB,oCAAoC;IACpC,EAAE,EAAE,YAAY,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC;IAChC,gFAAgF;IAChF,WAAW,EAAE,gBAAgB,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,kFAAkF;IAClF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACjC;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,IAAI,KAAK,IAAI,CAAC;IACzE;;;;OAIG;IACH,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC5D;;;;;;;;;;;;;OAaG;IACH,KAAK,EAAE,CACL,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB;;;;OAIG;IACH,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B;;;;;;;;;OASG;IACH,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/B"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -88,7 +88,7 @@ MediaFlightLayer.displayName = 'MediaFlightLayer';
|
|
|
88
88
|
* work per frame is one absolutely-positioned node resizing.
|
|
89
89
|
*/
|
|
90
90
|
function MediaFlightSurface({ flight }: { flight: MediaFlight }) {
|
|
91
|
-
const { id, from, to, progress, content, cornerRadius, contentFit, surfaceType } = flight;
|
|
91
|
+
const { id, from, to, progress, content, cornerRadius, contentFit, surfaceType, unbinding } = flight;
|
|
92
92
|
|
|
93
93
|
// The COMMIT signal `flyTo`'s promise waits on, and the reason it is an effect
|
|
94
94
|
// rather than anything derived: what the caller needs to know is that React
|
|
@@ -128,6 +128,10 @@ function MediaFlightSurface({ flight }: { flight: MediaFlight }) {
|
|
|
128
128
|
content={content}
|
|
129
129
|
contentFit={contentFit}
|
|
130
130
|
surfaceType={surfaceType}
|
|
131
|
+
// One commit with no player before this node leaves the DOM — see
|
|
132
|
+
// `releaseFlight`. Without it the dying element's auto-pause mirrors
|
|
133
|
+
// through expo-video and stops the video the viewer just landed on.
|
|
134
|
+
detached={unbinding}
|
|
131
135
|
// A flying surface is a picture, never a control: it must not intercept
|
|
132
136
|
// the press that is already travelling to whatever is underneath it.
|
|
133
137
|
pointerEvents="none"
|
|
@@ -93,6 +93,19 @@ export interface MediaSurfaceProps {
|
|
|
93
93
|
* surface that handed off to itself would release on its own first frame.
|
|
94
94
|
*/
|
|
95
95
|
flightId?: string;
|
|
96
|
+
/**
|
|
97
|
+
* Render the video arm with NO player, unbinding this element from it while
|
|
98
|
+
* the element is still in the DOM.
|
|
99
|
+
*
|
|
100
|
+
* expo-video's web player mirrors pause across every element bound to it, and
|
|
101
|
+
* a `<video>` removed from the DOM is auto-paused by the browser — but
|
|
102
|
+
* `unmountVideoView` only runs in a PASSIVE effect cleanup, so it happens
|
|
103
|
+
* after removal and after that auto-pause. A dying element therefore pauses
|
|
104
|
+
* the one the viewer is watching. Setting this for one commit before unmount
|
|
105
|
+
* runs expo-video's own `[props.player]` effect early, whose cleanup unbinds,
|
|
106
|
+
* so the later pause reaches nobody.
|
|
107
|
+
*/
|
|
108
|
+
detached?: boolean;
|
|
96
109
|
}
|
|
97
110
|
|
|
98
111
|
/**
|
|
@@ -112,6 +125,7 @@ export const MediaSurface = memo(function MediaSurface({
|
|
|
112
125
|
accessibilityLabel,
|
|
113
126
|
pointerEvents,
|
|
114
127
|
flightId,
|
|
128
|
+
detached = false,
|
|
115
129
|
}: MediaSurfaceProps) {
|
|
116
130
|
// Captured once — see `surfaceType` above. A consumer changing it later gets
|
|
117
131
|
// the value the view was mounted with, which is the only value expo-video
|
|
@@ -162,7 +176,7 @@ export const MediaSurface = memo(function MediaSurface({
|
|
|
162
176
|
)}
|
|
163
177
|
{content.kind === 'video' && expoVideo !== null ? (
|
|
164
178
|
<expoVideo.VideoView
|
|
165
|
-
player={content.player}
|
|
179
|
+
player={detached ? null : content.player}
|
|
166
180
|
contentFit={contentFit}
|
|
167
181
|
surfaceType={mountedSurfaceType}
|
|
168
182
|
nativeControls={nativeControls}
|
|
@@ -77,6 +77,8 @@ interface FlightStatus {
|
|
|
77
77
|
/** Waiters on `flyTo`'s promise, resolved once `mounted` turns true. */
|
|
78
78
|
mountWaiters: Array<() => void>;
|
|
79
79
|
mountTimer: ReturnType<typeof setTimeout> | null;
|
|
80
|
+
/** Pending final removal while the surface unbinds from its player. */
|
|
81
|
+
unbindTimer: ReturnType<typeof setTimeout> | null;
|
|
80
82
|
}
|
|
81
83
|
|
|
82
84
|
interface Registry {
|
|
@@ -119,6 +121,7 @@ function statusFor(id: string): FlightStatus {
|
|
|
119
121
|
handedOff: false,
|
|
120
122
|
mountWaiters: [],
|
|
121
123
|
mountTimer: null,
|
|
124
|
+
unbindTimer: null,
|
|
122
125
|
};
|
|
123
126
|
reg.status.set(id, status);
|
|
124
127
|
}
|
|
@@ -127,7 +130,9 @@ function statusFor(id: string): FlightStatus {
|
|
|
127
130
|
|
|
128
131
|
function clearTimers(status: FlightStatus): void {
|
|
129
132
|
if (status.mountTimer !== null) clearTimeout(status.mountTimer);
|
|
133
|
+
if (status.unbindTimer !== null) clearTimeout(status.unbindTimer);
|
|
130
134
|
status.mountTimer = null;
|
|
135
|
+
status.unbindTimer = null;
|
|
131
136
|
}
|
|
132
137
|
|
|
133
138
|
function resolveMountWaiters(status: FlightStatus): void {
|
|
@@ -263,6 +268,7 @@ export function flyTo(
|
|
|
263
268
|
// silently ignored by the view it is meant to configure.
|
|
264
269
|
surfaceType: existing.surfaceType,
|
|
265
270
|
landing: false,
|
|
271
|
+
unbinding: false,
|
|
266
272
|
generation: existing.generation + 1,
|
|
267
273
|
};
|
|
268
274
|
reg.flights.set(id, next);
|
|
@@ -285,6 +291,7 @@ export function flyTo(
|
|
|
285
291
|
surfaceType: options?.surfaceType ?? 'textureView',
|
|
286
292
|
progress: makeMutable(0),
|
|
287
293
|
landing: false,
|
|
294
|
+
unbinding: false,
|
|
288
295
|
generation: 0,
|
|
289
296
|
};
|
|
290
297
|
reg.flights.set(id, flight);
|
|
@@ -394,9 +401,47 @@ export function flyBack(id: string): void {
|
|
|
394
401
|
});
|
|
395
402
|
}
|
|
396
403
|
|
|
397
|
-
/**
|
|
404
|
+
/**
|
|
405
|
+
* Drop the surface for `id`. Called when a landing leg settles, and on teardown.
|
|
406
|
+
*
|
|
407
|
+
* A VIDEO surface does not go straight out. It renders for one more commit with
|
|
408
|
+
* NO player first, because expo-video's web player mirrors pause across every
|
|
409
|
+
* element bound to it and a `<video>` removed from the DOM is auto-paused by the
|
|
410
|
+
* browser — while `unmountVideoView` only runs in a PASSIVE effect cleanup,
|
|
411
|
+
* i.e. after removal and after that auto-pause. So the dying element pauses the
|
|
412
|
+
* one the viewer is now watching. Measured: the reel's video paused 1 ms after
|
|
413
|
+
* the flying surface left the DOM, with `currentTime` still advancing and
|
|
414
|
+
* nobody having called `pause()`.
|
|
415
|
+
*
|
|
416
|
+
* Rendering `player={null}` for one commit runs expo-video's own `[props.player]`
|
|
417
|
+
* effect while the node is STILL in the DOM: its cleanup calls
|
|
418
|
+
* `unmountVideoView`, the element leaves `_mountedVideos`, and its later pause
|
|
419
|
+
* reaches nobody. That is the documented mount/unmount pair, not a patch of
|
|
420
|
+
* somebody else's module.
|
|
421
|
+
*
|
|
422
|
+
* The cost is one frame in which the outgoing surface shows its poster instead
|
|
423
|
+
* of video. It is already on its way out and the destination is live by then —
|
|
424
|
+
* `handOff` is what got us here — so that frame is covered.
|
|
425
|
+
*/
|
|
398
426
|
export function releaseFlight(id: string): void {
|
|
399
427
|
const reg = registry();
|
|
428
|
+
const flight = reg.flights.get(id);
|
|
429
|
+
|
|
430
|
+
if (flight !== undefined && flight.content.kind === 'video' && !flight.unbinding) {
|
|
431
|
+
reg.flights.set(id, { ...flight, unbinding: true });
|
|
432
|
+
const unbinding = statusFor(id);
|
|
433
|
+
if (unbinding.unbindTimer === null) {
|
|
434
|
+
// After the commit AND expo-video's passive effect, which is the whole
|
|
435
|
+
// point — a microtask would run before either.
|
|
436
|
+
unbinding.unbindTimer = setTimeout(() => {
|
|
437
|
+
unbinding.unbindTimer = null;
|
|
438
|
+
releaseFlight(id);
|
|
439
|
+
}, 0);
|
|
440
|
+
}
|
|
441
|
+
publish(reg);
|
|
442
|
+
return;
|
|
443
|
+
}
|
|
444
|
+
|
|
400
445
|
const status = reg.status.get(id);
|
|
401
446
|
if (status) {
|
|
402
447
|
// A waiter still parked on `flyTo`'s promise would otherwise hang until its
|
|
@@ -94,6 +94,19 @@ export interface MediaFlight {
|
|
|
94
94
|
* settles, the surface is released instead of parked.
|
|
95
95
|
*/
|
|
96
96
|
landing: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* True for the ONE commit between "release requested" and the surface
|
|
99
|
+
* actually going away, during which a video surface renders with no player.
|
|
100
|
+
*
|
|
101
|
+
* expo-video's web player MIRRORS pause across every element bound to it
|
|
102
|
+
* (`VideoPlayer.web.js`: `video.onpause` pauses all the others), and a
|
|
103
|
+
* `<video>` removed from the DOM is auto-paused by the browser. Its
|
|
104
|
+
* `unmountVideoView` runs in a PASSIVE effect cleanup — after removal, after
|
|
105
|
+
* the auto-pause — so a dying element pauses the one the viewer is watching.
|
|
106
|
+
* Unbinding first takes this element out of `_mountedVideos` while it is
|
|
107
|
+
* still in the DOM, so its later pause reaches nobody.
|
|
108
|
+
*/
|
|
109
|
+
unbinding: boolean;
|
|
97
110
|
/** Bumped on every retarget, so React remounts nothing but the layer re-reads. */
|
|
98
111
|
generation: number;
|
|
99
112
|
}
|