TelegramPWA/src/hooks/useVideoCleanup.ts
Alexander Zinchuk 3afcde3217 Initial commit
2021-04-09 14:11:51 +03:00

22 lines
598 B
TypeScript

import { RefObject } from 'react';
import { useEffect } from '../lib/teact/teact';
import { fastRaf } from '../util/schedulers';
// Fix for memory leak when unmounting video element
export default function useVideoCleanup(videoRef: RefObject<HTMLVideoElement>, dependencies: any[]) {
useEffect(() => {
const videoEl = videoRef.current;
return () => {
if (videoEl) {
fastRaf(() => {
videoEl.pause();
videoEl.src = '';
videoEl.load();
});
}
};
// eslint-disable-next-line react-hooks/exhaustive-deps
}, dependencies);
}