@oxyhq/bloom 1.3.0 → 1.4.0

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 (50) hide show
  1. package/docs/media-flight.mdx +46 -0
  2. package/lib/commonjs/media-flight/MediaFlightHost.js +2 -0
  3. package/lib/commonjs/media-flight/MediaFlightHost.js.map +1 -1
  4. package/lib/commonjs/media-flight/MediaFlightHost.web.js +3 -1
  5. package/lib/commonjs/media-flight/MediaFlightHost.web.js.map +1 -1
  6. package/lib/commonjs/media-flight/MediaFlightLayer.web.js +10 -24
  7. package/lib/commonjs/media-flight/MediaFlightLayer.web.js.map +1 -1
  8. package/lib/commonjs/media-flight/MediaSurface.js +13 -5
  9. package/lib/commonjs/media-flight/MediaSurface.js.map +1 -1
  10. package/lib/commonjs/media-flight/media-node.web.js +29 -6
  11. package/lib/commonjs/media-flight/media-node.web.js.map +1 -1
  12. package/lib/module/media-flight/MediaFlightHost.js +2 -0
  13. package/lib/module/media-flight/MediaFlightHost.js.map +1 -1
  14. package/lib/module/media-flight/MediaFlightHost.web.js +3 -1
  15. package/lib/module/media-flight/MediaFlightHost.web.js.map +1 -1
  16. package/lib/module/media-flight/MediaFlightLayer.web.js +11 -25
  17. package/lib/module/media-flight/MediaFlightLayer.web.js.map +1 -1
  18. package/lib/module/media-flight/MediaSurface.js +13 -5
  19. package/lib/module/media-flight/MediaSurface.js.map +1 -1
  20. package/lib/module/media-flight/media-node.web.js +29 -6
  21. package/lib/module/media-flight/media-node.web.js.map +1 -1
  22. package/lib/typescript/commonjs/media-flight/MediaFlightHost.d.ts +1 -1
  23. package/lib/typescript/commonjs/media-flight/MediaFlightHost.d.ts.map +1 -1
  24. package/lib/typescript/commonjs/media-flight/MediaFlightHost.web.d.ts +1 -1
  25. package/lib/typescript/commonjs/media-flight/MediaFlightHost.web.d.ts.map +1 -1
  26. package/lib/typescript/commonjs/media-flight/MediaFlightLayer.web.d.ts.map +1 -1
  27. package/lib/typescript/commonjs/media-flight/MediaSurface.d.ts +9 -1
  28. package/lib/typescript/commonjs/media-flight/MediaSurface.d.ts.map +1 -1
  29. package/lib/typescript/commonjs/media-flight/media-node.web.d.ts +17 -3
  30. package/lib/typescript/commonjs/media-flight/media-node.web.d.ts.map +1 -1
  31. package/lib/typescript/commonjs/media-flight/types.d.ts +49 -0
  32. package/lib/typescript/commonjs/media-flight/types.d.ts.map +1 -1
  33. package/lib/typescript/module/media-flight/MediaFlightHost.d.ts +1 -1
  34. package/lib/typescript/module/media-flight/MediaFlightHost.d.ts.map +1 -1
  35. package/lib/typescript/module/media-flight/MediaFlightHost.web.d.ts +1 -1
  36. package/lib/typescript/module/media-flight/MediaFlightHost.web.d.ts.map +1 -1
  37. package/lib/typescript/module/media-flight/MediaFlightLayer.web.d.ts.map +1 -1
  38. package/lib/typescript/module/media-flight/MediaSurface.d.ts +9 -1
  39. package/lib/typescript/module/media-flight/MediaSurface.d.ts.map +1 -1
  40. package/lib/typescript/module/media-flight/media-node.web.d.ts +17 -3
  41. package/lib/typescript/module/media-flight/media-node.web.d.ts.map +1 -1
  42. package/lib/typescript/module/media-flight/types.d.ts +49 -0
  43. package/lib/typescript/module/media-flight/types.d.ts.map +1 -1
  44. package/package.json +1 -1
  45. package/src/media-flight/MediaFlightHost.tsx +2 -0
  46. package/src/media-flight/MediaFlightHost.web.tsx +3 -2
  47. package/src/media-flight/MediaFlightLayer.web.tsx +10 -38
  48. package/src/media-flight/MediaSurface.tsx +26 -6
  49. package/src/media-flight/media-node.web.ts +48 -10
  50. package/src/media-flight/types.ts +51 -0
@@ -274,6 +274,52 @@ about the call site says which one you got.
274
274
  nothing can want it back — no claim and no flight live for that id — which is
275
275
  a fact the registry reads rather than a timeout it guesses.
276
276
 
277
+ ### Paint the video yourself
278
+
279
+ `MediaFlightHost` mounts a `VideoView` with the handful of props Bloom knows
280
+ about. That is not enough the moment a consumer needs something only its OWN
281
+ element can give it — a `ref` for `startPictureInPicture()` or
282
+ `enterFullscreen()`, expo-video's picture-in-picture callbacks,
283
+ `onFirstFrameRender`, anything expo-video adds next. Measured in a consuming
284
+ app: adopting the host without this left a picture-in-picture BUTTON on screen
285
+ whose ref was attached to nothing. It rendered, it was pressable, and it did
286
+ nothing, silently.
287
+
288
+ So build the element yourself and let Bloom decide only what it must:
289
+
290
+ ```tsx
291
+ <MediaFlightHost
292
+ id={mediaId}
293
+ content={{ kind: 'video', player }}
294
+ renderVideo={useCallback((props) => (
295
+ <VideoView
296
+ {...props} // player, style, contentFit
297
+ ref={videoViewRef}
298
+ allowsPictureInPicture={isWatched}
299
+ onFirstFrameRender={handleFirstFrame}
300
+ />
301
+ ), [isWatched, handleFirstFrame])}
302
+ />
303
+ ```
304
+
305
+ Three things about the props Bloom passes:
306
+
307
+ - **Spread `style`.** A DOM `<video>` is a replaced element: `inset: 0` with
308
+ `width/height: auto` paints it at its intrinsic 300×150 inside whatever box it
309
+ was given. Bloom's style carries the sizing.
310
+ - **Pass `player` straight through, including `null`.** Null means unbind now,
311
+ and expo-video answers it by emptying the source — which pauses the element
312
+ without an event, which is what stops an outgoing surface from pausing the one
313
+ the viewer just landed on.
314
+ - **Memoise the slot.** It is part of what a host publishes to the layer,
315
+ compared by identity.
316
+
317
+ The flight itself never brings an element. Its claim on a shared node says only
318
+ WHERE the node lives — a flight that published its own render would swap a
319
+ consumer's element out for Bloom's and back again, which is two remounts in the
320
+ middle of the one operation whose whole point is that the element is never
321
+ rebuilt.
322
+
277
323
  ### The flight outranks every host
278
324
 
279
325
  A destination that mounts mid-flight claims its id, and the layer keeps the node
