UNPKG

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
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); } }; };