@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.
Files changed (31) hide show
  1. package/docs/getting-started.mdx +29 -0
  2. package/docs/media-flight.mdx +21 -0
  3. package/lib/commonjs/media-flight/MediaFlightLayer.js +7 -1
  4. package/lib/commonjs/media-flight/MediaFlightLayer.js.map +1 -1
  5. package/lib/commonjs/media-flight/MediaSurface.js +3 -2
  6. package/lib/commonjs/media-flight/MediaSurface.js.map +1 -1
  7. package/lib/commonjs/media-flight/store.js +46 -2
  8. package/lib/commonjs/media-flight/store.js.map +1 -1
  9. package/lib/module/media-flight/MediaFlightLayer.js +7 -1
  10. package/lib/module/media-flight/MediaFlightLayer.js.map +1 -1
  11. package/lib/module/media-flight/MediaSurface.js +3 -2
  12. package/lib/module/media-flight/MediaSurface.js.map +1 -1
  13. package/lib/module/media-flight/store.js +46 -2
  14. package/lib/module/media-flight/store.js.map +1 -1
  15. package/lib/typescript/commonjs/media-flight/MediaSurface.d.ts +13 -0
  16. package/lib/typescript/commonjs/media-flight/MediaSurface.d.ts.map +1 -1
  17. package/lib/typescript/commonjs/media-flight/store.d.ts +24 -1
  18. package/lib/typescript/commonjs/media-flight/store.d.ts.map +1 -1
  19. package/lib/typescript/commonjs/media-flight/types.d.ts +13 -0
  20. package/lib/typescript/commonjs/media-flight/types.d.ts.map +1 -1
  21. package/lib/typescript/module/media-flight/MediaSurface.d.ts +13 -0
  22. package/lib/typescript/module/media-flight/MediaSurface.d.ts.map +1 -1
  23. package/lib/typescript/module/media-flight/store.d.ts +24 -1
  24. package/lib/typescript/module/media-flight/store.d.ts.map +1 -1
  25. package/lib/typescript/module/media-flight/types.d.ts +13 -0
  26. package/lib/typescript/module/media-flight/types.d.ts.map +1 -1
  27. package/package.json +1 -1
  28. package/src/media-flight/MediaFlightLayer.tsx +5 -1
  29. package/src/media-flight/MediaSurface.tsx +15 -1
  30. package/src/media-flight/store.ts +46 -1
  31. package/src/media-flight/types.ts +13 -0
