From af9d8695f407bfa8cde2affd8032170a7d81c56d Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Thu, 19 Sep 2024 20:43:40 +0200 Subject: [PATCH] [Perf] `useVideoCleanup`: Remove event listeners --- src/components/mediaViewer/VideoPlayer.tsx | 3 ++- src/components/ui/OptimizedVideo.tsx | 3 ++- src/hooks/useVideoCleanup.ts | 23 ++++++++++++++++------ src/lib/teact/dom-events.ts | 2 +- 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/components/mediaViewer/VideoPlayer.tsx b/src/components/mediaViewer/VideoPlayer.tsx index 1e96817ae..0cd630dea 100644 --- a/src/components/mediaViewer/VideoPlayer.tsx +++ b/src/components/mediaViewer/VideoPlayer.tsx @@ -181,7 +181,8 @@ const VideoPlayer: FC = ({ } }); - useVideoCleanup(videoRef, []); + useVideoCleanup(videoRef, bufferingHandlers); + const [, setCurrentTime] = useCurrentTimeSignal(); const [, setIsVideoWaiting] = useVideoWaitingSignal(); diff --git a/src/components/ui/OptimizedVideo.tsx b/src/components/ui/OptimizedVideo.tsx index cb912bf91..81ade24bf 100644 --- a/src/components/ui/OptimizedVideo.tsx +++ b/src/components/ui/OptimizedVideo.tsx @@ -36,7 +36,6 @@ function OptimizedVideo({ } const { handlePlaying: handlePlayingForAutoPause } = useVideoAutoPause(ref, canPlay, isPriority); - useVideoCleanup(ref, []); const isReadyRef = useRef(false); const handleReady = useLastCallback(() => { @@ -77,6 +76,8 @@ function OptimizedVideo({ return mergedHandlers; }, [otherBufferingHandlers, restProps]); + useVideoCleanup(ref, mergedOtherBufferingHandlers); + return ( // eslint-disable-next-line react/jsx-props-no-spreading