@streamlayer/react 1.20.7 → 1.21.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/app/pause-ad.d.ts +1 -1
- package/lib/cjs/pause-ad.js +1 -1
- package/lib/cjs/useStreamLayerApp2.js +11 -11
- package/lib/classic/app/pause-ad.d.ts +1 -1
- package/lib/classic/cjs/pause-ad.js +1 -1
- package/lib/classic/cjs/useStreamLayerApp2.js +11 -11
- package/lib/classic/es/pause-ad.js +204 -167
- package/lib/classic/es/useStreamLayerApp2.js +827 -738
- package/lib/classic/index.d.ts +1 -1
- package/lib/classic/masters.d.ts +1 -1
- package/lib/dist/cjs/masters.js +20 -20
- package/lib/dist/es/masters.js +3339 -3250
- package/lib/dist/style.css +1 -1
- package/lib/es/pause-ad.js +203 -166
- package/lib/es/useStreamLayerApp2.js +827 -738
- package/lib/index.d.ts +1 -1
- package/lib/masters.d.ts +1 -1
- package/lib/style.css +1 -1
- package/package.json +15 -15
|
@@ -10,7 +10,7 @@ import '@streamlayer/sdk-web-interfaces';
|
|
|
10
10
|
import '@streamlayer/sdk-web-notifications';
|
|
11
11
|
import '@streamlayer/feature-gamification';
|
|
12
12
|
export type StreamLayerPauseAdProps = {
|
|
13
|
-
children
|
|
13
|
+
children?: React.ReactNode;
|
|
14
14
|
showPauseAd?: boolean;
|
|
15
15
|
pauseAdVastUrl?: Array<{
|
|
16
16
|
template?: 'default';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),e=require("./provider.js");require("nanostores");const i=require("react");require("@nanostores/react");require("lodash.throttle");require("react-dom");require("react-countup");const R=require("./vast-client.min-B0NUra1B.js"),_={},B=new R.ce,k=e.i(_),j=e.createLogger("ui:gam-static"),C=s=>new Promise((t,n)=>{const l=new Image;l.onload=()=>t(s),l.onerror=()=>n(),l.src=s}),L=()=>{const s=i.useRef(0);return[i.useCallback(async t=>{var n,l,r,p,c,u,y,d,h,x,A;if((n=k.get()[t])!=null&&n.imageSrc)return{success:!0};const f=Date.now();s.current=f,k.setKey(t,{id:"",url:t});try{e.eventBus.emit("exposedPauseAd",{action:"load",payload:{}});const m=await B.get(t);if(j.debug(m,"parsedVAST"),s.current===f&&k.get()[t].url){const o=m.ads.find(v=>v.creatives.length>0);if(o){j.debug(o,"validAd");const v=o.creatives.find(g=>g.type==="nonlinear");if(v){j.debug(v,"nonlinear");const g=(r=(l=v.variations)==null?void 0:l[0])==null?void 0:r.staticResource,E=(c=(p=v.variations)==null?void 0:p[0])==null?void 0:c.nonlinearClickThroughURLTemplate;if(g)return await C(g),k.setKey(t,{id:o.id||"",url:t,imageSrc:g,adUrl:E}),e.eventBus.emit("exposedPauseAd",{action:"loaded",payload:{id:o.id||""}}),{success:!0}}const P=o.creatives.find(g=>g.type==="companion");j.debug(P,"companion");const b=(h=(d=(y=(u=P==null?void 0:P.variations)==null?void 0:u[0])==null?void 0:y.staticResources)==null?void 0:d[0])==null?void 0:h.url,S=(A=(x=P==null?void 0:P.variations)==null?void 0:x[0])==null?void 0:A.companionClickThroughURLTemplate;if(b)return await C(b),k.setKey(t,{id:o.id||"",url:t,imageSrc:b,adUrl:S}),e.eventBus.emit("exposedPauseAd",{action:"loaded",payload:{id:o.id||""}}),{success:!0}}}}catch(m){console.error("Error parsing VAST",m)}return{success:!1}},[]),k]},D=e.styled_default("div")({name:"PauseAdOverlay",class:"pw9gih8",propsAsIs:!1}),I=e.styled_default("div")({name:"PauseAdContent",class:"p8lpomy",propsAsIs:!1}),q=e.styled_default("div")({name:"PauseAdTopLeft",class:"pv7u167",propsAsIs:!1}),U=e.styled_default("h2")({name:"PauseAdTitle",class:"p1kh2yb0",propsAsIs:!1}),M=e.styled_default("p")({name:"PauseAdCaption",class:"pl8f94x",propsAsIs:!1}),V=e.styled_default("div")({name:"PauseAdBottomLeft",class:"p1m6zmrt",propsAsIs:!1}),K=e.styled_default("button")({name:"PauseAdPlayButton",class:"pm3vwfa",propsAsIs:!1}),N=e.styled_default("div")({name:"PauseAdSidebarGradient",class:"p1tibuhw",propsAsIs:!1}),F=e.styled_default("div")({name:"PauseAdSidebar",class:"ptqqrqd",propsAsIs:!1}),$=e.styled_default("span")({name:"PauseAdTitleDescription",class:"p14estxv",propsAsIs:!1}),w=e.styled_default("img")({name:"ExternalAdContainer",class:"e1dpvfl1",propsAsIs:!1}),O=({vastUrl:s,isDesktop:t})=>{var n;const[,l]=L(),r=e.useStore(l,{keys:[s]});return i.useEffect(()=>{r&&r[s]&&r[s].imageSrc&&r[s].id&&e.eventBus.emit("exposedPauseAd",{action:"rendered",payload:{id:r[s].id}})},[r,s]),(n=r==null?void 0:r[s])!=null&&n.imageSrc?!r[s].adUrl||!t?a.jsx(w,{src:r[s].imageSrc}):a.jsx("a",{onClick:()=>{e.eventBus.emit("exposedPauseAd",{action:"navigated",payload:{id:r[s].id}})},href:r[s].adUrl,target:"_blank",rel:"noopener noreferrer",children:a.jsx(w,{src:r[s].imageSrc})}):null},z=({isClosing:s,title:t,caption:n,onPlay:l,onClose:r,vastUrl:p,options:c,isDesktop:u})=>{const y=(c==null?void 0:c.showPauseButton)??!0,{ref:d,focusSelf:h}=e.distExports.useFocusable({focusKey:"sl-pause-ad-play",onEnterRelease:l,isFocusBoundary:!0,forceFocus:!0});return i.useEffect(()=>{d.current&&h()},[d,h]),i.useEffect(()=>{if(!r)return()=>{};const x=A=>{const f=A.keyCode;if(f===461||f===10009||f===27||f===8){A.preventDefault(),A.stopPropagation(),A.stopImmediatePropagation(),r();return}};return window.addEventListener("keydown",x,{capture:!0}),()=>window.removeEventListener("keydown",x,{capture:!0})},[r]),a.jsx(D,{className:e.cx_default("SL_PauseAdOverlay",s&&"pause-ad-closing"),children:a.jsxs(I,{children:[a.jsxs(q,{children:[a.jsx(U,{children:t}),a.jsx(M,{children:n})]}),y&&a.jsx(V,{children:a.jsx(K,{ref:d,onClick:l,onMouseEnter:()=>d.current.focus(),"aria-label":"Resume playback"})}),a.jsx(N,{className:"SL_PauseAdSidebar",children:a.jsxs(F,{children:[p&&a.jsx(O,{isDesktop:u,vastUrl:p}),a.jsx($,{children:"ADVERTISEMENT"})]})})]})})},G=({showPauseAd:s,vastUrls:t,title:n,caption:l,sdk:r,onClose:p,onRender:c,options:u,isDesktop:y})=>{const d=(u==null?void 0:u.pauseAdDelay)??5e3,[h,x]=i.useState(!1),[A,f]=i.useState(!1),m=i.useRef(),o=t==null?void 0:t[0].url,v=i.useRef(o);v.current=o;const[P,b]=L(),S=i.useCallback(()=>{p&&(e.eventBus.emit("exposedPauseAd",{action:"closed",payload:{}}),p())},[p]),g=i.useCallback(()=>{r.controlVideoPlayer({play:!0})},[r]);return i.useEffect(()=>{if(s&&o){e.eventBus.emit("exposedPauseAd",{action:"enabled",payload:{}}),P(o).then(T=>{v.current===o&&(T==null?void 0:T.success)!==!0&&(clearTimeout(m.current),S==null||S())}).catch(()=>{v.current===o&&(clearTimeout(m.current),S==null||S())});const E=()=>{const T=b.get()[v.current];T!=null&&T.imageSrc?(clearTimeout(m.current),f(!1),x(!0)):m.current=setTimeout(()=>{E()},200)};m.current=setTimeout(()=>{E()},d)}else e.eventBus.emit("exposedPauseAd",{action:"disabled",payload:{}}),f(!0),m.current=setTimeout(()=>{x(!1)},400);return()=>{m.current&&clearTimeout(m.current)}},[b,P,S,d,s,o]),i.useEffect(()=>{c==null||c({rendered:h})},[h,c]),i.useEffect(()=>()=>{c==null||c({rendered:!1})},[c]),h?a.jsx(z,{onClose:S,isClosing:A,title:n,caption:l,onPlay:g,vastUrl:o,options:u,isDesktop:y}):null},J=({showPauseAd:s,pauseAdVastUrl:t,videoPlayerController:n,onRenderPauseAd:l,onClosePauseAd:r,children:p,options:c})=>{const u=e.useStreamLayer(),y=e.useStreamLayerTheme(),d=i.useRef();return i.useEffect(()=>u?(n&&(d.current=n,u.addVideoPlayerController(d.current)),()=>{d.current&&u.removeVideoPlayerController(d.current)}):()=>{},[u,n]),u?a.jsx("div",{className:"StreamLayerSDK",children:a.jsxs(e.h,{style:p?{position:"relative"}:{},customTheme:y.theme,themeMode:y.themeMode,children:[p,t&&a.jsx(G,{sdk:u,showPauseAd:s,vastUrls:t,onClose:r,onRender:l,options:c,isDesktop:!0})]})}):p};class Q extends i.Component{constructor(t){super(t),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(t,n){console.error(t,n.componentStack)}render(){return this.state.hasError?this.props.children:a.jsx(J,{...this.props})}}exports.StreamLayerPauseAd=Q;
|