@mux/mux-video-react
Version:
A custom mux video element for React that Just Works™
3 lines (2 loc) • 2.18 kB
JavaScript
"use client";import{useEffect as V,useRef as j}from"react";var b=(...r)=>{let a=j(null);return V(()=>{r.forEach(n=>{n&&(typeof n=="function"?n(a.current):n.current=a.current)})},[r]),a};import R,{useEffect as s,useRef as M,useState as O}from"react";import e from"prop-types";import{allMediaTypes as w,initialize as I,teardown as H,StreamTypes as h,PlaybackTypes as N,toMuxVideoURL as P,generatePlayerInitTime as A,CmcdTypes as D}from"@mux/playback-core";var S=()=>{try{return"0.27.0"}catch{}return"UNKNOWN"},L=S(),T=()=>L;var U=T(),W="mux-video-react";var p=R.forwardRef((r,a)=>{var m,y;let{playbackId:n,src:c,children:g,autoPlay:l,preload:u,tokens:_,playbackToken:K,drmToken:z,...k}=r,x=Object.fromEntries(Object.entries(k).filter(([t])=>!Object.keys(p.propTypes).includes(t))),[E]=O((m=r.playerInitTime)!=null?m:A()),[d,C]=O((y=P(r))!=null?y:c),o=M(void 0),v=M(null),f=b(v,a);return s(()=>{var t;C((t=P(r))!=null?t:c)},[c,n]),s(()=>{let t={playerInitTime:E,...r,src:d,playerSoftwareName:W,playerSoftwareVersion:U,autoplay:l},i=f.current;return i&&(o.current=I(t,i,o.current)),()=>{H(i,o.current),i=void 0,o.current=void 0}},[d]),s(()=>{var t;(t=o.current)==null||t.setAutoplay(l)},[l]),s(()=>{var t;(t=o.current)==null||t.setPreload(u)},[u]),R.createElement("video",{ref:f,...x},g)});p.propTypes={_hlsConfig:e.any,beaconCollectionDomain:e.string,customDomain:e.string,debug:e.bool,disableCookies:e.bool,disableTracking:e.bool,drmToken:e.string,envKey:e.string,errorTranslator:e.func,liveEdgeStart:e.number,maxResolution:e.oneOf(["720p","1080p","1440p","2160p"]),metadata:e.any,minResolution:e.oneOf(["480p","540p","720p","1080p","1440p","2160p"]),playbackId:e.string,playbackToken:e.string,playerInitTime:e.number,preferCmcd:e.oneOf(Object.values(D)),preferPlayback:e.oneOf(Object.values(N)),programStartTime:e.number,programEndTime:e.number,assetStartTime:e.number,assetEndTime:e.number,renditionOrder:e.oneOf(["desc"]),startTime:e.number,streamType:e.oneOf(Object.values(h)),targetLiveWindow:e.number,tokens:e.object,type:e.oneOf(w)};var ee=p;export{ee as default,A as generatePlayerInitTime,W as playerSoftwareName,U as playerSoftwareVersion};
//# sourceMappingURL=index.mjs.map