@@ -28,6 +28,7 @@ function MediaFlightHost({
28
28
  content,
29
29
  style,
30
30
  contentFit = 'cover',
31
+ renderVideo,
31
32
  nativeControls = false,
32
33
  accessibilityLabel,
33
34
  surfaceType,
@@ -44,6 +45,7 @@ function MediaFlightHost({
44
45
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MediaSurface.MediaSurface, {
45
46
  content: content,
46
47
  contentFit: contentFit,
48
+ renderVideo: renderVideo,
47
49
  nativeControls: nativeControls,
48
50
  accessibilityLabel: accessibilityLabel,
49
51
  surfaceType: surfaceType,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_MediaSurface","_store","_jsxRuntime","MediaFlightHost","id","content","style","contentFit","nativeControls","accessibilityLabel","surfaceType","pointerEvents","flightId","setNode","useCallback","node","registerAnchor","jsx","View","ref","children","MediaSurface","StyleSheet","absoluteFill","displayName"],"sourceRoot":"../../../src","sources":["media-flight/MediaFlightHost.tsx"],"mappings":";;;;;;AAaA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAAyC,IAAAI,WAAA,GAAAJ,OAAA;AAjBzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQO,SAASK,eAAeA,CAAC;EAC9BC,EAAE;EACFC,OAAO;EACPC,KAAK;EACLC,UAAU,GAAG,OAAO;EACpBC,cAAc,GAAG,KAAK;EACtBC,kBAAkB;EAClBC,WAAW;EACXC,aAAa;EACbC;AACoB,CAAC,EAAE;EACvB;EACA;EACA,MAAMC,OAAO,GAAG,IAAAC,kBAAW,EACxBC,IAAiB,IAAK,IAAAC,qBAAc,EAACZ,EAAE,EAAEW,IAAI,CAAC,EAC/C,CAACX,EAAE,CACL,CAAC;EAED,oBACE,IAAAF,WAAA,CAAAe,GAAA,EAAClB,YAAA,CAAAmB,IAAI;IAACC,GAAG,EAAEN,OAAQ;IAACP,KAAK,EAAEA,KAAM;IAACK,aAAa,EAAEA,aAAc;IAAAS,QAAA,eAC7D,IAAAlB,WAAA,CAAAe,GAAA,EAACjB,aAAA,CAAAqB,YAAY;MACXhB,OAAO,EAAEA,OAAQ;MACjBE,UAAU,EAAEA,UAAW;MACvBC,cAAc,EAAEA,cAAe;MAC/BC,kBAAkB,EAAEA,kBAAmB;MACvCC,WAAW,EAAEA,WAAY;MACzBE,QAAQ,EAAEA,QAAS;MACnBN,KAAK,EAAEgB,uBAAU,CAACC;IAAa,CAChC;EAAC,CACE,CAAC;AAEX;AAEApB,eAAe,CAACqB,WAAW,GAAG,iBAAiB","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_MediaSurface","_store","_jsxRuntime","MediaFlightHost","id","content","style","contentFit","renderVideo","nativeControls","accessibilityLabel","surfaceType","pointerEvents","flightId","setNode","useCallback","node","registerAnchor","jsx","View","ref","children","MediaSurface","StyleSheet","absoluteFill","displayName"],"sourceRoot":"../../../src","sources":["media-flight/MediaFlightHost.tsx"],"mappings":";;;;;;AAaA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAAyC,IAAAI,WAAA,GAAAJ,OAAA;AAjBzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAQO,SAASK,eAAeA,CAAC;EAC9BC,EAAE;EACFC,OAAO;EACPC,KAAK;EACLC,UAAU,GAAG,OAAO;EACpBC,WAAW;EACXC,cAAc,GAAG,KAAK;EACtBC,kBAAkB;EAClBC,WAAW;EACXC,aAAa;EACbC;AACoB,CAAC,EAAE;EACvB;EACA;EACA,MAAMC,OAAO,GAAG,IAAAC,kBAAW,EACxBC,IAAiB,IAAK,IAAAC,qBAAc,EAACb,EAAE,EAAEY,IAAI,CAAC,EAC/C,CAACZ,EAAE,CACL,CAAC;EAED,oBACE,IAAAF,WAAA,CAAAgB,GAAA,EAACnB,YAAA,CAAAoB,IAAI;IAACC,GAAG,EAAEN,OAAQ;IAACR,KAAK,EAAEA,KAAM;IAACM,aAAa,EAAEA,aAAc;IAAAS,QAAA,eAC7D,IAAAnB,WAAA,CAAAgB,GAAA,EAAClB,aAAA,CAAAsB,YAAY;MACXjB,OAAO,EAAEA,OAAQ;MACjBE,UAAU,EAAEA,UAAW;MACvBC,WAAW,EAAEA,WAAY;MACzBC,cAAc,EAAEA,cAAe;MAC/BC,kBAAkB,EAAEA,kBAAmB;MACvCC,WAAW,EAAEA,WAAY;MACzBE,QAAQ,EAAEA,QAAS;MACnBP,KAAK,EAAEiB,uBAAU,CAACC;IAAa,CAChC;EAAC,CACE,CAAC;AAEX;AAEArB,eAAe,CAACsB,WAAW,GAAG,iBAAiB","ignoreList":[]}
@@ -30,6 +30,7 @@ function MediaFlightHost({
30
30
  content,
31
31
  style,
32
32
  contentFit = 'cover',
33
+ renderVideo,
33
34
  nativeControls = false,
34
35
  accessibilityLabel,
35
36
  pointerEvents,
@@ -45,10 +46,11 @@ function MediaFlightHost({
45
46
  const render = (0, _react.useMemo)(() => ({
46
47
  content,
47
48
  contentFit,
49
+ renderVideo,
48
50
  nativeControls,
49
51
  accessibilityLabel,
50
52
  flightId
51
- }), [content, contentFit, nativeControls, accessibilityLabel, flightId]);
53
+ }), [content, contentFit, renderVideo, nativeControls, accessibilityLabel, flightId]);
52
54
  const renderRef = (0, _react.useRef)(render);
53
55
 
54
56
  // Declared FIRST so it runs first on mount: it seeds the ref the claim below
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_mediaNodeWeb","_store","_jsxRuntime","MediaFlightHost","id","content","style","contentFit","nativeControls","accessibilityLabel","pointerEvents","flightId","node","setNode","useState","setHost","useCallback","next","registerAnchor","render","useMemo","renderRef","useRef","useLayoutEffect","current","el","claimMediaNode","HOST_RANK","undefined","hasFlight","handOffFlight","releaseMediaNode","jsx","View","ref","displayName"],"sourceRoot":"../../../src","sources":["media-flight/MediaFlightHost.web.tsx"],"mappings":";;;;;;AAeA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,aAAA,GAAAF,OAAA;AAMA,IAAAG,MAAA,GAAAH,OAAA;AAAmE,IAAAI,WAAA,GAAAJ,OAAA;AAxBnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAaO,SAASK,eAAeA,CAAC;EAC9BC,EAAE;EACFC,OAAO;EACPC,KAAK;EACLC,UAAU,GAAG,OAAO;EACpBC,cAAc,GAAG,KAAK;EACtBC,kBAAkB;EAClBC,aAAa;EACbC;AACoB,CAAC,EAAE;EACvB;EACA;EACA,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAc,IAAI,CAAC;EAEnD,MAAMC,OAAO,GAAG,IAAAC,kBAAW,EACxBC,IAAiB,IAAK;IACrB,IAAAC,qBAAc,EAACd,EAAE,EAAEa,IAAI,CAAC;IACxBJ,OAAO,CAACI,IAAI,CAAC;EACf,CAAC,EACD,CAACb,EAAE,CACL,CAAC;EAED,MAAMe,MAAM,GAAG,IAAAC,cAAO,EACpB,OAAO;IAAEf,OAAO;IAAEE,UAAU;IAAEC,cAAc;IAAEC,kBAAkB;IAAEE;EAAS,CAAC,CAAC,EAC7E,CAACN,OAAO,EAAEE,UAAU,EAAEC,cAAc,EAAEC,kBAAkB,EAAEE,QAAQ,CACpE,CAAC;EACD,MAAMU,SAAS,GAAG,IAAAC,aAAM,EAACH,MAAM,CAAC;;EAEhC;EACA;EACA;EACA;EACA,IAAAI,sBAAe,EAAC,MAAM;IACpBF,SAAS,CAACG,OAAO,GAAGL,MAAM;IAC1B,MAAMM,EAAE,GAAGb,IAAqC;IAChD,IAAIa,EAAE,KAAK,IAAI,EAAE,IAAAC,4BAAc,EAACtB,EAAE,EAAEqB,EAAE,EAAEE,uBAAS,EAAER,MAAM,CAAC;EAC5D,CAAC,EAAE,CAACf,EAAE,EAAEQ,IAAI,EAAEO,MAAM,CAAC,CAAC;;EAEtB;EACA;EACA,IAAAI,sBAAe,EAAC,MAAM;IACpB,MAAME,EAAE,GAAGb,IAAqC;IAChD,IAAIa,EAAE,KAAK,IAAI,EAAE,OAAOG,SAAS;IACjC,IAAAF,4BAAc,EAACtB,EAAE,EAAEqB,EAAE,EAAEE,uBAAS,EAAEN,SAAS,CAACG,OAAO,CAAC;IACpD;IACA;IACA;IACA;IACA;IACA,IAAI,IAAAK,gBAAS,EAACzB,EAAE,CAAC,EAAE,IAAA0B,oBAAa,EAAC1B,EAAE,CAAC;IACpC,OAAO,MAAM,IAAA2B,8BAAgB,EAAC3B,EAAE,EAAEqB,EAAE,EAAEE,uBAAS,CAAC;EAClD,CAAC,EAAE,CAACvB,EAAE,EAAEQ,IAAI,CAAC,CAAC;EAEd,oBAAO,IAAAV,WAAA,CAAA8B,GAAA,EAACjC,YAAA,CAAAkC,IAAI;IAACC,GAAG,EAAEnB,OAAQ;IAACT,KAAK,EAAEA,KAAM;IAACI,aAAa,EAAEA;EAAc,CAAE,CAAC;AAC3E;AAEAP,eAAe,CAACgC,WAAW,GAAG,iBAAiB","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_mediaNodeWeb","_store","_jsxRuntime","MediaFlightHost","id","content","style","contentFit","renderVideo","nativeControls","accessibilityLabel","pointerEvents","flightId","node","setNode","useState","setHost","useCallback","next","registerAnchor","render","useMemo","renderRef","useRef","useLayoutEffect","current","el","claimMediaNode","HOST_RANK","undefined","hasFlight","handOffFlight","releaseMediaNode","jsx","View","ref","displayName"],"sourceRoot":"../../../src","sources":["media-flight/MediaFlightHost.web.tsx"],"mappings":";;;;;;AAeA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,aAAA,GAAAF,OAAA;AAMA,IAAAG,MAAA,GAAAH,OAAA;AAAmE,IAAAI,WAAA,GAAAJ,OAAA;AAxBnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAaO,SAASK,eAAeA,CAAC;EAC9BC,EAAE;EACFC,OAAO;EACPC,KAAK;EACLC,UAAU,GAAG,OAAO;EACpBC,WAAW;EACXC,cAAc,GAAG,KAAK;EACtBC,kBAAkB;EAClBC,aAAa;EACbC;AACoB,CAAC,EAAE;EACvB;EACA;EACA,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAc,IAAI,CAAC;EAEnD,MAAMC,OAAO,GAAG,IAAAC,kBAAW,EACxBC,IAAiB,IAAK;IACrB,IAAAC,qBAAc,EAACf,EAAE,EAAEc,IAAI,CAAC;IACxBJ,OAAO,CAACI,IAAI,CAAC;EACf,CAAC,EACD,CAACd,EAAE,CACL,CAAC;EAED,MAAMgB,MAAM,GAAG,IAAAC,cAAO,EACpB,OAAO;IAAEhB,OAAO;IAAEE,UAAU;IAAEC,WAAW;IAAEC,cAAc;IAAEC,kBAAkB;IAAEE;EAAS,CAAC,CAAC,EAC1F,CAACP,OAAO,EAAEE,UAAU,EAAEC,WAAW,EAAEC,cAAc,EAAEC,kBAAkB,EAAEE,QAAQ,CACjF,CAAC;EACD,MAAMU,SAAS,GAAG,IAAAC,aAAM,EAACH,MAAM,CAAC;;EAEhC;EACA;EACA;EACA;EACA,IAAAI,sBAAe,EAAC,MAAM;IACpBF,SAAS,CAACG,OAAO,GAAGL,MAAM;IAC1B,MAAMM,EAAE,GAAGb,IAAqC;IAChD,IAAIa,EAAE,KAAK,IAAI,EAAE,IAAAC,4BAAc,EAACvB,EAAE,EAAEsB,EAAE,EAAEE,uBAAS,EAAER,MAAM,CAAC;EAC5D,CAAC,EAAE,CAAChB,EAAE,EAAES,IAAI,EAAEO,MAAM,CAAC,CAAC;;EAEtB;EACA;EACA,IAAAI,sBAAe,EAAC,MAAM;IACpB,MAAME,EAAE,GAAGb,IAAqC;IAChD,IAAIa,EAAE,KAAK,IAAI,EAAE,OAAOG,SAAS;IACjC,IAAAF,4BAAc,EAACvB,EAAE,EAAEsB,EAAE,EAAEE,uBAAS,EAAEN,SAAS,CAACG,OAAO,CAAC;IACpD;IACA;IACA;IACA;IACA;IACA,IAAI,IAAAK,gBAAS,EAAC1B,EAAE,CAAC,EAAE,IAAA2B,oBAAa,EAAC3B,EAAE,CAAC;IACpC,OAAO,MAAM,IAAA4B,8BAAgB,EAAC5B,EAAE,EAAEsB,EAAE,EAAEE,uBAAS,CAAC;EAClD,CAAC,EAAE,CAACxB,EAAE,EAAES,IAAI,CAAC,CAAC;EAEd,oBAAO,IAAAX,WAAA,CAAA+B,GAAA,EAAClC,YAAA,CAAAmC,IAAI;IAACC,GAAG,EAAEnB,OAAQ;IAACV,KAAK,EAAEA,KAAM;IAACK,aAAa,EAAEA;EAAc,CAAE,CAAC;AAC3E;AAEAR,eAAe,CAACiC,WAAW,GAAG,iBAAiB","ignoreList":[]}
@@ -74,6 +74,7 @@ function SharedMediaNode({
74
74
  const {
75
75
  content,
76
76
  contentFit,
77
+ renderVideo,
77
78
  nativeControls,
78
79
  accessibilityLabel,
79
80
  flightId
@@ -81,6 +82,7 @@ function SharedMediaNode({
81
82
  return /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/(0, _jsxRuntime.jsx)(_MediaSurface.MediaSurface, {
82
83
  content: content,
83
84
  contentFit: contentFit,
85
+ renderVideo: renderVideo,
84
86
  nativeControls: nativeControls,
85
87
  accessibilityLabel: accessibilityLabel,
86
88
  flightId: flightId,
@@ -131,21 +133,12 @@ function MediaFlightSurface({
131
133
  top: to.y,
132
134
  borderRadius: cornerRadius
133
135
  }, boxStyle];
134
- const render = (0, _react.useMemo)(() => ({
135
- content,
136
- contentFit,
137
- nativeControls: false,
138
- accessibilityLabel: undefined,
139
- // A flying surface never hands off to itself.
140
- flightId: undefined
141
- }), [content, contentFit]);
142
136
 
143
137
  // The shared node is already painting this media. The flight is then a BOX
144
138
  // that borrows it for the length of the leg, never a second copy.
145
139
  if (shared) return /*#__PURE__*/(0, _jsxRuntime.jsx)(FlyingSharedNode, {
146
140
  id: id,
147
- style: box,
148
- render: render
141
+ style: box
149
142
  });
150
143
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MediaSurface.MediaSurface, {
151
144
  content: content,
@@ -174,27 +167,20 @@ function MediaFlightSurface({
174
167
  */
175
168
  function FlyingSharedNode({
176
169
  id,
177
- style,
178
- render
170
+ style
179
171
  }) {
180
172
  const [node, setNode] = (0, _react.useState)(null);
181
173
  const setBox = (0, _react.useCallback)(next => setNode(next), []);
182
- const renderRef = (0, _react.useRef)(render);
183
-
184
- // Declared first so it runs first on mount, and afterwards is what pushes
185
- // prop changes into a live claim IN PLACE — releasing and re-claiming would
186
- // move the node away and back, and a move away is a removal.
187
- (0, _react.useLayoutEffect)(() => {
188
- renderRef.current = render;
189
- const el = node;
190
- if (el !== null) (0, _mediaNodeWeb.claimMediaNode)(id, el, _mediaNodeWeb.FLIGHT_RANK, render);
191
- }, [id, node, render]);
192
174
 
193
- // Owns the claim's LIFETIME, and only that.
175
+ // A POSITION-ONLY claim: it says where the node lives for the length of the
176
+ // leg and nothing about what is painted in it. A flight that published a
177
+ // render of its own would replace the hosts' — and swap a consumer's own
178
+ // element out and back, which is two remounts in the middle of the one
179
+ // operation whose whole point is that the element is never rebuilt.
194
180
  (0, _react.useLayoutEffect)(() => {
195
181
  const el = node;
196
182
  if (el === null) return undefined;
197
- (0, _mediaNodeWeb.claimMediaNode)(id, el, _mediaNodeWeb.FLIGHT_RANK, renderRef.current);
183
+ (0, _mediaNodeWeb.claimMediaNode)(id, el, _mediaNodeWeb.FLIGHT_RANK);
198
184
  return () => (0, _mediaNodeWeb.releaseMediaNode)(id, el, _mediaNodeWeb.FLIGHT_RANK);
199
185
  }, [id, node]);
200
186
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_reactNative","_reactDom","_reactNativeReanimated","_interopRequireWildcard","_index","_indexWeb","_MediaSurface","_mediaNodeWeb","_store","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MediaFlightLayer","flights","useSyncExternalStore","subscribeToFlights","getFlights","nodes","subscribeToMediaNodes","getMediaNodes","length","jsxs","Fragment","children","map","node","jsx","SharedMediaNode","id","Portal","OverlayRoot","flight","MediaFlightSurface","shared","some","displayName","content","contentFit","nativeControls","accessibilityLabel","flightId","render","createPortal","MediaSurface","style","StyleSheet","absoluteFill","wrapper","from","to","progress","cornerRadius","surfaceType","unbinding","useEffect","notifySurfaceMounted","originX","x","originY","y","boxStyle","useAnimatedStyle","transform","translateX","interpolate","value","translateY","width","height","box","styles","left","top","borderRadius","useMemo","undefined","FlyingSharedNode","detached","pointerEvents","setNode","useState","setBox","useCallback","next","renderRef","useRef","useLayoutEffect","current","el","claimMediaNode","FLIGHT_RANK","releaseMediaNode","View","ref","create","position","overflow"],"sourceRoot":"../../../src","sources":["media-flight/MediaFlightLayer.web.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_reactNative","_reactDom","_reactNativeReanimated","_interopRequireWildcard","_index","_indexWeb","_MediaSurface","_mediaNodeWeb","_store","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","MediaFlightLayer","flights","useSyncExternalStore","subscribeToFlights","getFlights","nodes","subscribeToMediaNodes","getMediaNodes","length","jsxs","Fragment","children","map","node","jsx","SharedMediaNode","id","Portal","OverlayRoot","flight","MediaFlightSurface","shared","some","displayName","content","contentFit","renderVideo","nativeControls","accessibilityLabel","flightId","render","createPortal","MediaSurface","style","StyleSheet","absoluteFill","wrapper","from","to","progress","cornerRadius","surfaceType","unbinding","useEffect","notifySurfaceMounted","originX","x","originY","y","boxStyle","useAnimatedStyle","transform","translateX","interpolate","value","translateY","width","height","box","styles","left","top","borderRadius","FlyingSharedNode","detached","pointerEvents","setNode","useState","setBox","useCallback","next","useLayoutEffect","el","undefined","claimMediaNode","FLIGHT_RANK","releaseMediaNode","View","ref","create","position","overflow"],"sourceRoot":"../../../src","sources":["media-flight/MediaFlightLayer.web.tsx"],"mappings":"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","ignoreList":[]}
@@ -64,6 +64,7 @@ const MediaSurface = exports.MediaSurface = /*#__PURE__*/(0, _react.memo)(functi
64
64
  style,
65
65
  contentFit = 'contain',
66
66
  surfaceType = 'textureView',
67
+ renderVideo,
67
68
  nativeControls = false,
68
69
  accessibilityLabel,
69
70
  pointerEvents,
@@ -83,10 +84,11 @@ const MediaSurface = exports.MediaSurface = /*#__PURE__*/(0, _react.memo)(functi
83
84
  if (flightId !== undefined) (0, _store.handOffFlight)(flightId);
84
85
  }, [flightId]);
85
86
  const still = content.kind === 'video' ? content.poster : content.uri;
86
- // Loaded for the video arm only, and only when there is one an image
87
- // surface must never make an app resolve an optional native peer.
88
- const expoVideo = content.kind === 'video' ? (0, _expoVideoModule.loadExpoVideo)() : null;
89
- if (content.kind === 'video' && expoVideo === null) {
87
+ // Loaded for the video arm only, and only when Bloom is the one building the
88
+ // element — an image surface must never make an app resolve an optional
89
+ // native peer, and neither must a consumer that brought its own view.
90
+ const expoVideo = content.kind === 'video' && renderVideo === undefined ? (0, _expoVideoModule.loadExpoVideo)() : null;
91
+ if (content.kind === 'video' && renderVideo === undefined && expoVideo === null) {
90
92
  // Degrade to the poster rather than to nothing: a black hole where a video
91
93
  // should be reads as a broken app, a still frame reads as a video that has
92
94
  // not started. The warning is what makes the difference visible to the
@@ -118,7 +120,13 @@ const MediaSurface = exports.MediaSurface = /*#__PURE__*/(0, _react.memo)(functi
118
120
  ,
119
121
  onLoad: content.kind === 'video' ? undefined : reportLive,
120
122
  ...webDraggableProps
121
- }), content.kind === 'video' && expoVideo !== null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(expoVideo.VideoView, {
123
+ }), content.kind === 'video' && renderVideo !== undefined ? renderVideo({
124
+ player: detached ? null : content.player,
125
+ // The same style Bloom's own view gets, for the same reason: a
126
+ // replaced element that is not told its size paints at 300x150.
127
+ style: [_reactNative.StyleSheet.absoluteFill, styles.fillReplaced],
128
+ contentFit
129
+ }) : null, content.kind === 'video' && renderVideo === undefined && expoVideo !== null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(expoVideo.VideoView, {
122
130
  player: detached ? null : content.player,
123
131
  contentFit: contentFit,
124
132
  surfaceType: mountedSurfaceType,
@@ -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","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":[]}
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","renderVideo","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","player","fillReplaced","VideoView","onFirstFrameRender","displayName","MediaPoster","EmptyMediaSurface","empty","create","width","height","overflow","backgroundColor"],"sourceRoot":"../../../src","sources":["media-flight/MediaSurface.tsx"],"mappings":"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","ignoreList":[]}
@@ -128,20 +128,43 @@ function recordFor(id, render) {
128
128
  const reg = registry();
129
129
  let record = reg.nodes.get(id);
130
130
  if (!record) {
131
+ // A position-only claim can be the first one in: a flight can take off
132
+ // before the host it flies from has committed. `EMPTY_RENDER` paints
133
+ // nothing until a host says what, which is the honest state.
131
134
  record = {
132
135
  wrapper: makeWrapper(),
133
136
  claims: [],
134
- render
137
+ render: render ?? EMPTY_RENDER
135
138
  };
136
139
  reg.nodes.set(id, record);
137
140
  }
138
141
  return record;
139
142
  }
140
143
 
144
+ /** Nothing to paint yet. Replaced by the first host claim that arrives. */
145
+ const EMPTY_RENDER = {
146
+ content: {
147
+ uri: ''
148
+ },
149
+ contentFit: 'cover',
150
+ renderVideo: undefined,
151
+ nativeControls: false,
152
+ accessibilityLabel: undefined,
153
+ flightId: undefined
154
+ };
155
+
141
156
  /** The claim that currently holds the node: highest rank, then most recent. */
142
157
  function topClaim(record) {
158
+ return pick(record.claims);
159
+ }
160
+
161
+ /** The highest-ranked claim that says what to PAINT. See `MediaNodeClaim.render`. */
162
+ function topRender(record) {
163
+ return pick(record.claims.filter(claim => claim.render !== undefined));
164
+ }
165
+ function pick(claims) {
143
166
  let best = null;
144
- for (const claim of record.claims) {
167
+ for (const claim of claims) {
145
168
  if (best === null || claim.rank > best.rank || claim.rank === best.rank && claim.seq > best.seq) {
146
169
  best = claim;
147
170
  }
@@ -165,6 +188,7 @@ function place(record) {
165
188
  }
166
189
  function sameRender(a, b) {
167
190
  if (a.contentFit !== b.contentFit) return false;
191
+ if (a.renderVideo !== b.renderVideo) return false;
168
192
  if (a.nativeControls !== b.nativeControls) return false;
169
193
  if (a.accessibilityLabel !== b.accessibilityLabel) return false;
170
194
  if (a.flightId !== b.flightId) return false;
@@ -179,7 +203,7 @@ function sameRender(a, b) {
179
203
  function publish(reg) {
180
204
  const next = [];
181
205
  for (const [id, record] of reg.nodes) {
182
- record.render = topClaim(record)?.render ?? record.render;
206
+ record.render = topRender(record)?.render ?? record.render;
183
207
  next.push({
184
208
  id,
185
209
  wrapper: record.wrapper,
@@ -212,9 +236,8 @@ function claimMediaNode(id, el, rank, render) {
212
236
  const record = recordFor(id, render);
213
237
  const existing = record.claims.find(claim => claim.el === el && claim.rank === rank);
214
238
  if (existing !== undefined) {
215
- if (sameRender(existing.render, render) && record.wrapper.parentElement === topClaim(record)?.el) {
216
- return;
217
- }
239
+ const unchanged = existing.render === render || existing.render !== undefined && render !== undefined && sameRender(existing.render, render);
240
+ if (unchanged && record.wrapper.parentElement === topClaim(record)?.el) return;
218
241
  existing.render = render;
219
242
  } else {
220
243
  reg.seq += 1;
@@ -1 +1 @@
1
- {"version":3,"names":["_store","require","HOST_RANK","exports","FLIGHT_RANK","registry","globalThis","__oxyhq_bloom_media_nodes__","nodes","Map","listeners","Set","snapshot","holder","seq","HOLDER_ID","reg","document","isConnected","existing","getElementById","created","createElement","id","style","cssText","setAttribute","body","appendChild","makeWrapper","wrapper","recordFor","render","record","get","claims","set","topClaim","best","claim","rank","place","target","el","parentElement","sameRender","a","b","contentFit","nativeControls","accessibilityLabel","flightId","x","content","y","kind","player","poster","uri","publish","next","push","previous","unchanged","length","every","view","i","candidate","undefined","listener","claimMediaNode","find","releaseMediaNode","before","filter","hasFlight","delete","remove","hasMediaNode","subscribeToMediaNodes","add","getMediaNodes","resetMediaNodes","values","clear"],"sourceRoot":"../../../src","sources":["media-flight/media-node.web.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_store","require","HOST_RANK","exports","FLIGHT_RANK","registry","globalThis","__oxyhq_bloom_media_nodes__","nodes","Map","listeners","Set","snapshot","holder","seq","HOLDER_ID","reg","document","isConnected","existing","getElementById","created","createElement","id","style","cssText","setAttribute","body","appendChild","makeWrapper","wrapper","recordFor","render","record","get","claims","EMPTY_RENDER","set","content","uri","contentFit","renderVideo","undefined","nativeControls","accessibilityLabel","flightId","topClaim","pick","topRender","filter","claim","best","rank","place","target","el","parentElement","sameRender","a","b","x","y","kind","player","poster","publish","next","push","previous","unchanged","length","every","view","i","candidate","listener","claimMediaNode","find","releaseMediaNode","before","hasFlight","delete","remove","hasMediaNode","subscribeToMediaNodes","add","getMediaNodes","resetMediaNodes","values","clear"],"sourceRoot":"../../../src","sources":["media-flight/media-node.web.ts"],"mappings":"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","ignoreList":[]}
@@ -23,6 +23,7 @@ export function MediaFlightHost({
23
23
  content,
24
24
  style,
25
25
  contentFit = 'cover',
26
+ renderVideo,
26
27
  nativeControls = false,
27
28
  accessibilityLabel,
28
29
  surfaceType,
@@ -39,6 +40,7 @@ export function MediaFlightHost({
39
40
  children: /*#__PURE__*/_jsx(MediaSurface, {
40
41
  content: content,
41
42
  contentFit: contentFit,
43
+ renderVideo: renderVideo,
42
44
  nativeControls: nativeControls,
43
45
  accessibilityLabel: accessibilityLabel,
44
46
  surfaceType: surfaceType,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","StyleSheet","View","MediaSurface","registerAnchor","jsx","_jsx","MediaFlightHost","id","content","style","contentFit","nativeControls","accessibilityLabel","surfaceType","pointerEvents","flightId","setNode","node","ref","children","absoluteFill","displayName"],"sourceRoot":"../../../src","sources":["media-flight/MediaFlightHost.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE/C,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,cAAc,QAAQ,YAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGzC,OAAO,SAASC,eAAeA,CAAC;EAC9BC,EAAE;EACFC,OAAO;EACPC,KAAK;EACLC,UAAU,GAAG,OAAO;EACpBC,cAAc,GAAG,KAAK;EACtBC,kBAAkB;EAClBC,WAAW;EACXC,aAAa;EACbC;AACoB,CAAC,EAAE;EACvB;EACA;EACA,MAAMC,OAAO,GAAGjB,WAAW,CACxBkB,IAAiB,IAAKd,cAAc,CAACI,EAAE,EAAEU,IAAI,CAAC,EAC/C,CAACV,EAAE,CACL,CAAC;EAED,oBACEF,IAAA,CAACJ,IAAI;IAACiB,GAAG,EAAEF,OAAQ;IAACP,KAAK,EAAEA,KAAM;IAACK,aAAa,EAAEA,aAAc;IAAAK,QAAA,eAC7Dd,IAAA,CAACH,YAAY;MACXM,OAAO,EAAEA,OAAQ;MACjBE,UAAU,EAAEA,UAAW;MACvBC,cAAc,EAAEA,cAAe;MAC/BC,kBAAkB,EAAEA,kBAAmB;MACvCC,WAAW,EAAEA,WAAY;MACzBE,QAAQ,EAAEA,QAAS;MACnBN,KAAK,EAAET,UAAU,CAACoB;IAAa,CAChC;EAAC,CACE,CAAC;AAEX;AAEAd,eAAe,CAACe,WAAW,GAAG,iBAAiB","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","StyleSheet","View","MediaSurface","registerAnchor","jsx","_jsx","MediaFlightHost","id","content","style","contentFit","renderVideo","nativeControls","accessibilityLabel","surfaceType","pointerEvents","flightId","setNode","node","ref","children","absoluteFill","displayName"],"sourceRoot":"../../../src","sources":["media-flight/MediaFlightHost.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE/C,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,cAAc,QAAQ,YAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGzC,OAAO,SAASC,eAAeA,CAAC;EAC9BC,EAAE;EACFC,OAAO;EACPC,KAAK;EACLC,UAAU,GAAG,OAAO;EACpBC,WAAW;EACXC,cAAc,GAAG,KAAK;EACtBC,kBAAkB;EAClBC,WAAW;EACXC,aAAa;EACbC;AACoB,CAAC,EAAE;EACvB;EACA;EACA,MAAMC,OAAO,GAAGlB,WAAW,CACxBmB,IAAiB,IAAKf,cAAc,CAACI,EAAE,EAAEW,IAAI,CAAC,EAC/C,CAACX,EAAE,CACL,CAAC;EAED,oBACEF,IAAA,CAACJ,IAAI;IAACkB,GAAG,EAAEF,OAAQ;IAACR,KAAK,EAAEA,KAAM;IAACM,aAAa,EAAEA,aAAc;IAAAK,QAAA,eAC7Df,IAAA,CAACH,YAAY;MACXM,OAAO,EAAEA,OAAQ;MACjBE,UAAU,EAAEA,UAAW;MACvBC,WAAW,EAAEA,WAAY;MACzBC,cAAc,EAAEA,cAAe;MAC/BC,kBAAkB,EAAEA,kBAAmB;MACvCC,WAAW,EAAEA,WAAY;MACzBE,QAAQ,EAAEA,QAAS;MACnBP,KAAK,EAAET,UAAU,CAACqB;IAAa,CAChC;EAAC,CACE,CAAC;AAEX;AAEAf,eAAe,CAACgB,WAAW,GAAG,iBAAiB","ignoreList":[]}
@@ -25,6 +25,7 @@ export function MediaFlightHost({
25
25
  content,
26
26
  style,
27
27
  contentFit = 'cover',
28
+ renderVideo,
28
29
  nativeControls = false,
29
30
  accessibilityLabel,
30
31
  pointerEvents,
@@ -40,10 +41,11 @@ export function MediaFlightHost({
40
41
  const render = useMemo(() => ({
41
42
  content,
42
43
  contentFit,
44
+ renderVideo,
43
45
  nativeControls,
44
46
  accessibilityLabel,
45
47
  flightId
46
- }), [content, contentFit, nativeControls, accessibilityLabel, flightId]);
48
+ }), [content, contentFit, renderVideo, nativeControls, accessibilityLabel, flightId]);
47
49
  const renderRef = useRef(render);
48
50
 
49
51
  // Declared FIRST so it runs first on mount: it seeds the ref the claim below
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useLayoutEffect","useMemo","useRef","useState","View","HOST_RANK","claimMediaNode","releaseMediaNode","handOffFlight","hasFlight","registerAnchor","jsx","_jsx","MediaFlightHost","id","content","style","contentFit","nativeControls","accessibilityLabel","pointerEvents","flightId","node","setNode","setHost","next","render","renderRef","current","el","undefined","ref","displayName"],"sourceRoot":"../../../src","sources":["media-flight/MediaFlightHost.web.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,eAAe,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC/E,SAASC,IAAI,QAAQ,cAAc;AAEnC,SACEC,SAAS,EACTC,cAAc,EACdC,gBAAgB,QAEX,qBAAkB;AACzB,SAASC,aAAa,EAAEC,SAAS,EAAEC,cAAc,QAAQ,YAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGnE,OAAO,SAASC,eAAeA,CAAC;EAC9BC,EAAE;EACFC,OAAO;EACPC,KAAK;EACLC,UAAU,GAAG,OAAO;EACpBC,cAAc,GAAG,KAAK;EACtBC,kBAAkB;EAClBC,aAAa;EACbC;AACoB,CAAC,EAAE;EACvB;EACA;EACA,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGpB,QAAQ,CAAc,IAAI,CAAC;EAEnD,MAAMqB,OAAO,GAAGzB,WAAW,CACxB0B,IAAiB,IAAK;IACrBf,cAAc,CAACI,EAAE,EAAEW,IAAI,CAAC;IACxBF,OAAO,CAACE,IAAI,CAAC;EACf,CAAC,EACD,CAACX,EAAE,CACL,CAAC;EAED,MAAMY,MAAM,GAAGzB,OAAO,CACpB,OAAO;IAAEc,OAAO;IAAEE,UAAU;IAAEC,cAAc;IAAEC,kBAAkB;IAAEE;EAAS,CAAC,CAAC,EAC7E,CAACN,OAAO,EAAEE,UAAU,EAAEC,cAAc,EAAEC,kBAAkB,EAAEE,QAAQ,CACpE,CAAC;EACD,MAAMM,SAAS,GAAGzB,MAAM,CAACwB,MAAM,CAAC;;EAEhC;EACA;EACA;EACA;EACA1B,eAAe,CAAC,MAAM;IACpB2B,SAAS,CAACC,OAAO,GAAGF,MAAM;IAC1B,MAAMG,EAAE,GAAGP,IAAqC;IAChD,IAAIO,EAAE,KAAK,IAAI,EAAEvB,cAAc,CAACQ,EAAE,EAAEe,EAAE,EAAExB,SAAS,EAAEqB,MAAM,CAAC;EAC5D,CAAC,EAAE,CAACZ,EAAE,EAAEQ,IAAI,EAAEI,MAAM,CAAC,CAAC;;EAEtB;EACA;EACA1B,eAAe,CAAC,MAAM;IACpB,MAAM6B,EAAE,GAAGP,IAAqC;IAChD,IAAIO,EAAE,KAAK,IAAI,EAAE,OAAOC,SAAS;IACjCxB,cAAc,CAACQ,EAAE,EAAEe,EAAE,EAAExB,SAAS,EAAEsB,SAAS,CAACC,OAAO,CAAC;IACpD;IACA;IACA;IACA;IACA;IACA,IAAInB,SAAS,CAACK,EAAE,CAAC,EAAEN,aAAa,CAACM,EAAE,CAAC;IACpC,OAAO,MAAMP,gBAAgB,CAACO,EAAE,EAAEe,EAAE,EAAExB,SAAS,CAAC;EAClD,CAAC,EAAE,CAACS,EAAE,EAAEQ,IAAI,CAAC,CAAC;EAEd,oBAAOV,IAAA,CAACR,IAAI;IAAC2B,GAAG,EAAEP,OAAQ;IAACR,KAAK,EAAEA,KAAM;IAACI,aAAa,EAAEA;EAAc,CAAE,CAAC;AAC3E;AAEAP,eAAe,CAACmB,WAAW,GAAG,iBAAiB","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useLayoutEffect","useMemo","useRef","useState","View","HOST_RANK","claimMediaNode","releaseMediaNode","handOffFlight","hasFlight","registerAnchor","jsx","_jsx","MediaFlightHost","id","content","style","contentFit","renderVideo","nativeControls","accessibilityLabel","pointerEvents","flightId","node","setNode","setHost","next","render","renderRef","current","el","undefined","ref","displayName"],"sourceRoot":"../../../src","sources":["media-flight/MediaFlightHost.web.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,eAAe,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC/E,SAASC,IAAI,QAAQ,cAAc;AAEnC,SACEC,SAAS,EACTC,cAAc,EACdC,gBAAgB,QAEX,qBAAkB;AACzB,SAASC,aAAa,EAAEC,SAAS,EAAEC,cAAc,QAAQ,YAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGnE,OAAO,SAASC,eAAeA,CAAC;EAC9BC,EAAE;EACFC,OAAO;EACPC,KAAK;EACLC,UAAU,GAAG,OAAO;EACpBC,WAAW;EACXC,cAAc,GAAG,KAAK;EACtBC,kBAAkB;EAClBC,aAAa;EACbC;AACoB,CAAC,EAAE;EACvB;EACA;EACA,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGrB,QAAQ,CAAc,IAAI,CAAC;EAEnD,MAAMsB,OAAO,GAAG1B,WAAW,CACxB2B,IAAiB,IAAK;IACrBhB,cAAc,CAACI,EAAE,EAAEY,IAAI,CAAC;IACxBF,OAAO,CAACE,IAAI,CAAC;EACf,CAAC,EACD,CAACZ,EAAE,CACL,CAAC;EAED,MAAMa,MAAM,GAAG1B,OAAO,CACpB,OAAO;IAAEc,OAAO;IAAEE,UAAU;IAAEC,WAAW;IAAEC,cAAc;IAAEC,kBAAkB;IAAEE;EAAS,CAAC,CAAC,EAC1F,CAACP,OAAO,EAAEE,UAAU,EAAEC,WAAW,EAAEC,cAAc,EAAEC,kBAAkB,EAAEE,QAAQ,CACjF,CAAC;EACD,MAAMM,SAAS,GAAG1B,MAAM,CAACyB,MAAM,CAAC;;EAEhC;EACA;EACA;EACA;EACA3B,eAAe,CAAC,MAAM;IACpB4B,SAAS,CAACC,OAAO,GAAGF,MAAM;IAC1B,MAAMG,EAAE,GAAGP,IAAqC;IAChD,IAAIO,EAAE,KAAK,IAAI,EAAExB,cAAc,CAACQ,EAAE,EAAEgB,EAAE,EAAEzB,SAAS,EAAEsB,MAAM,CAAC;EAC5D,CAAC,EAAE,CAACb,EAAE,EAAES,IAAI,EAAEI,MAAM,CAAC,CAAC;;EAEtB;EACA;EACA3B,eAAe,CAAC,MAAM;IACpB,MAAM8B,EAAE,GAAGP,IAAqC;IAChD,IAAIO,EAAE,KAAK,IAAI,EAAE,OAAOC,SAAS;IACjCzB,cAAc,CAACQ,EAAE,EAAEgB,EAAE,EAAEzB,SAAS,EAAEuB,SAAS,CAACC,OAAO,CAAC;IACpD;IACA;IACA;IACA;IACA;IACA,IAAIpB,SAAS,CAACK,EAAE,CAAC,EAAEN,aAAa,CAACM,EAAE,CAAC;IACpC,OAAO,MAAMP,gBAAgB,CAACO,EAAE,EAAEgB,EAAE,EAAEzB,SAAS,CAAC;EAClD,CAAC,EAAE,CAACS,EAAE,EAAES,IAAI,CAAC,CAAC;EAEd,oBAAOX,IAAA,CAACR,IAAI;IAAC4B,GAAG,EAAEP,OAAQ;IAACT,KAAK,EAAEA,KAAM;IAACK,aAAa,EAAEA;EAAc,CAAE,CAAC;AAC3E;AAEAR,eAAe,CAACoB,WAAW,GAAG,iBAAiB","ignoreList":[]}
@@ -28,7 +28,7 @@
28
28
  * falls back to painting its own `MediaSurface`, which is what every flight did
29
29
  * before hosts existed.
30
30
  */
31
- import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore } from 'react';
31
+ import { useCallback, useEffect, useLayoutEffect, useState, useSyncExternalStore } from 'react';
32
32
  import { StyleSheet } from 'react-native';
33
33
  import { createPortal } from 'react-dom';
34
34
  import Animated, { interpolate, useAnimatedStyle } from 'react-native-reanimated';
@@ -68,6 +68,7 @@ function SharedMediaNode({
68
68
  const {
69
69
  content,
70
70
  contentFit,
71
+ renderVideo,
71
72
  nativeControls,
72
73
  accessibilityLabel,
73
74
  flightId
@@ -75,6 +76,7 @@ function SharedMediaNode({
75
76
  return /*#__PURE__*/createPortal(/*#__PURE__*/_jsx(MediaSurface, {
76
77
  content: content,
77
78
  contentFit: contentFit,
79
+ renderVideo: renderVideo,
78
80
  nativeControls: nativeControls,
79
81
  accessibilityLabel: accessibilityLabel,
80
82
  flightId: flightId,
@@ -125,21 +127,12 @@ function MediaFlightSurface({
125
127
  top: to.y,
126
128
  borderRadius: cornerRadius
127
129
  }, boxStyle];
128
- const render = useMemo(() => ({
129
- content,
130
- contentFit,
131
- nativeControls: false,
132
- accessibilityLabel: undefined,
133
- // A flying surface never hands off to itself.
134
- flightId: undefined
135
- }), [content, contentFit]);
136
130
 
137
131
  // The shared node is already painting this media. The flight is then a BOX
138
132
  // that borrows it for the length of the leg, never a second copy.
139
133
  if (shared) return /*#__PURE__*/_jsx(FlyingSharedNode, {
140
134
  id: id,
141
- style: box,
142
- render: render
135
+ style: box
143
136
  });
144
137
  return /*#__PURE__*/_jsx(MediaSurface, {
145
138
  content: content,
@@ -168,27 +161,20 @@ function MediaFlightSurface({
168
161
  */
169
162
  function FlyingSharedNode({
170
163
  id,
171
- style,
172
- render
164
+ style
173
165
  }) {
174
166
  const [node, setNode] = useState(null);
175
167
  const setBox = useCallback(next => setNode(next), []);
176
- const renderRef = useRef(render);
177
-
178
- // Declared first so it runs first on mount, and afterwards is what pushes
179
- // prop changes into a live claim IN PLACE — releasing and re-claiming would
180
- // move the node away and back, and a move away is a removal.
181
- useLayoutEffect(() => {
182
- renderRef.current = render;
183
- const el = node;
184
- if (el !== null) claimMediaNode(id, el, FLIGHT_RANK, render);
185
- }, [id, node, render]);
186
168
 
187
- // Owns the claim's LIFETIME, and only that.
169
+ // A POSITION-ONLY claim: it says where the node lives for the length of the
170
+ // leg and nothing about what is painted in it. A flight that published a
171
+ // render of its own would replace the hosts' — and swap a consumer's own
172
+ // element out and back, which is two remounts in the middle of the one
173
+ // operation whose whole point is that the element is never rebuilt.
188
174
  useLayoutEffect(() => {
189
175
  const el = node;
190
176
  if (el === null) return undefined;
191
- claimMediaNode(id, el, FLIGHT_RANK, renderRef.current);
177
+ claimMediaNode(id, el, FLIGHT_RANK);
192
178
  return () => releaseMediaNode(id, el, FLIGHT_RANK);
193
179
  }, [id, node]);
194
180
  return /*#__PURE__*/_jsx(Animated.View, {
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useLayoutEffect","useMemo","useRef","useState","useSyncExternalStore","StyleSheet","createPortal","Animated","interpolate","useAnimatedStyle","OverlayRoot","Portal","MediaSurface","FLIGHT_RANK","claimMediaNode","getMediaNodes","releaseMediaNode","subscribeToMediaNodes","getFlights","notifySurfaceMounted","subscribeToFlights","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","MediaFlightLayer","flights","nodes","length","children","map","node","SharedMediaNode","id","flight","MediaFlightSurface","shared","some","displayName","content","contentFit","nativeControls","accessibilityLabel","flightId","render","style","absoluteFill","wrapper","from","to","progress","cornerRadius","surfaceType","unbinding","originX","x","originY","y","boxStyle","transform","translateX","value","translateY","width","height","box","styles","left","top","borderRadius","undefined","FlyingSharedNode","detached","pointerEvents","setNode","setBox","next","renderRef","current","el","View","ref","create","position","overflow"],"sourceRoot":"../../../src","sources":["media-flight/MediaFlightLayer.web.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useLayoutEffect","useState","useSyncExternalStore","StyleSheet","createPortal","Animated","interpolate","useAnimatedStyle","OverlayRoot","Portal","MediaSurface","FLIGHT_RANK","claimMediaNode","getMediaNodes","releaseMediaNode","subscribeToMediaNodes","getFlights","notifySurfaceMounted","subscribeToFlights","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","MediaFlightLayer","flights","nodes","length","children","map","node","SharedMediaNode","id","flight","MediaFlightSurface","shared","some","displayName","content","contentFit","renderVideo","nativeControls","accessibilityLabel","flightId","render","style","absoluteFill","wrapper","from","to","progress","cornerRadius","surfaceType","unbinding","originX","x","originY","y","boxStyle","transform","translateX","value","translateY","width","height","box","styles","left","top","borderRadius","FlyingSharedNode","detached","pointerEvents","setNode","setBox","next","el","undefined","View","ref","create","position","overflow"],"sourceRoot":"../../../src","sources":["media-flight/MediaFlightLayer.web.tsx"],"mappings":"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","ignoreList":[]}