@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.
- package/docs/media-flight.mdx +46 -0
- package/lib/commonjs/media-flight/MediaFlightHost.js +2 -0
- package/lib/commonjs/media-flight/MediaFlightHost.js.map +1 -1
- package/lib/commonjs/media-flight/MediaFlightHost.web.js +3 -1
- package/lib/commonjs/media-flight/MediaFlightHost.web.js.map +1 -1
- package/lib/commonjs/media-flight/MediaFlightLayer.web.js +10 -24
- package/lib/commonjs/media-flight/MediaFlightLayer.web.js.map +1 -1
- package/lib/commonjs/media-flight/MediaSurface.js +13 -5
- package/lib/commonjs/media-flight/MediaSurface.js.map +1 -1
- package/lib/commonjs/media-flight/media-node.web.js +29 -6
- package/lib/commonjs/media-flight/media-node.web.js.map +1 -1
- package/lib/module/media-flight/MediaFlightHost.js +2 -0
- package/lib/module/media-flight/MediaFlightHost.js.map +1 -1
- package/lib/module/media-flight/MediaFlightHost.web.js +3 -1
- package/lib/module/media-flight/MediaFlightHost.web.js.map +1 -1
- package/lib/module/media-flight/MediaFlightLayer.web.js +11 -25
- package/lib/module/media-flight/MediaFlightLayer.web.js.map +1 -1
- package/lib/module/media-flight/MediaSurface.js +13 -5
- package/lib/module/media-flight/MediaSurface.js.map +1 -1
- package/lib/module/media-flight/media-node.web.js +29 -6
- package/lib/module/media-flight/media-node.web.js.map +1 -1
- package/lib/typescript/commonjs/media-flight/MediaFlightHost.d.ts +1 -1
- package/lib/typescript/commonjs/media-flight/MediaFlightHost.d.ts.map +1 -1
- package/lib/typescript/commonjs/media-flight/MediaFlightHost.web.d.ts +1 -1
- package/lib/typescript/commonjs/media-flight/MediaFlightHost.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/media-flight/MediaFlightLayer.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/media-flight/MediaSurface.d.ts +9 -1
- package/lib/typescript/commonjs/media-flight/MediaSurface.d.ts.map +1 -1
- package/lib/typescript/commonjs/media-flight/media-node.web.d.ts +17 -3
- package/lib/typescript/commonjs/media-flight/media-node.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/media-flight/types.d.ts +49 -0
- package/lib/typescript/commonjs/media-flight/types.d.ts.map +1 -1
- package/lib/typescript/module/media-flight/MediaFlightHost.d.ts +1 -1
- package/lib/typescript/module/media-flight/MediaFlightHost.d.ts.map +1 -1
- package/lib/typescript/module/media-flight/MediaFlightHost.web.d.ts +1 -1
- package/lib/typescript/module/media-flight/MediaFlightHost.web.d.ts.map +1 -1
- package/lib/typescript/module/media-flight/MediaFlightLayer.web.d.ts.map +1 -1
- package/lib/typescript/module/media-flight/MediaSurface.d.ts +9 -1
- package/lib/typescript/module/media-flight/MediaSurface.d.ts.map +1 -1
- package/lib/typescript/module/media-flight/media-node.web.d.ts +17 -3
- package/lib/typescript/module/media-flight/media-node.web.d.ts.map +1 -1
- package/lib/typescript/module/media-flight/types.d.ts +49 -0
- package/lib/typescript/module/media-flight/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/media-flight/MediaFlightHost.tsx +2 -0
- package/src/media-flight/MediaFlightHost.web.tsx +3 -2
- package/src/media-flight/MediaFlightLayer.web.tsx +10 -38
- package/src/media-flight/MediaSurface.tsx +26 -6
- package/src/media-flight/media-node.web.ts +48 -10
- package/src/media-flight/types.ts +51 -0
package/docs/media-flight.mdx
CHANGED
|
@@ -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,
|
|
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,
|
|
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
|
-
//
|
|
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
|
|
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","
|
|
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
|
|
87
|
-
// surface must never make an app resolve an optional
|
|
88
|
-
|
|
89
|
-
|
|
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' &&
|
|
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","
|
|
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
|
|
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 =
|
|
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
|
-
|
|
216
|
-
|
|
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","
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
-
//
|
|
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
|
|
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","
|
|
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":[]}
|