@nethesis/phone-island
Version:
NethVoice CTI Phone Island
3 lines (2 loc) • 2 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("./Bar.js");require("../../node_modules/react-redux/es/index.js");var t=require("../../node_modules/react-redux/es/hooks/useSelector.js"),n=require("../../node_modules/react-redux/es/hooks/useDispatch.js");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=u(e);exports.BarsGroup=function(u){var c=u.index,i=u.startAnimation,s=u.audioStream,o=e.useRef(null),l=e.useRef(0),f=e.useRef(0),d=t.useSelector((function(e){return e.recorder.visibleContainerRef})),m=n.useDispatch(),p=e.useRef(null),v=e.useState(),y=v[0],q=v[1],A=e.useCallback((function(){if(o.current){var e=(f.current?f.current:(t=o.current,(n=t.style.transform.match(/translateX\(([-0-9.]+)%\)/))&&n[1]?parseFloat(n[1]):0))-.4,r=e<=-100?100:e;o.current.style.transform="translateX(".concat(r,"%)"),f.current=r}var t,n;l.current=requestAnimationFrame(A)}),[f]);function x(){var e,r=p.current&&new Uint8Array(p.current.frequencyBinCount);r&&(null===(e=p.current)||void 0===e||e.getByteFrequencyData(r));var t=r&&Object.values(r)||[];m.recorder.setFrequency(t[0]/255),requestAnimationFrame(x)}return e.useEffect((function(){if(s){var e=new AudioContext;p.current=e.createAnalyser(),p.current.fftSize=32,(s&&e.createMediaStreamSource(s)).connect(p.current),requestAnimationFrame(x)}}),[s]),e.useEffect((function(){return i&&(l.current=requestAnimationFrame(A)),function(){l.current&&cancelAnimationFrame(l.current)}}),[i]),e.useEffect((function(){(null==o?void 0:o.current)&&q(!0)}),[]),a.default.createElement("div",{id:"".concat(c),style:{transform:"translateX(".concat(100*c,"%)")},className:"pi-absolute pi-flex pi-w-fit pi-h-6 pi-gap-1 pi-items-center pi-px-0.5",ref:o},y&&a.default.createElement(a.default.Fragment,null,Array.from(Array(55).keys()).map((function(e,t){return a.default.createElement(r.Bar,{key:t,visibleContainer:(null==d?void 0:d.current)||null})}))))};
//# sourceMappingURL=BarsGroup.js.map