video-ad-sdk
Version:
VAST/VPAID SDK that allows video ads to be played on top of any player
43 lines (42 loc) • 1.59 kB
JavaScript
import { linearEvents } from '../../../../tracker';
const { skip } = linearEvents;
const createDefaultSkipControl = () => {
const skipButton = document.createElement('button');
skipButton.classList.add('mol-vast-skip-control');
skipButton.type = 'button';
skipButton.innerHTML = 'skip';
skipButton.style.position = 'absolute';
skipButton.style.bottom = '15px';
skipButton.style.right = '15px';
return skipButton;
};
export const onSkip = (videoAdContainer, callback, { skipoffset, createSkipControl = createDefaultSkipControl } = {}) => {
if (!skipoffset) {
return () => null;
}
let skipControl;
const { videoElement, element } = videoAdContainer;
const skipHandler = () => {
const currentTimeMs = videoElement.currentTime * 1000;
if (!skipControl &&
typeof skipoffset === 'number' &&
currentTimeMs >= skipoffset) {
skipControl = createSkipControl();
skipControl.onclick = (event) => {
var _a;
(_a = event.stopPropagation) === null || _a === void 0 ? void 0 : _a.call(event);
callback(skip);
return false;
};
element.appendChild(skipControl);
videoElement.removeEventListener('timeupdate', skipHandler);
}
};
videoElement.addEventListener('timeupdate', skipHandler);
return () => {
videoElement.removeEventListener('timeupdate', skipHandler);
if (skipControl) {
element.removeChild(skipControl);
}
};
};