From 78e34c8d35a7e0876e3831468e549151de49e95d Mon Sep 17 00:00:00 2001 From: Andrew Aquino Date: Tue, 19 Nov 2024 14:42:25 -0800 Subject: preserve video's last known time when scrolling away (#6239) --- .../util/post-embeds/VideoEmbedInner/VideoEmbedInnerWeb.tsx | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/view/com/util/post-embeds/VideoEmbedInner/VideoEmbedInnerWeb.tsx') diff --git a/src/view/com/util/post-embeds/VideoEmbedInner/VideoEmbedInnerWeb.tsx b/src/view/com/util/post-embeds/VideoEmbedInner/VideoEmbedInnerWeb.tsx index ef989c4a4..fb1860708 100644 --- a/src/view/com/util/post-embeds/VideoEmbedInner/VideoEmbedInnerWeb.tsx +++ b/src/view/com/util/post-embeds/VideoEmbedInner/VideoEmbedInnerWeb.tsx @@ -13,11 +13,13 @@ export function VideoEmbedInnerWeb({ active, setActive, onScreen, + lastKnownTime, }: { embed: AppBskyEmbedVideo.View active: boolean setActive: () => void onScreen: boolean + lastKnownTime: React.MutableRefObject }) { const containerRef = useRef(null) const videoRef = useRef(null) @@ -40,6 +42,12 @@ export function VideoEmbedInnerWeb({ setHlsLoading, }) + useEffect(() => { + if (lastKnownTime.current && videoRef.current) { + videoRef.current.currentTime = lastKnownTime.current + } + }, [lastKnownTime]) + return (
@@ -52,6 +60,9 @@ export function VideoEmbedInnerWeb({ preload="none" muted={!focused} aria-labelledby={embed.alt ? figId : undefined} + onTimeUpdate={e => { + lastKnownTime.current = e.currentTarget.currentTime + }} /> {embed.alt && (