@@ -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:
@@ -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":"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","ignoreList":[]}
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":";;;;;;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,WAAW;IAAEC;EAAU,CAAC,GAAGX,MAAM;;EAEpG;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAAY,gBAAS,EAAC,MAAM;IACd,IAAAC,2BAAoB,EAACX,EAAE,CAAC;EAC1B,CAAC,EAAE,CAACA,EAAE,CAAC,CAAC;;EAER;EACA,MAAMY,OAAO,GAAGV,IAAI,CAACW,CAAC,GAAGV,EAAE,CAACU,CAAC;EAC7B,MAAMC,OAAO,GAAGZ,IAAI,CAACa,CAAC,GAAGZ,EAAE,CAACY,CAAC;;EAE7B;EACA;EACA;EACA;EACA;EACA;EACA,MAAMC,QAAQ,GAAG,IAAAC,uCAAgB,EAC/B,OAAO;IACLC,SAAS,EAAE,CACT;MAAEC,UAAU,EAAE,IAAAC,kCAAW,EAAChB,QAAQ,CAACiB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAACT,OAAO,EAAE,CAAC,CAAC;IAAE,CAAC,EACjE;MAAEU,UAAU,EAAE,IAAAF,kCAAW,EAAChB,QAAQ,CAACiB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAACP,OAAO,EAAE,CAAC,CAAC;IAAE,CAAC,CAClE;IACDS,KAAK,EAAE,IAAAH,kCAAW,EAAChB,QAAQ,CAACiB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAACnB,IAAI,CAACqB,KAAK,EAAEpB,EAAE,CAACoB,KAAK,CAAC,CAAC;IAClEC,MAAM,EAAE,IAAAJ,kCAAW,EAAChB,QAAQ,CAACiB,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAACnB,IAAI,CAACsB,MAAM,EAAErB,EAAE,CAACqB,MAAM,CAAC;EACtE,CAAC,CAAC,EACF,CAACpB,QAAQ,EAAEQ,OAAO,EAAEE,OAAO,EAAEZ,IAAI,CAACqB,KAAK,EAAErB,IAAI,CAACsB,MAAM,EAAErB,EAAE,CAACoB,KAAK,EAAEpB,EAAE,CAACqB,MAAM,CAC3E,CAAC;EAED,oBACE,IAAAtC,WAAA,CAAAO,GAAA,EAACT,aAAA,CAAAyC,YAAY;IACXpB,OAAO,EAAEA,OAAQ;IACjBE,UAAU,EAAEA,UAAW;IACvBC,WAAW,EAAEA;IACb;IACA;IACA;IAAA;IACAkB,QAAQ,EAAEjB;IACV;IACA;IAAA;IACAkB,aAAa,EAAC,MAAM;IACpBC,KAAK,EAAE,CAACC,MAAM,CAACC,GAAG,EAAE;MAAEC,IAAI,EAAE5B,EAAE,CAACU,CAAC;MAAEmB,GAAG,EAAE7B,EAAE,CAACY,CAAC;MAAEkB,YAAY,EAAE3B;IAAa,CAAC,EAAEU,QAAQ;EAAE,CACtF,CAAC;AAEN;AAEA,MAAMa,MAAM,GAAGK,uBAAU,CAACC,MAAM,CAAC;EAC/BL,GAAG,EAAE;IACHM,QAAQ,EAAE,UAAU;IACpBC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC","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":"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","ignoreList":[]}
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
- /** Drop the surface for `id`. Called when a landing leg settles, and on teardown. */
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":"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","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":"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","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":"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","ignoreList":[]}
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;AA0C3E;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;AACiB,CAAC,EAAE;EACpB;EACA;EACA;EACA,MAAM,CAACC,kBAAkB,CAAC,GAAGzB,QAAQ,CAACoB,WAAW,CAAC;;EAElD;EACA;EACA;EACA;EACA,MAAMM,UAAU,GAAG3B,WAAW,CAAC,MAAM;IACnC,IAAIyB,QAAQ,KAAKG,SAAS,EAAErB,aAAa,CAACkB,QAAQ,CAAC;EACrD,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,MAAMI,KAAK,GAAGX,OAAO,CAACY,IAAI,KAAK,OAAO,GAAGZ,OAAO,CAACa,MAAM,GAAGb,OAAO,CAACc,GAAG;EACrE;EACA;EACA,MAAMC,SAAS,GAAGf,OAAO,CAACY,IAAI,KAAK,OAAO,GAAGtB,aAAa,CAAC,CAAC,GAAG,IAAI;EACnE,IAAIU,OAAO,CAACY,IAAI,KAAK,OAAO,IAAIG,SAAS,KAAK,IAAI,EAAE;IAClD;IACA;IACA;IACA;IACAxB,wBAAwB,CAAC,CAAC;EAC5B;EAEA,oBACEI,KAAA,CAACP,QAAQ,CAACF,IAAI;IAACe,KAAK,EAAE,CAACe,MAAM,CAACC,GAAG,EAAEhB,KAAK,CAAE;IAACK,aAAa,EAAEA,aAAc;IAAAY,QAAA,GACrEP,KAAK,KAAKD,SAAS,GAAG,IAAI;IAAA;IACzB;IACA;IACA;IACA;IACA;IACA;IACAjB,IAAA,CAACN,KAAK;MACJgC,MAAM,EAAE;QAAEL,GAAG,EAAEH;MAAM,CAAE;MACvBT,UAAU,EAAEA,UAAW;MACvBD,KAAK,EAAEhB,UAAU,CAACmC,YAAa;MAC/BC,UAAU,EAAE,CAAE;MACdhB,kBAAkB,EAAEA;MACpB;MACA;MACA;MAAA;MACAiB,MAAM,EAAEtB,OAAO,CAACY,IAAI,KAAK,OAAO,GAAGF,SAAS,GAAGD,UAAW;MAAA,GACtDb;IAAiB,CACtB,CACF,EACAI,OAAO,CAACY,IAAI,KAAK,OAAO,IAAIG,SAAS,KAAK,IAAI,gBAC7CtB,IAAA,CAACsB,SAAS,CAACQ,SAAS;MAClBC,MAAM,EAAExB,OAAO,CAACwB,MAAO;MACvBtB,UAAU,EAAEA,UAAW;MACvBC,WAAW,EAAEK,kBAAmB;MAChCJ,cAAc,EAAEA;MAChB;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MAAA;MACAH,KAAK,EAAE,CAAChB,UAAU,CAACmC,YAAY,EAAEJ,MAAM,CAACS,YAAY,CAAE;MACtDpB,kBAAkB,EAAEA,kBAAmB;MACvCqB,kBAAkB,EAAEjB;IAAW,CAChC,CAAC,GACA,IAAI;EAAA,CACK,CAAC;AAEpB,CAAC,CAAC;AAEFV,YAAY,CAAC4B,WAAW,GAAG,cAAc;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAAC;EAC1B5B,OAAO;EACPC,KAAK;EACLC,UAAU,GAAG,OAAO;EACpBG;AAMF,CAAC,EAAE;EACD,MAAMS,GAAG,GAAGd,OAAO,CAACY,IAAI,KAAK,OAAO,GAAGZ,OAAO,CAACa,MAAM,GAAGb,OAAO,CAACc,GAAG;EACnE,IAAIA,GAAG,KAAKJ,SAAS,EAAE,oBAAOjB,IAAA,CAACoC,iBAAiB;IAAC5B,KAAK,EAAEA;EAAM,CAAE,CAAC;EACjE,oBACER,IAAA,CAACN,KAAK;IACJgC,MAAM,EAAE;MAAEL;IAAI,CAAE;IAChBZ,UAAU,EAAEA,UAAW;IACvBD,KAAK,EAAEA,KAAM;IACboB,UAAU,EAAE,CAAE;IACdhB,kBAAkB,EAAEA,kBAAmB;IAAA,GACnCT;EAAiB,CACtB,CAAC;AAEN;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASiC,iBAAiBA,CAAC;EAAE5B;AAAoC,CAAC,EAAE;EACzE,oBAAOR,IAAA,CAACP,IAAI;IAACe,KAAK,EAAE,CAACe,MAAM,CAACc,KAAK,EAAE7B,KAAK,CAAE;IAACK,aAAa,EAAC;EAAM,CAAE,CAAC;AACpE;AAEA,MAAMU,MAAM,GAAG/B,UAAU,CAAC8C,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":[]}
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":"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","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
- /** Drop the surface for `id`. Called when a landing leg settles, and on teardown. */
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;CACnB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,yDAgFvB,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"}
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
- /** Drop the surface for `id`. Called when a landing leg settles, and on teardown. */
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;CAClD;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;AAsDD,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,CA0Df;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,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAY9C;AAED,kDAAkD;AAClD,wBAAgB,gBAAgB,IAAI,IAAI,CAOvC"}
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;CACnB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,yDAgFvB,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"}
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
- /** Drop the surface for `id`. Called when a landing leg settles, and on teardown. */
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;CAClD;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;AAsDD,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,CA0Df;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,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAY9C;AAED,kDAAkD;AAClD,wBAAgB,gBAAgB,IAAI,IAAI,CAOvC"}
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":"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;;;;;;;;;;;OAWG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/bloom",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "packageManager": "bun@1.3.14",
5
5
  "description": "Bloom UI — Oxy ecosystem component library for React Native + Expo + Web",
6
6
  "main": "lib/commonjs/index.js",
@@ -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
- /** Drop the surface for `id`. Called when a landing leg settles, and on teardown. */
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
  }