diff options
author | Samuel Newman <mozzius@protonmail.com> | 2024-08-07 18:47:51 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-07 18:47:51 +0100 |
commit | fff2c079c2554861764974aaeeb56f79a25ba82a (patch) | |
tree | 5c5771bcac37f5ae076e56cab78903d18b108366 /src/view/com/util/post-embeds/VideoEmbed.tsx | |
parent | b701e8c68c1122bf138575804af41260ec1c436d (diff) | |
download | voidsky-fff2c079c2554861764974aaeeb56f79a25ba82a.tar.zst |
* attempt some sort of "usurping" system * polling-based active video approach * split into inner component again * click to steal active video * disable findAndActivateVideo on native * new intersectionobserver approach - wip * fix types * disable perf optimisation to allow overflow * make active player indicator subtler, clean up video utils * partially fix double-playing * start working on controls * fullscreen API * get buttons working somewhat * rm source from where it shouldn't be * use video elem as source of truth * fix keyboard nav + mute state * new icons, add fullscreen + time + fix play * unmount when far offscreen + round 2dp * listen globally to clicks rather than blur event * move controls to new file * reduce quality when not active * add hover state to buttons * stop propagation of videoplayer click * move around autoplay effects * increase background contrast * add subtitles button * add stopPropagation to root of video player * clean up VideoWebControls * fix chrome * change quality based on focused state * use autoLevelCapping instead of nextLevel * get subtitle track from stream * always use hlsjs * rework hls into a ref * render player earlier, allowing preload * add error boundary * clean up component structure and organisation * rework fullscreen API * disable fullscreen on iPhone * don't play when ready on pause * debounce buffering * simplify giant list of event listeners * update pref * reduce prop drilling * minimise rerenders in `ActiveViewContext` * restore prop drilling --------- Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com> Co-authored-by: Hailey <me@haileyok.com>
Diffstat (limited to 'src/view/com/util/post-embeds/VideoEmbed.tsx')
-rw-r--r-- | src/view/com/util/post-embeds/VideoEmbed.tsx | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/view/com/util/post-embeds/VideoEmbed.tsx b/src/view/com/util/post-embeds/VideoEmbed.tsx index 5e5293a55..429312d9e 100644 --- a/src/view/com/util/post-embeds/VideoEmbed.tsx +++ b/src/view/com/util/post-embeds/VideoEmbed.tsx @@ -11,10 +11,10 @@ import {VideoEmbedInner} from './VideoEmbedInner' export function VideoEmbed({source}: {source: string}) { const t = useTheme() - const {active, setActive} = useActiveVideoView() + const {active, setActive} = useActiveVideoView({source}) const {_} = useLingui() - const onPress = useCallback(() => setActive(source), [setActive, source]) + const onPress = useCallback(() => setActive(), [setActive]) return ( <View @@ -27,7 +27,13 @@ export function VideoEmbed({source}: {source: string}) { a.my_xs, ]}> {active ? ( - <VideoEmbedInner source={source} /> + <VideoEmbedInner + source={source} + // web only + active={active} + setActive={setActive} + onScreen={true} + /> ) : ( <Button style={[a.flex_1, t.atoms.bg_contrast_25]} |