video-ad-sdk
Version:
VAST/VPAID SDK that allows video ads to be played on top of any player
37 lines (36 loc) • 1.24 kB
JavaScript
import { linearEvents } from '../../../../tracker';
const fullscreenElement = () => document.fullscreenElement ||
document.webkitFullscreenElement ||
document.mozFullScreenElement ||
document.msFullscreenElement ||
null;
const { fullscreen, exitFullscreen, playerCollapse, playerExpand } = linearEvents;
export const onFullscreenChange = ({ videoElement }, callback) => {
const fullscreenEventNames = [
'webkitfullscreenchange',
'mozfullscreenchange',
'fullscreenchange',
'MSFullscreenChange'
];
let fullscreenOn = false;
const fullscreenchangeHandler = () => {
if (fullscreenElement() === videoElement) {
fullscreenOn = true;
callback(playerExpand);
callback(fullscreen);
}
else if (fullscreenOn) {
fullscreenOn = false;
callback(playerCollapse);
callback(exitFullscreen);
}
};
for (const event of fullscreenEventNames) {
document.addEventListener(event, fullscreenchangeHandler);
}
return () => {
for (const event of fullscreenEventNames) {
document.removeEventListener(event, fullscreenchangeHandler);
}
};
};