@oxyhq/bloom 1.1.0 → 1.2.1
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 +282 -0
- package/docs/migrating-the-media-gallery.mdx +103 -0
- package/docs/migrating-to-1.0.mdx +1 -1
- package/docs/zoomable-media-gallery.mdx +116 -0
- package/lib/commonjs/image-aspect-ratio-cache/aspect-ratio-cache.js +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/media-flight/MediaFlightLayer.js +151 -0
- package/lib/commonjs/media-flight/MediaFlightLayer.js.map +1 -0
- package/lib/commonjs/media-flight/MediaSurface.js +207 -0
- package/lib/commonjs/media-flight/MediaSurface.js.map +1 -0
- package/lib/commonjs/media-flight/constants.js +39 -0
- package/lib/commonjs/media-flight/constants.js.map +1 -0
- package/lib/commonjs/media-flight/expo-video-module.js +180 -0
- package/lib/commonjs/media-flight/expo-video-module.js.map +1 -0
- package/lib/commonjs/media-flight/index.js +108 -0
- package/lib/commonjs/media-flight/index.js.map +1 -0
- package/lib/commonjs/media-flight/store.js +457 -0
- package/lib/commonjs/media-flight/store.js.map +1 -0
- package/lib/commonjs/media-flight/types.js +6 -0
- package/lib/commonjs/media-flight/types.js.map +1 -0
- package/lib/commonjs/media-flight/use-media-flight.js +41 -0
- package/lib/commonjs/media-flight/use-media-flight.js.map +1 -0
- package/lib/commonjs/tab-bar/TabBarBase.js +1 -1
- package/lib/commonjs/{zoomable-image-gallery/ZoomableImageGallery.js → zoomable-media-gallery/ZoomableMediaGallery.js} +185 -131
- package/lib/commonjs/zoomable-media-gallery/ZoomableMediaGallery.js.map +1 -0
- package/lib/commonjs/{zoomable-image-gallery → zoomable-media-gallery}/constants.js.map +1 -1
- package/lib/commonjs/{zoomable-image-gallery → zoomable-media-gallery}/index.js +5 -5
- package/lib/commonjs/{zoomable-image-gallery → zoomable-media-gallery}/index.js.map +1 -1
- package/lib/commonjs/zoomable-media-gallery/types.js +6 -0
- package/lib/commonjs/{zoomable-image-gallery → zoomable-media-gallery}/types.js.map +1 -1
- package/lib/module/image-aspect-ratio-cache/aspect-ratio-cache.js +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +2 -1
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/media-flight/MediaFlightLayer.js +146 -0
- package/lib/module/media-flight/MediaFlightLayer.js.map +1 -0
- package/lib/module/media-flight/MediaSurface.js +199 -0
- package/lib/module/media-flight/MediaSurface.js.map +1 -0
- package/lib/module/media-flight/constants.js +35 -0
- package/lib/module/media-flight/constants.js.map +1 -0
- package/lib/module/media-flight/expo-video-module.js +173 -0
- package/lib/module/media-flight/expo-video-module.js.map +1 -0
- package/lib/module/media-flight/index.js +9 -0
- package/lib/module/media-flight/index.js.map +1 -0
- package/lib/module/media-flight/store.js +439 -0
- package/lib/module/media-flight/store.js.map +1 -0
- package/lib/module/media-flight/types.js +4 -0
- package/lib/module/media-flight/types.js.map +1 -0
- package/lib/module/media-flight/use-media-flight.js +36 -0
- package/lib/module/media-flight/use-media-flight.js.map +1 -0
- package/lib/module/tab-bar/TabBarBase.js +1 -1
- package/lib/module/{zoomable-image-gallery/ZoomableImageGallery.js → zoomable-media-gallery/ZoomableMediaGallery.js} +184 -130
- package/lib/module/zoomable-media-gallery/ZoomableMediaGallery.js.map +1 -0
- package/lib/module/{zoomable-image-gallery → zoomable-media-gallery}/constants.js.map +1 -1
- package/lib/module/zoomable-media-gallery/index.js +5 -0
- package/lib/module/zoomable-media-gallery/index.js.map +1 -0
- package/lib/module/zoomable-media-gallery/types.js +4 -0
- package/lib/module/{zoomable-image-gallery → zoomable-media-gallery}/types.js.map +1 -1
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/media-flight/MediaFlightLayer.d.ts +11 -0
- package/lib/typescript/commonjs/media-flight/MediaFlightLayer.d.ts.map +1 -0
- package/lib/typescript/commonjs/media-flight/MediaSurface.d.ts +106 -0
- package/lib/typescript/commonjs/media-flight/MediaSurface.d.ts.map +1 -0
- package/lib/typescript/commonjs/media-flight/constants.d.ts +18 -0
- package/lib/typescript/commonjs/media-flight/constants.d.ts.map +1 -0
- package/lib/typescript/commonjs/media-flight/expo-video-module.d.ts +125 -0
- package/lib/typescript/commonjs/media-flight/expo-video-module.d.ts.map +1 -0
- package/lib/typescript/commonjs/media-flight/index.d.ts +9 -0
- package/lib/typescript/commonjs/media-flight/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/media-flight/store.d.ts +132 -0
- package/lib/typescript/commonjs/media-flight/store.d.ts.map +1 -0
- package/lib/typescript/commonjs/media-flight/types.d.ts +195 -0
- package/lib/typescript/commonjs/media-flight/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/media-flight/use-media-flight.d.ts +4 -0
- package/lib/typescript/commonjs/media-flight/use-media-flight.d.ts.map +1 -0
- package/lib/typescript/commonjs/zoomable-media-gallery/ZoomableMediaGallery.d.ts +5 -0
- package/lib/typescript/commonjs/zoomable-media-gallery/ZoomableMediaGallery.d.ts.map +1 -0
- package/lib/typescript/commonjs/{zoomable-image-gallery → zoomable-media-gallery}/constants.d.ts.map +1 -1
- package/lib/typescript/commonjs/zoomable-media-gallery/index.d.ts +4 -0
- package/lib/typescript/commonjs/{zoomable-image-gallery → zoomable-media-gallery}/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/zoomable-media-gallery/types.d.ts +90 -0
- package/lib/typescript/commonjs/zoomable-media-gallery/types.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/index.web.d.ts.map +1 -1
- package/lib/typescript/module/media-flight/MediaFlightLayer.d.ts +11 -0
- package/lib/typescript/module/media-flight/MediaFlightLayer.d.ts.map +1 -0
- package/lib/typescript/module/media-flight/MediaSurface.d.ts +106 -0
- package/lib/typescript/module/media-flight/MediaSurface.d.ts.map +1 -0
- package/lib/typescript/module/media-flight/constants.d.ts +18 -0
- package/lib/typescript/module/media-flight/constants.d.ts.map +1 -0
- package/lib/typescript/module/media-flight/expo-video-module.d.ts +125 -0
- package/lib/typescript/module/media-flight/expo-video-module.d.ts.map +1 -0
- package/lib/typescript/module/media-flight/index.d.ts +9 -0
- package/lib/typescript/module/media-flight/index.d.ts.map +1 -0
- package/lib/typescript/module/media-flight/store.d.ts +132 -0
- package/lib/typescript/module/media-flight/store.d.ts.map +1 -0
- package/lib/typescript/module/media-flight/types.d.ts +195 -0
- package/lib/typescript/module/media-flight/types.d.ts.map +1 -0
- package/lib/typescript/module/media-flight/use-media-flight.d.ts +4 -0
- package/lib/typescript/module/media-flight/use-media-flight.d.ts.map +1 -0
- package/lib/typescript/module/zoomable-media-gallery/ZoomableMediaGallery.d.ts +5 -0
- package/lib/typescript/module/zoomable-media-gallery/ZoomableMediaGallery.d.ts.map +1 -0
- package/lib/typescript/module/{zoomable-image-gallery → zoomable-media-gallery}/constants.d.ts.map +1 -1
- package/lib/typescript/module/zoomable-media-gallery/index.d.ts +4 -0
- package/lib/typescript/module/{zoomable-image-gallery → zoomable-media-gallery}/index.d.ts.map +1 -1
- package/lib/typescript/module/zoomable-media-gallery/types.d.ts +90 -0
- package/lib/typescript/module/zoomable-media-gallery/types.d.ts.map +1 -0
- package/package.json +42 -8
- package/src/image-aspect-ratio-cache/aspect-ratio-cache.ts +1 -1
- package/src/index.ts +2 -1
- package/src/index.web.ts +2 -1
- package/src/media-flight/MediaFlightLayer.tsx +144 -0
- package/src/media-flight/MediaSurface.tsx +251 -0
- package/src/media-flight/constants.ts +32 -0
- package/src/media-flight/expo-video-module.ts +212 -0
- package/src/media-flight/index.ts +34 -0
- package/src/media-flight/store.ts +497 -0
- package/src/media-flight/types.ts +210 -0
- package/src/media-flight/use-media-flight.ts +42 -0
- package/src/tab-bar/TabBarBase.tsx +1 -1
- package/src/{zoomable-image-gallery/ZoomableImageGallery.tsx → zoomable-media-gallery/ZoomableMediaGallery.tsx} +192 -117
- package/src/zoomable-media-gallery/index.ts +11 -0
- package/src/zoomable-media-gallery/types.ts +100 -0
- package/docs/zoomable-image-gallery.mdx +0 -66
- package/lib/commonjs/zoomable-image-gallery/ZoomableImageGallery.js.map +0 -1
- package/lib/commonjs/zoomable-image-gallery/types.js +0 -2
- package/lib/module/zoomable-image-gallery/ZoomableImageGallery.js.map +0 -1
- package/lib/module/zoomable-image-gallery/index.js +0 -5
- package/lib/module/zoomable-image-gallery/index.js.map +0 -1
- package/lib/module/zoomable-image-gallery/types.js +0 -2
- package/lib/typescript/commonjs/zoomable-image-gallery/ZoomableImageGallery.d.ts +0 -5
- package/lib/typescript/commonjs/zoomable-image-gallery/ZoomableImageGallery.d.ts.map +0 -1
- package/lib/typescript/commonjs/zoomable-image-gallery/index.d.ts +0 -4
- package/lib/typescript/commonjs/zoomable-image-gallery/types.d.ts +0 -56
- package/lib/typescript/commonjs/zoomable-image-gallery/types.d.ts.map +0 -1
- package/lib/typescript/module/zoomable-image-gallery/ZoomableImageGallery.d.ts +0 -5
- package/lib/typescript/module/zoomable-image-gallery/ZoomableImageGallery.d.ts.map +0 -1
- package/lib/typescript/module/zoomable-image-gallery/index.d.ts +0 -4
- package/lib/typescript/module/zoomable-image-gallery/types.d.ts +0 -56
- package/lib/typescript/module/zoomable-image-gallery/types.d.ts.map +0 -1
- package/src/zoomable-image-gallery/index.ts +0 -9
- package/src/zoomable-image-gallery/types.ts +0 -59
- /package/lib/commonjs/{zoomable-image-gallery → zoomable-media-gallery}/constants.js +0 -0
- /package/lib/module/{zoomable-image-gallery → zoomable-media-gallery}/constants.js +0 -0
- /package/lib/typescript/commonjs/{zoomable-image-gallery → zoomable-media-gallery}/constants.d.ts +0 -0
- /package/lib/typescript/module/{zoomable-image-gallery → zoomable-media-gallery}/constants.d.ts +0 -0
- /package/src/{zoomable-image-gallery → zoomable-media-gallery}/constants.ts +0 -0
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import type { SharedValue } from 'react-native-reanimated';
|
|
2
|
+
import type { VideoPlayerLike, VideoSurfaceType } from './expo-video-module';
|
|
3
|
+
/**
|
|
4
|
+
* On-screen rectangle of a media anchor, in WINDOW coordinates (what
|
|
5
|
+
* `measureInWindow` reports). Bloom-owned so consumers don't depend on an
|
|
6
|
+
* app-local shape.
|
|
7
|
+
*/
|
|
8
|
+
export interface MeasuredRect {
|
|
9
|
+
x: number;
|
|
10
|
+
y: number;
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Anything that can report its own window rect. This is exactly react-native's
|
|
16
|
+
* `View` instance shape (and react-native-web's), narrowed to the one method
|
|
17
|
+
* the flight layer calls — so a consumer passes its host node straight through
|
|
18
|
+
* without Bloom naming `View` in its public API.
|
|
19
|
+
*/
|
|
20
|
+
export interface MediaFlightAnchorNode {
|
|
21
|
+
measureInWindow(callback: (x: number, y: number, width: number, height: number) => void): void;
|
|
22
|
+
}
|
|
23
|
+
/** A still image painted into a media surface. */
|
|
24
|
+
export interface MediaSurfaceImage {
|
|
25
|
+
/**
|
|
26
|
+
* Present so the union discriminates. Optional on the image arm so an image
|
|
27
|
+
* literal stays `{ uri }` — the shape every existing gallery caller writes.
|
|
28
|
+
*/
|
|
29
|
+
kind?: 'image';
|
|
30
|
+
/** Source URI rendered as the image. */
|
|
31
|
+
uri: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* A video painted into a media surface.
|
|
35
|
+
*
|
|
36
|
+
* **Bloom neither creates nor destroys the player.** The consumer owns it (via
|
|
37
|
+
* expo-video's `useVideoPlayer`, a store, whatever it likes) and hands the same
|
|
38
|
+
* object to every surface that should show that video. That is the entire
|
|
39
|
+
* mechanism behind "the video does not restart": expo-video separates the
|
|
40
|
+
* `VideoPlayer` OBJECT from the `VideoView` that displays it, and one player may
|
|
41
|
+
* feed several views. Swapping which view is mounted therefore moves the picture
|
|
42
|
+
* without touching playback — whereas re-creating the player would seek back to
|
|
43
|
+
* zero and re-open the network stream.
|
|
44
|
+
*/
|
|
45
|
+
export interface MediaSurfaceVideo {
|
|
46
|
+
kind: 'video';
|
|
47
|
+
/** The expo-video `VideoPlayer` the CONSUMER created and owns. */
|
|
48
|
+
player: VideoPlayerLike;
|
|
49
|
+
/**
|
|
50
|
+
* Still frame shown behind the video surface. It is what the user sees before
|
|
51
|
+
* the first video frame renders, and the only thing rendered at all when the
|
|
52
|
+
* optional `expo-video` peer is absent.
|
|
53
|
+
*/
|
|
54
|
+
poster?: string;
|
|
55
|
+
}
|
|
56
|
+
/** What a media surface paints: a still image, or a consumer-owned video. */
|
|
57
|
+
export type MediaSurfaceContent = MediaSurfaceImage | MediaSurfaceVideo;
|
|
58
|
+
/**
|
|
59
|
+
* A media surface currently owned by the flight layer.
|
|
60
|
+
*
|
|
61
|
+
* One per id, ever — that is the contract. `flyTo` on an id that is already in
|
|
62
|
+
* flight RETARGETS this record rather than adding a second surface, which is
|
|
63
|
+
* what keeps a single `VideoView` alive across the whole transition.
|
|
64
|
+
*/
|
|
65
|
+
export interface MediaFlight {
|
|
66
|
+
id: string;
|
|
67
|
+
content: MediaSurfaceContent;
|
|
68
|
+
/** Rect the current leg starts from. */
|
|
69
|
+
from: MeasuredRect;
|
|
70
|
+
/** Rect the current leg ends at. */
|
|
71
|
+
to: MeasuredRect;
|
|
72
|
+
cornerRadius: number;
|
|
73
|
+
contentFit: 'contain' | 'cover';
|
|
74
|
+
/** See {@link MediaFlightOptions.surfaceType}. Fixed for the surface's life. */
|
|
75
|
+
surfaceType: VideoSurfaceType;
|
|
76
|
+
/**
|
|
77
|
+
* The leg's progress, 0 at `from` and 1 at `to`. Owned by the store (created
|
|
78
|
+
* with `makeMutable`, not a hook) because the animation is STARTED by an
|
|
79
|
+
* imperative call and only READ by the layer — an effect in the layer would
|
|
80
|
+
* have to re-derive from a prop and would fire a frame late.
|
|
81
|
+
*/
|
|
82
|
+
progress: SharedValue<number>;
|
|
83
|
+
/**
|
|
84
|
+
* True once `flyBack` has aimed this surface at its anchor: when the leg
|
|
85
|
+
* settles, the surface is released instead of parked.
|
|
86
|
+
*/
|
|
87
|
+
landing: boolean;
|
|
88
|
+
/** Bumped on every retarget, so React remounts nothing but the layer re-reads. */
|
|
89
|
+
generation: number;
|
|
90
|
+
}
|
|
91
|
+
/** Options for a single `flyTo` leg. */
|
|
92
|
+
export interface MediaFlightOptions {
|
|
93
|
+
/**
|
|
94
|
+
* Rect the surface starts from, used only when nothing is live for the id
|
|
95
|
+
* yet. This is the origin thumbnail's measured rect — `measureAnchor(id)` is
|
|
96
|
+
* what produces it. Omitted, the surface appears at its destination instead
|
|
97
|
+
* of flying in from a corner, which is the right degradation when the origin
|
|
98
|
+
* could not be measured (virtualised away, already unmounted).
|
|
99
|
+
*
|
|
100
|
+
* It is ignored on a retarget: a surface already in flight resumes from where
|
|
101
|
+
* it currently IS, never from where it once started.
|
|
102
|
+
*/
|
|
103
|
+
from?: MeasuredRect;
|
|
104
|
+
/**
|
|
105
|
+
* Corner radius of the flying box. Defaults to Bloom's `radius-12`, the same
|
|
106
|
+
* default the media gallery uses for its fitted media.
|
|
107
|
+
*/
|
|
108
|
+
cornerRadius?: number;
|
|
109
|
+
/**
|
|
110
|
+
* How the media fills the flying box. `'cover'` matches a cropped feed
|
|
111
|
+
* thumbnail; `'contain'` matches a fitted fullscreen view. Defaults to
|
|
112
|
+
* `'cover'`, because a flight almost always STARTS at a cropped thumbnail.
|
|
113
|
+
*/
|
|
114
|
+
contentFit?: 'contain' | 'cover';
|
|
115
|
+
/**
|
|
116
|
+
* Android's rendering surface for the FLYING video view.
|
|
117
|
+
*
|
|
118
|
+
* Defaults to `'textureView'` because a `SurfaceView` is composited by the
|
|
119
|
+
* system outside the view hierarchy: it ignores its parent's clip, corner
|
|
120
|
+
* radius and transform, which is every property a flying box depends on.
|
|
121
|
+
*
|
|
122
|
+
* **This means a flight crosses a surface-type boundary at hand-off whenever
|
|
123
|
+
* the destination uses expo-video's own `'surfaceView'` default.** Whether
|
|
124
|
+
* that boundary is visible is a device question, not a code question, and it
|
|
125
|
+
* is the reason this is a knob rather than a constant: with it you can fly as
|
|
126
|
+
* `'surfaceView'` and match a destination that has not changed, or leave it
|
|
127
|
+
* and change the destination instead. Measure before choosing — the flight
|
|
128
|
+
* may not flicker at all, in which case the right answer is to do nothing.
|
|
129
|
+
*/
|
|
130
|
+
surfaceType?: VideoSurfaceType;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* The imperative surface of the flight layer, returned by `useMediaFlight()`.
|
|
134
|
+
*
|
|
135
|
+
* Origin and destination only DECLARE where they want the surface; the layer is
|
|
136
|
+
* what paints it. Neither renders the media itself while a flight is live, so
|
|
137
|
+
* there is never a second copy to keep in sync.
|
|
138
|
+
*/
|
|
139
|
+
export interface MediaFlightController {
|
|
140
|
+
/**
|
|
141
|
+
* Register (or, with `null`, clear) the node that anchors `id` on screen.
|
|
142
|
+
* Wire it as a callback ref on the host view the media would otherwise
|
|
143
|
+
* occupy. The most recently registered node for an id is the current anchor,
|
|
144
|
+
* which is what makes a destination screen mounting over an origin screen
|
|
145
|
+
* take over as the fly-back target.
|
|
146
|
+
*/
|
|
147
|
+
registerAnchor: (id: string, node: MediaFlightAnchorNode | null) => void;
|
|
148
|
+
/**
|
|
149
|
+
* Measure the current anchor for `id` in window coordinates. Resolves `null`
|
|
150
|
+
* when no anchor is registered (unmounted / virtualised) or it has no area,
|
|
151
|
+
* which is the signal to skip the transition rather than fly to nowhere.
|
|
152
|
+
*/
|
|
153
|
+
measureAnchor: (id: string) => Promise<MeasuredRect | null>;
|
|
154
|
+
/**
|
|
155
|
+
* Take the surface for `id` live (if it is not already) and move it to
|
|
156
|
+
* `rect`. The first call flies in from {@link MediaFlightOptions.from} when
|
|
157
|
+
* the caller measured an origin, and appears in place when it did not. A call
|
|
158
|
+
* for an id already in flight RETARGETS the same surface — one surface per
|
|
159
|
+
* id, always.
|
|
160
|
+
*
|
|
161
|
+
* **Await it before tearing the origin down** (on web: before navigating).
|
|
162
|
+
* The promise resolves once the layer has committed its surface, which is what
|
|
163
|
+
* puts it in expo-video's mounted set while the origin is still there — the
|
|
164
|
+
* mechanism that carries `currentTime` across instead of restarting at zero.
|
|
165
|
+
* It resolves on a short timeout if no layer is mounted, so a missing root
|
|
166
|
+
* component degrades to "no transition" rather than to a dead feed.
|
|
167
|
+
*/
|
|
168
|
+
flyTo: (id: string, rect: MeasuredRect, content: MediaSurfaceContent, options?: MediaFlightOptions) => Promise<void>;
|
|
169
|
+
/**
|
|
170
|
+
* Fly the live surface for `id` back to its current anchor and release it
|
|
171
|
+
* once it lands. With no measurable anchor the surface is released at once —
|
|
172
|
+
* the caller is expected to render its own copy again at that point.
|
|
173
|
+
*/
|
|
174
|
+
flyBack: (id: string) => void;
|
|
175
|
+
/**
|
|
176
|
+
* Tell the layer a destination surface is LIVE, so the flying copy can go.
|
|
177
|
+
*
|
|
178
|
+
* Usually you do not call this: give the destination's `<MediaSurface>` a
|
|
179
|
+
* `flightId` and it reports its own first frame. It is here for a destination
|
|
180
|
+
* that renders something other than a Bloom surface.
|
|
181
|
+
*
|
|
182
|
+
* Called mid-flight it is remembered, not obeyed — the surface finishes
|
|
183
|
+
* travelling first, or it would vanish between the two rects.
|
|
184
|
+
*/
|
|
185
|
+
handOff: (id: string) => void;
|
|
186
|
+
/**
|
|
187
|
+
* Progress of the most recent leg, 0 → 1. Read it from a worklet to fade an
|
|
188
|
+
* origin placeholder out and a destination's chrome in, in lockstep with the
|
|
189
|
+
* flight. Shared by every flight: concurrent flights (which the one-surface-
|
|
190
|
+
* per-id contract permits across DIFFERENT ids) overwrite each other here,
|
|
191
|
+
* and each surface's own geometry is driven by its own value regardless.
|
|
192
|
+
*/
|
|
193
|
+
progress: SharedValue<number>;
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-media-flight.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/use-media-flight.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAsBrD,sEAAsE;AACtE,wBAAgB,cAAc,IAAI,qBAAqB,CAEtD"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ZoomableMediaGalleryHandle, ZoomableMediaGalleryProps } from './types';
|
|
3
|
+
export declare const ZoomableMediaGallery: React.ForwardRefExoticComponent<ZoomableMediaGalleryProps & React.RefAttributes<ZoomableMediaGalleryHandle>>;
|
|
4
|
+
export default ZoomableMediaGallery;
|
|
5
|
+
//# sourceMappingURL=ZoomableMediaGallery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZoomableMediaGallery.d.ts","sourceRoot":"","sources":["../../../../src/zoomable-media-gallery/ZoomableMediaGallery.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6E,MAAM,OAAO,CAAC;AAkElG,OAAO,KAAK,EAGV,0BAA0B,EAC1B,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AAkkCjB,eAAO,MAAM,oBAAoB,8GAA4B,CAAC;AAgL9D,eAAe,oBAAoB,CAAC"}
|
package/lib/typescript/commonjs/{zoomable-image-gallery → zoomable-media-gallery}/constants.d.ts.map
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/zoomable-
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/zoomable-media-gallery/constants.ts"],"names":[],"mappings":"AAEA,0EAA0E;AAC1E,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,oFAAoF;AACpF,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,kFAAkF;AAClF,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,uDAAuD;AACvD,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,0FAA0F;AAC1F,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,eAAO,MAAM,WAAW;;;;CAAsD,CAAC;AAC/E,eAAO,MAAM,YAAY;;;;CAAuD,CAAC;AACjF,eAAO,MAAM,gBAAgB;;;;CAAsD,CAAC;AAEpF,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,IAAsB,CAAC;AAEzD,yEAAyE;AACzE,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,oDAAoD;AACpD,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,mFAAmF;AACnF,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,2EAA2E;AAC3E,eAAO,MAAM,yBAAyB,KAAK,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { ZoomableMediaGallery, ZoomableMediaGallery as default } from './ZoomableMediaGallery';
|
|
2
|
+
export type { ZoomableMediaGalleryHandle, ZoomableMediaGalleryProps, GalleryImage, GalleryVideo, GalleryMedia, MeasureThumb, MeasuredRect, } from './types';
|
|
3
|
+
export * from './constants';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
package/lib/typescript/commonjs/{zoomable-image-gallery → zoomable-media-gallery}/index.d.ts.map
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/zoomable-
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/zoomable-media-gallery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,IAAI,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC/F,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,EACzB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { MeasuredRect, MediaSurfaceImage, MediaSurfaceVideo } from '../media-flight/types';
|
|
2
|
+
/**
|
|
3
|
+
* A still image page.
|
|
4
|
+
*
|
|
5
|
+
* `kind` is optional on this arm so an image literal stays `{ uri }` — the shape
|
|
6
|
+
* every caller already writes, and the reason adding video to this gallery is
|
|
7
|
+
* not a breaking change for image consumers.
|
|
8
|
+
*/
|
|
9
|
+
export interface GalleryImage extends MediaSurfaceImage {
|
|
10
|
+
/**
|
|
11
|
+
* Author-authored accessibility description (Bluesky-style "ALT"). When present,
|
|
12
|
+
* shown as a caption at the bottom of the fullscreen viewer for the active item.
|
|
13
|
+
*/
|
|
14
|
+
alt?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Optional intrinsic aspect ratio (width / height) supplied by the consumer.
|
|
17
|
+
* When known ahead of time it avoids a first-frame `Image.getSize` round-trip.
|
|
18
|
+
*/
|
|
19
|
+
aspectRatio?: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A video page, fed by a `VideoPlayer` the CONSUMER created and owns.
|
|
23
|
+
*
|
|
24
|
+
* Bloom neither creates nor destroys players — see `MediaSurfaceVideo`. That is
|
|
25
|
+
* what lets the same video keep playing as it moves from a feed thumbnail into
|
|
26
|
+
* this gallery and back out again: one player, a different view.
|
|
27
|
+
*/
|
|
28
|
+
export interface GalleryVideo extends MediaSurfaceVideo {
|
|
29
|
+
/**
|
|
30
|
+
* Stable identity for this video. Used as the React key (a video has no `uri`
|
|
31
|
+
* to key on) and as the media-flight id when the consumer flies it in.
|
|
32
|
+
*/
|
|
33
|
+
id: string;
|
|
34
|
+
/** See {@link GalleryImage.alt}. */
|
|
35
|
+
alt?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Intrinsic aspect ratio. Strongly recommended for video: unlike an image
|
|
38
|
+
* there is nothing to probe for it, so without one the page opens at the
|
|
39
|
+
* gallery's default ratio and resizes when the first frame arrives.
|
|
40
|
+
*/
|
|
41
|
+
aspectRatio?: number;
|
|
42
|
+
/**
|
|
43
|
+
* URL handed to the share sheet. The poster is not what a user means by
|
|
44
|
+
* "share this video", so the two are separate; with neither, the share button
|
|
45
|
+
* is inert for that page.
|
|
46
|
+
*/
|
|
47
|
+
shareUrl?: string;
|
|
48
|
+
}
|
|
49
|
+
/** One page of the gallery: a still image, or a consumer-owned video. */
|
|
50
|
+
export type GalleryMedia = GalleryImage | GalleryVideo;
|
|
51
|
+
export type { MeasuredRect };
|
|
52
|
+
/**
|
|
53
|
+
* Resolve the on-screen rect of the thumbnail at `index` within the SAME
|
|
54
|
+
* media subset the gallery opens/pages in, so the close animation can fly
|
|
55
|
+
* back to the item currently being viewed. Resolves `null` when the thumbnail
|
|
56
|
+
* ref is missing (unmounted/virtualized), in which case the gallery falls back
|
|
57
|
+
* to a plain center fade-out.
|
|
58
|
+
*/
|
|
59
|
+
export type MeasureThumb = (index: number) => Promise<MeasuredRect | null>;
|
|
60
|
+
export interface ZoomableMediaGalleryHandle {
|
|
61
|
+
/**
|
|
62
|
+
* Open the gallery at `index` within `items`, animating the zoom from the
|
|
63
|
+
* tapped thumbnail's measured screen rect (when provided).
|
|
64
|
+
*/
|
|
65
|
+
open: (items: GalleryMedia[], index: number, rect?: MeasuredRect) => void;
|
|
66
|
+
}
|
|
67
|
+
export interface ZoomableMediaGalleryProps {
|
|
68
|
+
/** Measures any thumbnail by its media subset index, used on dismiss. */
|
|
69
|
+
measureThumb?: MeasureThumb;
|
|
70
|
+
/**
|
|
71
|
+
* Corner radius applied to the zoomed media. `'circle'` rounds each item to
|
|
72
|
+
* a full circle at whatever size it is fitted to — what an avatar needs, and
|
|
73
|
+
* the reason avatars don't need their own viewer.
|
|
74
|
+
*/
|
|
75
|
+
cornerRadius?: number | 'circle';
|
|
76
|
+
/**
|
|
77
|
+
* Bottom page indicator for multi-item galleries. `'dots'` (default) renders the
|
|
78
|
+
* compact dot row; `'thumbnails'` renders a horizontal strip of tappable media
|
|
79
|
+
* tiles. The counter pill shows in both. Ignored for single-item galleries.
|
|
80
|
+
*/
|
|
81
|
+
indicatorVariant?: 'dots' | 'thumbnails';
|
|
82
|
+
/**
|
|
83
|
+
* Whether video pages show expo-video's own transport controls. Off by
|
|
84
|
+
* default, so a video opens as a picture that happens to move — the same
|
|
85
|
+
* gesture vocabulary (tap to dismiss, drag to dismiss) as an image. Turn it
|
|
86
|
+
* on for a viewer whose job is watching rather than glancing.
|
|
87
|
+
*/
|
|
88
|
+
videoControls?: boolean;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/zoomable-media-gallery/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACrD;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACrD;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,yEAAyE;AACzE,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;AAEvD,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AAE3E,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,IAAI,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;CAC3E;AAED,MAAM,WAAW,yBAAyB;IACxC,yEAAyE;IACzE,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IACzC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mount ONCE, at the app root, above the router. Renders nothing at all until a
|
|
3
|
+
* flight is live, so it costs a subscription and no view while idle — and takes
|
|
4
|
+
* an overlay rank only while it is actually painting, which is what keeps the
|
|
5
|
+
* overlay stack's counter able to reset (see `overlay/stack.ts`).
|
|
6
|
+
*/
|
|
7
|
+
export declare function MediaFlightLayer(): import("react/jsx-runtime").JSX.Element | null;
|
|
8
|
+
export declare namespace MediaFlightLayer {
|
|
9
|
+
var displayName: string;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=MediaFlightLayer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaFlightLayer.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/MediaFlightLayer.tsx"],"names":[],"mappings":"AA+CA;;;;;GAKG;AACH,wBAAgB,gBAAgB,mDAkB/B;yBAlBe,gBAAgB"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ONE renderer for "an image or a video, painted into a box".
|
|
3
|
+
*
|
|
4
|
+
* Both the flight layer and the media gallery need exactly this, and they need
|
|
5
|
+
* it to be the same code: a flight that lands inside the gallery hands its
|
|
6
|
+
* surface over frame-for-frame, so two renderers that disagree by a pixel of
|
|
7
|
+
* `contentFit` or a corner radius show the swap.
|
|
8
|
+
*
|
|
9
|
+
* BOTH ARMS RENDER THE SAME BOX — an `Animated.View` with the media filling it —
|
|
10
|
+
* rather than the image arm rendering an animated `Image` directly. That is the
|
|
11
|
+
* property that makes an image and a video interchangeable at a call site: the
|
|
12
|
+
* caller's style means the same thing either way, the corner radius clips a
|
|
13
|
+
* platform video surface the way it rounds an image, and the transform lands on
|
|
14
|
+
* a node reanimated is allowed to drive (expo-video's own host is not one).
|
|
15
|
+
*/
|
|
16
|
+
import { type ComponentProps } from 'react';
|
|
17
|
+
import { type ImageStyle, type StyleProp, type ViewStyle } from 'react-native';
|
|
18
|
+
import Animated from 'react-native-reanimated';
|
|
19
|
+
import type { MediaSurfaceContent } from './types';
|
|
20
|
+
import { type VideoSurfaceType } from './expo-video-module';
|
|
21
|
+
/**
|
|
22
|
+
* Exactly what `Animated.View` accepts, taken from the component rather than
|
|
23
|
+
* restated: a caller hands this component the output of `useAnimatedStyle` and a
|
|
24
|
+
* hand-written `StyleProp<ViewStyle>` would reject it.
|
|
25
|
+
*/
|
|
26
|
+
export type MediaSurfaceStyle = ComponentProps<typeof Animated.View>['style'];
|
|
27
|
+
/**
|
|
28
|
+
* The style a STILL accepts. The intersection is what lets one value reach both
|
|
29
|
+
* an `Image` and a `View`: `ViewStyle` and `ImageStyle` disagree on exactly one
|
|
30
|
+
* key (`overflow`, which `ViewStyle` also allows to be `'scroll'`), and the
|
|
31
|
+
* intersection narrows it to the two values both accept.
|
|
32
|
+
*/
|
|
33
|
+
export type MediaPosterStyle = StyleProp<ViewStyle & ImageStyle>;
|
|
34
|
+
export interface MediaSurfaceProps {
|
|
35
|
+
/** What to paint: a still image, or a consumer-owned expo-video player. */
|
|
36
|
+
content: MediaSurfaceContent;
|
|
37
|
+
/** Size, radius and transform of the box. May carry an animated style. */
|
|
38
|
+
style?: MediaSurfaceStyle;
|
|
39
|
+
/** How the media fills the box. Defaults to `'contain'`. */
|
|
40
|
+
contentFit?: 'contain' | 'cover';
|
|
41
|
+
/**
|
|
42
|
+
* Android's rendering surface for the video arm. Defaults to `'textureView'`
|
|
43
|
+
* and is CAPTURED ON FIRST RENDER: expo-video documents that this prop must
|
|
44
|
+
* not change at runtime, and a `surfaceView` is composited outside the app's
|
|
45
|
+
* view hierarchy — it ignores its parent's clip, radius and transform, which
|
|
46
|
+
* is every property a flying box relies on.
|
|
47
|
+
*/
|
|
48
|
+
surfaceType?: VideoSurfaceType;
|
|
49
|
+
/** Whether the video arm shows expo-video's own controls. Defaults to `false`. */
|
|
50
|
+
nativeControls?: boolean;
|
|
51
|
+
accessibilityLabel?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Passed through as a PROP, never as a style key: react-native-web resolves
|
|
54
|
+
* the RN-only `box-none`/`box-only` values from the prop path only.
|
|
55
|
+
*/
|
|
56
|
+
pointerEvents?: 'auto' | 'none' | 'box-none' | 'box-only';
|
|
57
|
+
/**
|
|
58
|
+
* Set this on the DESTINATION surface of a media flight, to the same id the
|
|
59
|
+
* flight was started with. When this surface presents its first frame it tells
|
|
60
|
+
* the layer to let the flying copy go.
|
|
61
|
+
*
|
|
62
|
+
* It exists so the ordering knowledge stays in Bloom. The alternative is a
|
|
63
|
+
* consumer releasing the flight on a timer — and the timer is always wrong,
|
|
64
|
+
* because a fullscreen video route measured ~1 s from tap to first frame
|
|
65
|
+
* against production while a flight animation lasts ~300 ms. Whoever guessed
|
|
66
|
+
* would be choosing between a hole and a surface that overstays.
|
|
67
|
+
*
|
|
68
|
+
* Leave it unset on an origin surface, and on the flight layer's own: a
|
|
69
|
+
* surface that handed off to itself would release on its own first frame.
|
|
70
|
+
*/
|
|
71
|
+
flightId?: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* A still image, or a video fed by a player the CONSUMER owns.
|
|
75
|
+
*
|
|
76
|
+
* The video arm mounts a `VideoView` around the caller's `player`. Bloom never
|
|
77
|
+
* creates, replaces or releases that player — handing one player to a new view
|
|
78
|
+
* is what moves a playing video between surfaces without restarting it, and it
|
|
79
|
+
* is the reason this component takes a player object rather than a source URL.
|
|
80
|
+
*/
|
|
81
|
+
export declare const MediaSurface: import("react").NamedExoticComponent<MediaSurfaceProps>;
|
|
82
|
+
/**
|
|
83
|
+
* The STILL of a media item — a video's poster, or the image itself — and never
|
|
84
|
+
* a video view.
|
|
85
|
+
*
|
|
86
|
+
* This is what every surface that is not the live one renders: an off-screen
|
|
87
|
+
* gallery page, a thumbnail-strip tile, an origin placeholder while its media is
|
|
88
|
+
* in flight. Mounting a `MediaSurface` there instead would put a second
|
|
89
|
+
* `VideoView` on the same player, which is precisely what the "one live surface
|
|
90
|
+
* per id" contract forbids — and on a thumbnail strip it would mean one decoder
|
|
91
|
+
* per tile.
|
|
92
|
+
*/
|
|
93
|
+
export declare function MediaPoster({ content, style, contentFit, accessibilityLabel, }: {
|
|
94
|
+
content: MediaSurfaceContent;
|
|
95
|
+
style?: MediaPosterStyle;
|
|
96
|
+
contentFit?: 'contain' | 'cover';
|
|
97
|
+
accessibilityLabel?: string;
|
|
98
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
99
|
+
/**
|
|
100
|
+
* A box with no media at all — what a gallery page renders for a video item
|
|
101
|
+
* whose poster is unknown, so the layout never collapses.
|
|
102
|
+
*/
|
|
103
|
+
export declare function EmptyMediaSurface({ style }: {
|
|
104
|
+
style?: MediaPosterStyle;
|
|
105
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
106
|
+
//# sourceMappingURL=MediaSurface.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How long `flyTo` will wait for `<MediaFlightLayer>` to commit the surface
|
|
3
|
+
* before letting the caller carry on regardless (ms).
|
|
4
|
+
*
|
|
5
|
+
* The wait is a COMMIT, not a network round-trip: the surface only has to be
|
|
6
|
+
* mounted, because that is what puts it in expo-video's `_mountedVideos` set
|
|
7
|
+
* while the origin is still there — which is the whole mechanism that carries
|
|
8
|
+
* `currentTime` across. One React commit is a frame or two. Painting is a
|
|
9
|
+
* separate, slower thing that the poster covers (see `MediaSurface`), so it is
|
|
10
|
+
* deliberately NOT waited on here: blocking a tap on a decode would trade a
|
|
11
|
+
* problem nobody can see for one everybody can feel.
|
|
12
|
+
*
|
|
13
|
+
* The timeout exists for the case where no layer is mounted at all. Without it
|
|
14
|
+
* the promise never settles and the consumer never navigates — an app that
|
|
15
|
+
* forgot one line at its root would appear to have a dead feed.
|
|
16
|
+
*/
|
|
17
|
+
export declare const SURFACE_MOUNT_TIMEOUT_MS = 250;
|
|
18
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAC"}
|