@100mslive/react-sdk 0.1.3 → 0.1.5-alpha.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.
@@ -0,0 +1,40 @@
1
+ import { HMSPeer, HMSRoleName } from '@100mslive/hms-video-store';
2
+ export interface useParticipantsResult {
3
+ /**
4
+ * list of participants that match the given filters
5
+ */
6
+ participants: HMSPeer[];
7
+ /**
8
+ * Total number of participants in the room
9
+ */
10
+ peerCount: number;
11
+ /**
12
+ * is joined in the room
13
+ */
14
+ isConnected: boolean;
15
+ /**
16
+ * role names with atleast one participant present with that role
17
+ */
18
+ rolesWithParticipants: HMSRoleName[];
19
+ }
20
+ export declare type useParticipantsParams = {
21
+ /** To filter by particular role */
22
+ role: HMSRoleName;
23
+ /**
24
+ * To filter by particular by metadata. only supports { isHandRaised: true } for now
25
+ * @beta
26
+ */
27
+ metadata: Record<string, any>;
28
+ };
29
+ /**
30
+ * This can be used to get the total count of participants in the room, participants
31
+ * filtered by role or metadata with isHandRaised or the entire participants if no params are passed
32
+ * @param {useParticipantsParams} params
33
+ * @returns {useParticipantsResult}
34
+ */
35
+ export declare const useParticipants: (params?: useParticipantsParams | undefined) => {
36
+ participants: HMSPeer[];
37
+ isConnected: boolean | undefined;
38
+ peerCount: number;
39
+ rolesWithParticipants: (string | undefined)[];
40
+ };
@@ -0,0 +1,2 @@
1
+ import{selectIsConnectedToRoom as e,selectPeerCount as i,selectAvailableRoleNames as o,selectPeers as r,selectRemotePeers as t,selectPeerMetadata as s}from"@100mslive/hms-video-store";import{useHMSStore as a,useHMSVanillaStore as l}from"../primitives/HmsRoomProvider.js";const n=n=>{var d;const m=a(e),p=a(i),v=a(o);let c=a(m?r:t);const u=Array.from(new Set(c.map((e=>e.roleName)))),f=l();return(null===(d=null==n?void 0:n.metadata)||void 0===d?void 0:d.isHandRaised)&&(c=c.filter((e=>f.getState(s(e.id)).isHandRaised))),(null==n?void 0:n.role)&&v.includes(n.role)&&(c=c.filter((e=>e.roleName===n.role))),{participants:c,isConnected:m,peerCount:p,rolesWithParticipants:u}};export{n as useParticipants};
2
+ //# sourceMappingURL=useParticipants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useParticipants.js","sources":["../../src/hooks/useParticipants.ts"],"sourcesContent":[null],"names":["useParticipants","params","participantList","useHMSStore","isConnected","selectPeers","selectRemotePeers","rolesWithParticipants","Array","from","Set","map","peer","roleName","_a","metadata","isHandRaised","filter","getState","selectPeerMetadata","id","role","availableRoles","includes","participants","peerCount"],"mappings":"+QAyCA,MAAAA,EAAAC,qCAKG,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACH,MAAaC,EAAmBC,MAA8BC,KAAI,IAAAC,IAAAR,EAAAS,KAAAC,GAAAA,EAAAC,mBAS5D,OARqD,QAAzDC,eAAgC,EAAwBb,EAACc,gBAAA,IAAAD,OAAA,EAAAA,EAAAE,gBACzDd,EAAkBA,EAAYe,QAAAL,KACPM,SAAAC,EAAYP,EAAAQ,KAAyBJ,iBAG5Df,MAAAA,OAA0C,EAAAA,EAAAoB,OAAAC,EAAAC,SAAAtB,EAAAoB,QAC1CnB,EAAUA,EAAAe,QAAAL,GAAAA,EAAAC,WAAEZ,EAAUoB,QAElB,CAAAG,aAAmBtB,EAA4BE,YAAAA,EAAAqB,UAAAA,EAAQlB,sBAAAA"}
package/dist/index.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@100mslive/hms-video-store"),i=require("zustand"),o=require("react-intersection-observer"),n=require("react-resize-detector");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a,s,u=r(e),l=r(i);function c(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;const i=Object.keys(e);if(i.length!==Object.keys(t).length)return!1;for(let o=0;o<i.length;o++)if(!Object.prototype.hasOwnProperty.call(t,i[o])||!Object.is(e[i[o]],t[i[o]]))return!1;return!0}(s=a||(a={}))[s.VERBOSE=0]="VERBOSE",s[s.DEBUG=1]="DEBUG",s[s.INFO=2]="INFO",s[s.WARN=3]="WARN",s[s.ERROR=4]="ERROR",s[s.NONE=5]="NONE";class d{static v(e,...t){this.log(a.VERBOSE,e,...t)}static d(e,...t){this.log(a.DEBUG,e,...t)}static i(e,...t){this.log(a.INFO,e,...t)}static w(e,...t){this.log(a.WARN,e,...t)}static e(e,...t){this.log(a.ERROR,e,...t)}static log(e,t,...i){if(!(this.level.valueOf()>e.valueOf()))switch(e){case a.VERBOSE:console.log("HMSui-components: ",t,...i);break;case a.DEBUG:console.debug("HMSui-components: ",t,...i);break;case a.INFO:console.info("HMSui-components: ",t,...i);break;case a.WARN:console.warn("HMSui-components: ",t,...i);break;case a.ERROR:console.error("HMSui-components: ",t,...i)}}}d.level=a.VERBOSE;const h="It seems like you forgot to add your component within a top level HMSRoomProvider, please refer to 100ms react docs(https://docs.100ms.live/javascript/v2/features/integration#react-hooks) to check on the required steps for using this hook.";const g="undefined"!=typeof window,f=e.createContext(null);let v;const p=(m=f,(t,i=c)=>{t||d.w("fetching full store without passing any selector may have a heavy performance impact on your website.");const o=e.useContext(m);if(!o)throw new Error(h);return(0,o.store)(t,i)});var m;const y=function(t){return(i,o=c)=>{i||d.w("fetching full store without passing any selector may have a heavy performance impact on your website.");const n=e.useContext(t);if(!n)throw new Error(h);const r=n.statsStore;return null==r?void 0:r(i,o)}}(f),w=()=>{const t=e.useContext(f);if(!t)throw new Error(h);return t.store},S=()=>{const t=e.useContext(f);if(!t)throw new Error(h);return t.notifications},P=()=>{const t=e.useContext(f);if(!t)throw new Error(h);return t.actions},b=t=>{const i=e.useContext(f),[o,n]=e.useState(null);if(!i)throw new Error(h);return e.useEffect((()=>{if(!i.notifications)return;return i.notifications.onNotification((e=>n(e)),t)}),[i.notifications,t]),o};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@100mslive/hms-video-store"),i=require("zustand"),o=require("react-intersection-observer"),n=require("react-resize-detector");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a,s,l=r(e),c=r(i);function u(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;const i=Object.keys(e);if(i.length!==Object.keys(t).length)return!1;for(let o=0;o<i.length;o++)if(!Object.prototype.hasOwnProperty.call(t,i[o])||!Object.is(e[i[o]],t[i[o]]))return!1;return!0}(s=a||(a={}))[s.VERBOSE=0]="VERBOSE",s[s.DEBUG=1]="DEBUG",s[s.INFO=2]="INFO",s[s.WARN=3]="WARN",s[s.ERROR=4]="ERROR",s[s.NONE=5]="NONE";class d{static v(e,...t){this.log(a.VERBOSE,e,...t)}static d(e,...t){this.log(a.DEBUG,e,...t)}static i(e,...t){this.log(a.INFO,e,...t)}static w(e,...t){this.log(a.WARN,e,...t)}static e(e,...t){this.log(a.ERROR,e,...t)}static log(e,t,...i){if(!(this.level.valueOf()>e.valueOf()))switch(e){case a.VERBOSE:console.log("HMSui-components: ",t,...i);break;case a.DEBUG:console.debug("HMSui-components: ",t,...i);break;case a.INFO:console.info("HMSui-components: ",t,...i);break;case a.WARN:console.warn("HMSui-components: ",t,...i);break;case a.ERROR:console.error("HMSui-components: ",t,...i)}}}d.level=a.VERBOSE;const h="It seems like you forgot to add your component within a top level HMSRoomProvider, please refer to 100ms react docs(https://docs.100ms.live/javascript/v2/features/integration#react-hooks) to check on the required steps for using this hook.";const g="undefined"!=typeof window,f=e.createContext(null);let v;const p=(m=f,(t,i=u)=>{t||d.w("fetching full store without passing any selector may have a heavy performance impact on your website.");const o=e.useContext(m);if(!o)throw new Error(h);return(0,o.store)(t,i)});var m;const y=function(t){return(i,o=u)=>{i||d.w("fetching full store without passing any selector may have a heavy performance impact on your website.");const n=e.useContext(t);if(!n)throw new Error(h);const r=n.statsStore;return null==r?void 0:r(i,o)}}(f),S=()=>{const t=e.useContext(f);if(!t)throw new Error(h);return t.store},w=()=>{const t=e.useContext(f);if(!t)throw new Error(h);return t.notifications},P=()=>{const t=e.useContext(f);if(!t)throw new Error(h);return t.actions},b=t=>{const i=e.useContext(f),[o,n]=e.useState(null);if(!i)throw new Error(h);return e.useEffect((()=>{if(!i.notifications)return;return i.notifications.onNotification((e=>n(e)),t)}),[i.notifications,t]),o};
2
2
  /*! *****************************************************************************
3
3
  Copyright (c) Microsoft Corporation.
4
4
 
@@ -13,5 +13,5 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
13
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
14
  PERFORMANCE OF THIS SOFTWARE.
15
15
  ***************************************************************************** */
16
- function E(e,t,i,o){return new(i||(i=Promise))((function(n,r){function a(e){try{u(o.next(e))}catch(e){r(e)}}function s(e){try{u(o.throw(e))}catch(e){r(e)}}function u(e){var t;e.done?n(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}u((o=o.apply(e,t||[])).next())}))}const x=(e,t)=>d.e("react-sdk",t,e),k=(e,t,i)=>E(void 0,void 0,void 0,(function*(){if(t)try{yield e.setRemoteTrackEnabled(t.id,!t.enabled)}catch(e){i(e,"remoteToggle")}})),R=({elements:e,tilesInFirstPage:t,onlyOnePage:i,isLastPageDifferentFromFirstPage:o,defaultWidth:n,defaultHeight:r,lastPageWidth:a,lastPageHeight:s})=>{const u=((e,t,i)=>e.reduce(((e,o,n)=>{const r=Math.floor(n/t);return r>0&&i||(e[r]||(e[r]=[]),e[r].push(o)),e}),[]))(e,t,i);return u.map(((e,t)=>e.map((e=>{const i=t===u.length-1,l=o&&i?a:n,c=o&&i?s:r;return Object.assign(Object.assign({},e),{height:c,width:l})}))))};const I=(e,t,i,o,n)=>{if(e<0||t<0)throw new Error("Container must have a non-negative area");if(i<1||!Number.isInteger(i))throw new Error("Number of shapes to place must be a positive integer");const r=o&&n&&o/n;if(void 0!==r&&isNaN(r))throw new Error("Aspect ratio must be a number");let a={area:0,cols:0,rows:0,width:0,height:0};if(void 0!==r)for(let o=i;o>0;o+=-1){const n=Math.ceil(i/o);let s,u;e/(o*r)<=t/n?(s=e/o,u=s/r):(u=t/n,s=u*r);const l=s*u;l>a.area&&(a={area:l,width:s,height:u,rows:n,cols:o})}return a};function M({count:e,parentWidth:t,parentHeight:i,maxTileCount:o,maxRowCount:n,maxColCount:r,aspectRatio:a}){let s=0,u=0,l=0,c=0,d=!1,h=0;if(0===e)return{tilesInFirstPage:h,defaultWidth:s,defaultHeight:u,lastPageWidth:l,lastPageHeight:c,isLastPageDifferentFromFirstPage:d};if(o)({tilesInFirstPage:h,defaultWidth:s,defaultHeight:u,lastPageWidth:l,lastPageHeight:c,isLastPageDifferentFromFirstPage:d}=(({parentWidth:e,parentHeight:t,count:i,maxCount:o,aspectRatio:n})=>{let r=0,a=0,s=0,u=0,l=!1,c=0,d=0;const{width:h,height:g}=I(e,t,Math.min(i,o),n.width,n.height);if(r=h,a=g,c=Math.min(i,o),d=i%o,l=d>0&&i>o,l){const{width:i,height:o}=I(e,t,d,n.width,n.height);s=i,u=o}return{tilesInFirstPage:c,defaultWidth:r,defaultHeight:a,lastPageWidth:s,lastPageHeight:u,isLastPageDifferentFromFirstPage:l}})({parentWidth:t,parentHeight:i,count:e,maxCount:o,aspectRatio:a}));else if(n)({tilesInFirstPage:h,defaultWidth:s,defaultHeight:u,lastPageWidth:l,lastPageHeight:c,isLastPageDifferentFromFirstPage:d}=(({parentWidth:e,parentHeight:t,count:i,maxCount:o,aspectRatio:n})=>{let r=0,a=0,s=0,u=0,l=!1,c=0,d=0;const h=Math.min(Math.ceil(Math.sqrt(i*(n.width/n.height)/(e/t))),o),g=t/h,f=g*(n.width/n.height),v=Math.floor(e/f);if(r=f,a=g,c=Math.min(i,h*v),d=i%(h*v),l=d>0&&i>h*v,l){const i=t/Math.min(Math.ceil(Math.sqrt(d*(n.width/n.height)/(e/t))),o);u=i,s=i*(n.width/n.height)}return{tilesInFirstPage:c,defaultWidth:r,defaultHeight:a,lastPageWidth:s,lastPageHeight:u,isLastPageDifferentFromFirstPage:l}})({parentWidth:t,parentHeight:i,count:e,maxCount:n,aspectRatio:a}));else if(r)({tilesInFirstPage:h,defaultWidth:s,defaultHeight:u,lastPageWidth:l,lastPageHeight:c,isLastPageDifferentFromFirstPage:d}=(({parentWidth:e,parentHeight:t,count:i,maxCount:o,aspectRatio:n})=>{let r=0,a=0,s=0,u=0,l=!1,c=0,d=0;const h=Math.min(Math.ceil(Math.sqrt(i*(e/t)/(n.width/n.height))),o);let g=e/h,f=g/(n.width/n.height);f>t&&(f=t,g=f/(n.height/n.width));const v=Math.floor(t/f);if(a=f,r=g,c=Math.min(i,v*h),d=i%(v*h),l=d>0&&i>v*h,l){let i=e/Math.min(Math.ceil(Math.sqrt(d*(e/t)/(n.width/n.height))),o),r=i/(n.width/n.height);r>t&&(r=t,i=r/(n.height/n.width)),u=r,s=i}return{tilesInFirstPage:c,defaultWidth:r,defaultHeight:a,lastPageWidth:s,lastPageHeight:u,isLastPageDifferentFromFirstPage:l}})({parentWidth:t,parentHeight:i,count:e,maxCount:r,aspectRatio:a}));else{const{width:o,height:n}=I(t,i,e,a.width,a.height);s=o,u=n,h=e}return{tilesInFirstPage:h,defaultWidth:s,defaultHeight:u,lastPageWidth:l,lastPageHeight:c,isLastPageDifferentFromFirstPage:d}}const H={width:1,height:1};var O;exports.DeviceType=void 0,(O=exports.DeviceType||(exports.DeviceType={})).videoInput="videoInput",O.audioInput="audioInput",O.audioOutput="audioOutput";exports.HMSRoomProvider=({children:i,actions:o,store:n,notifications:r,stats:a,isHMSStatsOn:s=!1})=>{if(!v){const e=()=>{throw new Error("modifying store is not allowed")};if(o&&n)v={actions:o,store:l.default(Object.assign(Object.assign({},n),{setState:e,destroy:e}))},r&&(v.notifications=r),a&&(v.statsStore=l.default({getState:a.getState,subscribe:a.subscribe,setState:e,destroy:e}));else{const i=new t.HMSReactiveStore;if(v={actions:i.getActions(),store:l.default(Object.assign(Object.assign({},i.getStore()),{setState:e,destroy:e})),notifications:i.getNotifications()},s){const t=i.getStats();v.statsStore=l.default({getState:t.getState,subscribe:t.subscribe,setState:e,destroy:e})}}}return e.useEffect((()=>{g&&(window.addEventListener("beforeunload",(()=>v.actions.leave())),window.addEventListener("onunload",(()=>v.actions.leave())))}),[]),u.default.createElement(f.Provider,{value:v},i)},exports.throwErrorHandler=e=>{throw e},exports.useAVToggle=(i=x)=>{const o=p(t.selectIsLocalAudioEnabled),n=p(t.selectIsLocalVideoEnabled),r=p(t.selectIsAllowedToPublish),a=P(),s=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){try{yield a.setLocalAudioEnabled(!o)}catch(e){i(e,"toggleAudio")}}))),[a,o,i]),u=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){try{yield a.setLocalVideoEnabled(!n)}catch(e){i(e,"toggleVideo")}}))),[a,n,i]);return{isLocalAudioEnabled:o,isLocalVideoEnabled:n,toggleAudio:(null==r?void 0:r.audio)?s:void 0,toggleVideo:(null==r?void 0:r.video)?u:void 0}},exports.useAudioLevelStyles=function({trackId:i,getStyle:o,ref:n}){const r=w();e.useEffect((()=>r.subscribe((e=>{if(!n.current)return;const t=o(e);for(const e in t)n.current.style[e]=t[e]}),t.selectTrackAudioByID(i))),[o,n,r,i])},exports.useAutoplayError=()=>{const i=b(t.HMSNotificationTypes.ERROR),[o,n]=e.useState(""),r=P(),a=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){yield r.unblockAudio()}))),[r]);return e.useEffect((()=>{3008===(null==i?void 0:i.data.code)&&n(null==i?void 0:i.data.message)}),[i]),{error:o,unblockAudio:a,resetError:()=>n("")}},exports.useCustomEvent=({type:i,onEvent:o,handleError:n=x})=>{const r=P(),a=S();e.useEffect((()=>{r.ignoreMessageTypes([i])}),[r,i]),e.useEffect((()=>{if(!a)return;return a.onNotification((e=>{const t=e.data;if(t&&t.type===i)try{const e=JSON.parse(t.message);null==o||o(e)}catch(e){n(e,"handleCustomEvent")}}),t.HMSNotificationTypes.NEW_MESSAGE)}),[a,i,o,n]);return{sendEvent:e.useCallback((e=>E(void 0,void 0,void 0,(function*(){try{const t=JSON.stringify(e||"");yield r.sendBroadcastMessage(t,i),null==o||o(e)}catch(e){n(e,"sendCustomEvent")}}))),[r,n,o,i])}},exports.useDevices=(i=x)=>{const o=P(),n=p(t.selectDevices),r=p(t.selectLocalMediaSettings),a=p(t.selectIsAllowedToPublish),s={[exports.DeviceType.audioOutput]:r.audioOutputDeviceId},u={[exports.DeviceType.audioOutput]:n.audioOutput};a.video&&(u[exports.DeviceType.videoInput]=n.videoInput,s[exports.DeviceType.videoInput]=r.videoInputDeviceId),a.audio&&(u[exports.DeviceType.audioInput]=n.audioInput,s[exports.DeviceType.audioInput]=r.audioInputDeviceId);return{allDevices:u,selectedDeviceIDs:s,updateDevice:e.useCallback((({deviceType:e,deviceId:t})=>E(void 0,void 0,void 0,(function*(){try{switch(e){case exports.DeviceType.audioInput:yield o.setAudioSettings({deviceId:t});break;case exports.DeviceType.videoInput:yield o.setVideoSettings({deviceId:t});break;case exports.DeviceType.audioOutput:o.setAudioOutputDevice(t)}}catch(e){i(e,"updateDevices")}}))),[i,o])}},exports.useHMSActions=P,exports.useHMSNotifications=b,exports.useHMSStatsStore=y,exports.useHMSStore=p,exports.useHMSVanillaNotifications=S,exports.useHMSVanillaStore=w,exports.useParticipantList=()=>{const i=p(t.selectIsConnectedToRoom),o=p(i?t.selectPeers:t.selectRemotePeers),n=p(t.selectPeerCount),r=e.useMemo((()=>{return(e=o)&&Array.isArray(e)&&0!==e.length?e.reduce(((e,t)=>t.roleName?(e[t.roleName]||(e[t.roleName]=[]),e[t.roleName].push(t),e):e),{}):{};var e}),[o]);return{roles:Object.keys(r),participantsByRoles:r,peerCount:n,isConnected:i}},exports.usePreviewJoin=({name:i="",token:o,metadata:n,handleError:r=x,initEndpoint:a,initialSettings:s,captureNetworkQualityInPreview:u})=>{const l=P(),c=p(t.selectRoomState),d=p(t.selectIsConnectedToRoom)||!1,h=c===t.HMSRoomState.Preview,g=e.useMemo((()=>({userName:i,authToken:o,metaData:n,rememberDeviceSelection:!0,settings:s,initEndpoint:a,captureNetworkQualityInPreview:u})),[i,o,n,a,s,u]),f=e.useCallback((()=>{E(void 0,void 0,void 0,(function*(){if(o&&c===t.HMSRoomState.Disconnected){d&&(yield l.leave());try{yield l.preview(g)}catch(e){r(e,"preview")}}}))}),[l,r,o,c,g,d]);return{enableJoin:h,join:e.useCallback((()=>{if(o)try{l.join(g)}catch(e){r(e,"join")}}),[l,g,r,o]),isConnected:d,preview:f}},exports.useRecordingStreaming=()=>{const e=p(t.selectRecordingState),i=p(t.selectRTMPState),o=p(t.selectHLSState),n=e.server.running,r=e.browser.running,a=e.hls.running,s=n||r||a;return{isServerRecordingOn:n,isBrowserRecordingOn:r,isHLSRecordingOn:a,isStreamingOn:o.running||i.running,isHLSRunning:o.running,isRTMPRunning:i.running,isRecordingOn:s}},exports.useRemoteAVToggle=(i,o,n=x)=>{const r=P(),a=p(t.selectTrackByID(i)),s=p(t.selectTrackByID(o)),u=p(t.selectAudioTrackVolume(null==a?void 0:a.id)),l=p(t.selectPermissions),c=(null==s?void 0:s.enabled)?null==l?void 0:l.mute:null==l?void 0:l.unmute,d=(null==a?void 0:a.enabled)?null==l?void 0:l.mute:null==l?void 0:l.unmute,h=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){yield k(r,a,n)}))),[r,a,n]),g=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){yield k(r,s,n)}))),[r,n,s]),f=e.useCallback((e=>{a&&r.setVolume(e,a.id)}),[r,a]);return{isAudioEnabled:!!(null==a?void 0:a.enabled),isVideoEnabled:!!(null==s?void 0:s.enabled),volume:u,toggleAudio:a&&d?h:void 0,toggleVideo:"regular"===(null==s?void 0:s.source)&&c?g:void 0,setVolume:a?f:void 0}},exports.useScreenShare=(i=x)=>{var o,n;const r=P(),a=p(t.selectIsLocalScreenShared),s=p(t.selectPeerScreenSharing),u=p(t.selectScreenSharesByPeerId(null==s?void 0:s.id)),l=e.useCallback(((e=!1)=>E(void 0,void 0,void 0,(function*(){try{yield r.setScreenShareEnabled(!a,e)}catch(e){i(e,"toggleScreenShare")}}))),[r,a,i]);return{amIScreenSharing:a,screenSharingPeerId:null==s?void 0:s.id,screenSharingPeerName:null==s?void 0:s.name,screenShareVideoTrackId:null===(o=null==u?void 0:u.video)||void 0===o?void 0:o.id,screenShareAudioTrackId:null===(n=null==u?void 0:u.audio)||void 0===n?void 0:n.id,toggleScreenShare:l}},exports.useVideo=({trackId:i,attach:n})=>{const r=P(),a=e.useRef(null),s=p(t.selectTrackByID(i)),{ref:u,inView:l}=o.useInView({threshold:.5}),c=e.useCallback((e=>{e&&(a.current=e,u(e))}),[u]);return e.useEffect((()=>{E(void 0,void 0,void 0,(function*(){a.current&&(null==s?void 0:s.id)&&(l&&s.enabled&&!1!==n?yield r.attachVideo(s.id,a.current):yield r.detachVideo(s.id,a.current))}))}),[r,l,a,null==s?void 0:s.id,null==s?void 0:s.enabled,null==s?void 0:s.deviceID,null==s?void 0:s.plugins,n]),e.useEffect((()=>()=>{E(void 0,void 0,void 0,(function*(){if(a.current&&s)try{yield r.detachVideo(s.id,a.current)}catch(e){d.w("detach video error for track",s.id,e)}}))}),[]),{videoRef:c}},exports.useVideoList=({peers:i,maxTileCount:o,maxColCount:r,maxRowCount:a,includeScreenShareForPeer:s=(()=>!1),aspectRatio:u=H,filterNonPublishingPeers:l=!0,offsetY:c=0})=>{const{width:d=0,height:h=0,ref:g}=n.useResizeDetector(),f=((e,t,i,o=!0)=>{if(!e||!t||!i)return[];const n=[];for(const r of e)if(void 0===r.videoTrack&&r.audioTrack&&t[r.audioTrack]?n.push({peer:r}):r.videoTrack&&t[r.videoTrack]?n.push({track:t[r.videoTrack],peer:r}):o||n.push({peer:r}),r.auxiliaryTracks.length>0&&r.auxiliaryTracks.forEach((e=>{const i=t[e];"video"===(null==i?void 0:i.type)&&"regular"===(null==i?void 0:i.source)&&n.push({track:i,peer:r})})),i(r)&&r.auxiliaryTracks.length>0){const e=r.auxiliaryTracks.find((e=>{const i=t[e];return"video"===(null==i?void 0:i.type)&&"screen"===(null==i?void 0:i.source)}));e&&n.push({track:t[e],peer:r})}return n})(i,w().getState(t.selectTracksMap),s,l),v=e.useMemo((()=>{if(u)return u;return{width:function(e){if(0===e.length)return null;const t={};let i=e[0],o=1;for(let n=0;n<e.length;n++){const r=e[n];null===t[r]?t[r]=1:t[r]++,t[r]>o&&(i=r,o=t[r])}return i}(f.filter((e=>{var t,i;return(null===(t=e.track)||void 0===t?void 0:t.width)&&(null===(i=e.track)||void 0===i?void 0:i.height)})).map((e=>{var t,i;return((null===(t=e.track)||void 0===t?void 0:t.width)||1)/((null===(i=e.track)||void 0===i?void 0:i.height)||1)})))||1,height:1}}),[u,f]),p=f.length,{tilesInFirstPage:m,defaultWidth:y,defaultHeight:S,lastPageWidth:P,lastPageHeight:b,isLastPageDifferentFromFirstPage:E}=e.useMemo((()=>M({count:p,parentWidth:Math.floor(d),parentHeight:Math.floor(h)-Math.min(h,c),maxTileCount:o,maxRowCount:a,maxColCount:r,aspectRatio:v})),[p,d,h,o,a,r,v,c]);return{pagesWithTiles:e.useMemo((()=>R({elements:f,tilesInFirstPage:m,onlyOnePage:!1,isLastPageDifferentFromFirstPage:E,defaultWidth:y,defaultHeight:S,lastPageWidth:P,lastPageHeight:b})),[f,m,E,y,S,P,b]),ref:g}},Object.keys(t).forEach((function(e){"default"===e||exports.hasOwnProperty(e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return t[e]}})}));
16
+ function E(e,t,i,o){return new(i||(i=Promise))((function(n,r){function a(e){try{l(o.next(e))}catch(e){r(e)}}function s(e){try{l(o.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,s)}l((o=o.apply(e,t||[])).next())}))}const R=(e,t)=>d.e("react-sdk",t,e),x=(e,t,i)=>E(void 0,void 0,void 0,(function*(){if(t)try{yield e.setRemoteTrackEnabled(t.id,!t.enabled)}catch(e){i(e,"remoteToggle")}})),k=({elements:e,tilesInFirstPage:t,onlyOnePage:i,isLastPageDifferentFromFirstPage:o,defaultWidth:n,defaultHeight:r,lastPageWidth:a,lastPageHeight:s})=>{const l=((e,t,i)=>e.reduce(((e,o,n)=>{const r=Math.floor(n/t);return r>0&&i||(e[r]||(e[r]=[]),e[r].push(o)),e}),[]))(e,t,i);return l.map(((e,t)=>e.map((e=>{const i=t===l.length-1,c=o&&i?a:n,u=o&&i?s:r;return Object.assign(Object.assign({},e),{height:u,width:c})}))))};const I=(e,t,i,o,n)=>{if(e<0||t<0)throw new Error("Container must have a non-negative area");if(i<1||!Number.isInteger(i))throw new Error("Number of shapes to place must be a positive integer");const r=o&&n&&o/n;if(void 0!==r&&isNaN(r))throw new Error("Aspect ratio must be a number");let a={area:0,cols:0,rows:0,width:0,height:0};if(void 0!==r)for(let o=i;o>0;o+=-1){const n=Math.ceil(i/o);let s,l;e/(o*r)<=t/n?(s=e/o,l=s/r):(l=t/n,s=l*r);const c=s*l;c>a.area&&(a={area:c,width:s,height:l,rows:n,cols:o})}return a};function M({count:e,parentWidth:t,parentHeight:i,maxTileCount:o,maxRowCount:n,maxColCount:r,aspectRatio:a}){let s=0,l=0,c=0,u=0,d=!1,h=0;if(0===e)return{tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:c,lastPageHeight:u,isLastPageDifferentFromFirstPage:d};if(o)({tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:c,lastPageHeight:u,isLastPageDifferentFromFirstPage:d}=(({parentWidth:e,parentHeight:t,count:i,maxCount:o,aspectRatio:n})=>{let r=0,a=0,s=0,l=0,c=!1,u=0,d=0;const{width:h,height:g}=I(e,t,Math.min(i,o),n.width,n.height);if(r=h,a=g,u=Math.min(i,o),d=i%o,c=d>0&&i>o,c){const{width:i,height:o}=I(e,t,d,n.width,n.height);s=i,l=o}return{tilesInFirstPage:u,defaultWidth:r,defaultHeight:a,lastPageWidth:s,lastPageHeight:l,isLastPageDifferentFromFirstPage:c}})({parentWidth:t,parentHeight:i,count:e,maxCount:o,aspectRatio:a}));else if(n)({tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:c,lastPageHeight:u,isLastPageDifferentFromFirstPage:d}=(({parentWidth:e,parentHeight:t,count:i,maxCount:o,aspectRatio:n})=>{let r=0,a=0,s=0,l=0,c=!1,u=0,d=0;const h=Math.min(Math.ceil(Math.sqrt(i*(n.width/n.height)/(e/t))),o),g=t/h,f=g*(n.width/n.height),v=Math.floor(e/f);if(r=f,a=g,u=Math.min(i,h*v),d=i%(h*v),c=d>0&&i>h*v,c){const i=t/Math.min(Math.ceil(Math.sqrt(d*(n.width/n.height)/(e/t))),o);l=i,s=i*(n.width/n.height)}return{tilesInFirstPage:u,defaultWidth:r,defaultHeight:a,lastPageWidth:s,lastPageHeight:l,isLastPageDifferentFromFirstPage:c}})({parentWidth:t,parentHeight:i,count:e,maxCount:n,aspectRatio:a}));else if(r)({tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:c,lastPageHeight:u,isLastPageDifferentFromFirstPage:d}=(({parentWidth:e,parentHeight:t,count:i,maxCount:o,aspectRatio:n})=>{let r=0,a=0,s=0,l=0,c=!1,u=0,d=0;const h=Math.min(Math.ceil(Math.sqrt(i*(e/t)/(n.width/n.height))),o);let g=e/h,f=g/(n.width/n.height);f>t&&(f=t,g=f/(n.height/n.width));const v=Math.floor(t/f);if(a=f,r=g,u=Math.min(i,v*h),d=i%(v*h),c=d>0&&i>v*h,c){let i=e/Math.min(Math.ceil(Math.sqrt(d*(e/t)/(n.width/n.height))),o),r=i/(n.width/n.height);r>t&&(r=t,i=r/(n.height/n.width)),l=r,s=i}return{tilesInFirstPage:u,defaultWidth:r,defaultHeight:a,lastPageWidth:s,lastPageHeight:l,isLastPageDifferentFromFirstPage:c}})({parentWidth:t,parentHeight:i,count:e,maxCount:r,aspectRatio:a}));else{const{width:o,height:n}=I(t,i,e,a.width,a.height);s=o,l=n,h=e}return{tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:c,lastPageHeight:u,isLastPageDifferentFromFirstPage:d}}const H={width:1,height:1};var O;exports.DeviceType=void 0,(O=exports.DeviceType||(exports.DeviceType={})).videoInput="videoInput",O.audioInput="audioInput",O.audioOutput="audioOutput";exports.HMSRoomProvider=({children:i,actions:o,store:n,notifications:r,stats:a,isHMSStatsOn:s=!1,leaveOnUnload:u=!0})=>{if(!v){const e=()=>{throw new Error("modifying store is not allowed")};if(o&&n)v={actions:o,store:c.default(Object.assign(Object.assign({},n),{setState:e,destroy:e}))},r&&(v.notifications=r),a&&(v.statsStore=c.default({getState:a.getState,subscribe:a.subscribe,setState:e,destroy:e}));else{const i=new t.HMSReactiveStore;if(v={actions:i.getActions(),store:c.default(Object.assign(Object.assign({},i.getStore()),{setState:e,destroy:e})),notifications:i.getNotifications()},s){const t=i.getStats();v.statsStore=c.default({getState:t.getState,subscribe:t.subscribe,setState:e,destroy:e})}}}return e.useEffect((()=>{g&&u&&(window.addEventListener("beforeunload",(()=>v.actions.leave())),window.addEventListener("onunload",(()=>v.actions.leave())))}),[u]),l.default.createElement(f.Provider,{value:v},i)},exports.throwErrorHandler=e=>{throw e},exports.useAVToggle=(i=R)=>{const o=p(t.selectIsLocalAudioEnabled),n=p(t.selectIsLocalVideoEnabled),r=p(t.selectIsAllowedToPublish),a=P(),s=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){try{yield a.setLocalAudioEnabled(!o)}catch(e){i(e,"toggleAudio")}}))),[a,o,i]),l=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){try{yield a.setLocalVideoEnabled(!n)}catch(e){i(e,"toggleVideo")}}))),[a,n,i]);return{isLocalAudioEnabled:o,isLocalVideoEnabled:n,toggleAudio:(null==r?void 0:r.audio)?s:void 0,toggleVideo:(null==r?void 0:r.video)?l:void 0}},exports.useAudioLevelStyles=function({trackId:i,getStyle:o,ref:n}){const r=S();e.useEffect((()=>r.subscribe((e=>{if(!n.current)return;const t=o(e);for(const e in t)n.current.style[e]=t[e]}),t.selectTrackAudioByID(i))),[o,n,r,i])},exports.useAutoplayError=()=>{const i=b(t.HMSNotificationTypes.ERROR),[o,n]=e.useState(""),r=P(),a=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){yield r.unblockAudio()}))),[r]);return e.useEffect((()=>{3008===(null==i?void 0:i.data.code)&&n(null==i?void 0:i.data.message)}),[i]),{error:o,unblockAudio:a,resetError:()=>n("")}},exports.useCustomEvent=({type:i,onEvent:o,handleError:n=R})=>{const r=P(),a=w();e.useEffect((()=>{r.ignoreMessageTypes([i])}),[r,i]),e.useEffect((()=>{if(!a)return;return a.onNotification((e=>{const t=e.data;if(t&&t.type===i)try{const e=JSON.parse(t.message);null==o||o(e)}catch(e){n(e,"handleCustomEvent")}}),t.HMSNotificationTypes.NEW_MESSAGE)}),[a,i,o,n]);return{sendEvent:e.useCallback((e=>E(void 0,void 0,void 0,(function*(){try{const t=JSON.stringify(e||"");yield r.sendBroadcastMessage(t,i),null==o||o(e)}catch(e){n(e,"sendCustomEvent")}}))),[r,n,o,i])}},exports.useDevices=(i=R)=>{const o=P(),n=p(t.selectDevices),r=p(t.selectLocalMediaSettings),a=p(t.selectIsAllowedToPublish),s={[exports.DeviceType.audioOutput]:r.audioOutputDeviceId},l={[exports.DeviceType.audioOutput]:n.audioOutput};a.video&&(l[exports.DeviceType.videoInput]=n.videoInput,s[exports.DeviceType.videoInput]=r.videoInputDeviceId),a.audio&&(l[exports.DeviceType.audioInput]=n.audioInput,s[exports.DeviceType.audioInput]=r.audioInputDeviceId);return{allDevices:l,selectedDeviceIDs:s,updateDevice:e.useCallback((({deviceType:e,deviceId:t})=>E(void 0,void 0,void 0,(function*(){try{switch(e){case exports.DeviceType.audioInput:yield o.setAudioSettings({deviceId:t});break;case exports.DeviceType.videoInput:yield o.setVideoSettings({deviceId:t});break;case exports.DeviceType.audioOutput:o.setAudioOutputDevice(t)}}catch(e){i(e,"updateDevices")}}))),[i,o])}},exports.useHMSActions=P,exports.useHMSNotifications=b,exports.useHMSStatsStore=y,exports.useHMSStore=p,exports.useHMSVanillaNotifications=w,exports.useHMSVanillaStore=S,exports.useParticipantList=()=>{const i=p(t.selectIsConnectedToRoom),o=p(i?t.selectPeers:t.selectRemotePeers),n=p(t.selectPeerCount),r=e.useMemo((()=>{return(e=o)&&Array.isArray(e)&&0!==e.length?e.reduce(((e,t)=>t.roleName?(e[t.roleName]||(e[t.roleName]=[]),e[t.roleName].push(t),e):e),{}):{};var e}),[o]);return{roles:Object.keys(r),participantsByRoles:r,peerCount:n,isConnected:i}},exports.useParticipants=e=>{var i;const o=p(t.selectIsConnectedToRoom),n=p(t.selectPeerCount),r=p(t.selectAvailableRoleNames);let a=p(o?t.selectPeers:t.selectRemotePeers);const s=Array.from(new Set(a.map((e=>e.roleName)))),l=S();return(null===(i=null==e?void 0:e.metadata)||void 0===i?void 0:i.isHandRaised)&&(a=a.filter((e=>l.getState(t.selectPeerMetadata(e.id)).isHandRaised))),(null==e?void 0:e.role)&&r.includes(e.role)&&(a=a.filter((t=>t.roleName===e.role))),{participants:a,isConnected:o,peerCount:n,rolesWithParticipants:s}},exports.usePreviewJoin=({name:i="",token:o,metadata:n,handleError:r=R,initEndpoint:a,initialSettings:s,captureNetworkQualityInPreview:l})=>{const c=P(),u=p(t.selectRoomState),d=p(t.selectIsConnectedToRoom)||!1,h=u===t.HMSRoomState.Preview,g=e.useMemo((()=>({userName:i,authToken:o,metaData:n,rememberDeviceSelection:!0,settings:s,initEndpoint:a,captureNetworkQualityInPreview:l})),[i,o,n,a,s,l]),f=e.useCallback((()=>{E(void 0,void 0,void 0,(function*(){if(o&&u===t.HMSRoomState.Disconnected){d&&(yield c.leave());try{yield c.preview(g)}catch(e){r(e,"preview")}}}))}),[c,r,o,u,g,d]);return{enableJoin:h,join:e.useCallback((()=>{if(o)try{c.join(g)}catch(e){r(e,"join")}}),[c,g,r,o]),isConnected:d,preview:f}},exports.useRecordingStreaming=()=>{const e=p(t.selectRecordingState),i=p(t.selectRTMPState),o=p(t.selectHLSState),n=e.server.running,r=e.browser.running,a=e.hls.running,s=n||r||a;return{isServerRecordingOn:n,isBrowserRecordingOn:r,isHLSRecordingOn:a,isStreamingOn:o.running||i.running,isHLSRunning:o.running,isRTMPRunning:i.running,isRecordingOn:s}},exports.useRemoteAVToggle=(i,o,n=R)=>{const r=P(),a=p(t.selectTrackByID(i)),s=p(t.selectTrackByID(o)),l=p(t.selectAudioTrackVolume(null==a?void 0:a.id)),c=p(t.selectPermissions),u=(null==s?void 0:s.enabled)?null==c?void 0:c.mute:null==c?void 0:c.unmute,d=(null==a?void 0:a.enabled)?null==c?void 0:c.mute:null==c?void 0:c.unmute,h=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){yield x(r,a,n)}))),[r,a,n]),g=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){yield x(r,s,n)}))),[r,n,s]),f=e.useCallback((e=>{a&&r.setVolume(e,a.id)}),[r,a]);return{isAudioEnabled:!!(null==a?void 0:a.enabled),isVideoEnabled:!!(null==s?void 0:s.enabled),volume:l,toggleAudio:a&&d?h:void 0,toggleVideo:"regular"===(null==s?void 0:s.source)&&u?g:void 0,setVolume:a?f:void 0}},exports.useScreenShare=(i=R)=>{var o,n;const r=P(),a=p(t.selectIsLocalScreenShared),s=p(t.selectPeerScreenSharing),l=p(t.selectScreenSharesByPeerId(null==s?void 0:s.id)),c=e.useCallback(((e=!1)=>E(void 0,void 0,void 0,(function*(){try{yield r.setScreenShareEnabled(!a,e)}catch(e){i(e,"toggleScreenShare")}}))),[r,a,i]);return{amIScreenSharing:a,screenSharingPeerId:null==s?void 0:s.id,screenSharingPeerName:null==s?void 0:s.name,screenShareVideoTrackId:null===(o=null==l?void 0:l.video)||void 0===o?void 0:o.id,screenShareAudioTrackId:null===(n=null==l?void 0:l.audio)||void 0===n?void 0:n.id,toggleScreenShare:c}},exports.useVideo=({trackId:i,attach:n})=>{const r=P(),a=e.useRef(null),s=p(t.selectTrackByID(i)),{ref:l,inView:c}=o.useInView({threshold:.5}),u=e.useCallback((e=>{e&&(a.current=e,l(e))}),[l]);return e.useEffect((()=>{E(void 0,void 0,void 0,(function*(){a.current&&(null==s?void 0:s.id)&&(c&&s.enabled&&!1!==n?yield r.attachVideo(s.id,a.current):yield r.detachVideo(s.id,a.current))}))}),[r,c,a,null==s?void 0:s.id,null==s?void 0:s.enabled,null==s?void 0:s.deviceID,null==s?void 0:s.plugins,n]),e.useEffect((()=>()=>{E(void 0,void 0,void 0,(function*(){if(a.current&&s)try{yield r.detachVideo(s.id,a.current)}catch(e){d.w("detach video error for track",s.id,e)}}))}),[]),{videoRef:u}},exports.useVideoList=({peers:i,maxTileCount:o,maxColCount:r,maxRowCount:a,includeScreenShareForPeer:s=(()=>!1),aspectRatio:l=H,filterNonPublishingPeers:c=!0,offsetY:u=0})=>{const{width:d=0,height:h=0,ref:g}=n.useResizeDetector(),f=((e,t,i,o=!0)=>{if(!e||!t||!i)return[];const n=[];for(const r of e)if(void 0===r.videoTrack&&r.audioTrack&&t[r.audioTrack]?n.push({peer:r}):r.videoTrack&&t[r.videoTrack]?n.push({track:t[r.videoTrack],peer:r}):o||n.push({peer:r}),r.auxiliaryTracks.length>0&&r.auxiliaryTracks.forEach((e=>{const i=t[e];"video"===(null==i?void 0:i.type)&&"regular"===(null==i?void 0:i.source)&&n.push({track:i,peer:r})})),i(r)&&r.auxiliaryTracks.length>0){const e=r.auxiliaryTracks.find((e=>{const i=t[e];return"video"===(null==i?void 0:i.type)&&"screen"===(null==i?void 0:i.source)}));e&&n.push({track:t[e],peer:r})}return n})(i,S().getState(t.selectTracksMap),s,c),v=e.useMemo((()=>{if(l)return l;return{width:function(e){if(0===e.length)return null;const t={};let i=e[0],o=1;for(let n=0;n<e.length;n++){const r=e[n];null===t[r]?t[r]=1:t[r]++,t[r]>o&&(i=r,o=t[r])}return i}(f.filter((e=>{var t,i;return(null===(t=e.track)||void 0===t?void 0:t.width)&&(null===(i=e.track)||void 0===i?void 0:i.height)})).map((e=>{var t,i;return((null===(t=e.track)||void 0===t?void 0:t.width)||1)/((null===(i=e.track)||void 0===i?void 0:i.height)||1)})))||1,height:1}}),[l,f]),p=f.length,{tilesInFirstPage:m,defaultWidth:y,defaultHeight:w,lastPageWidth:P,lastPageHeight:b,isLastPageDifferentFromFirstPage:E}=e.useMemo((()=>M({count:p,parentWidth:Math.floor(d),parentHeight:Math.floor(h)-Math.min(h,u),maxTileCount:o,maxRowCount:a,maxColCount:r,aspectRatio:v})),[p,d,h,o,a,r,v,u]);return{pagesWithTiles:e.useMemo((()=>k({elements:f,tilesInFirstPage:m,onlyOnePage:!1,isLastPageDifferentFromFirstPage:E,defaultWidth:y,defaultHeight:w,lastPageWidth:P,lastPageHeight:b})),[f,m,E,y,w,P,b]),ref:g}},Object.keys(t).forEach((function(e){"default"===e||exports.hasOwnProperty(e)||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return t[e]}})}));
17
17
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/utils/logger.ts","../../../node_modules/zustand/esm/shallow.js","../src/primitives/store.ts","../src/utils/isBrowser.ts","../src/primitives/HmsRoomProvider.ts","../../../node_modules/tslib/tslib.es6.js","../src/utils/commons.ts","../src/hooks/useRemoteAVToggle.ts","../src/utils/layout.ts","../src/hooks/useVideoList.ts","../src/hooks/useDevices.ts","../src/hooks/useAVToggle.ts","../src/hooks/useAudioLevelStyles.ts","../src/hooks/useAutoplayError.ts","../src/hooks/useCustomEvent.ts","../src/hooks/useParticipantList.ts","../src/utils/groupBy.ts","../src/hooks/usePreviewJoin.ts","../src/hooks/useRecordingStreaming.ts","../src/hooks/useScreenShare.ts","../src/hooks/useVideo.ts"],"sourcesContent":[null,"function shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\n\nexport { shallow as default };\n",null,null,null,"/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["HMSLogLevel","HMSLogLevel2","shallow","objA","objB","Object","is","keysA","keys","length","i","prototype","hasOwnProperty","call","HMSLogger","static","tag","this","log","VERBOSE","data","DEBUG","INFO","WARN","ERROR","level","valueOf","console","debug","info","warn","error","hooksErrorMessage","isBrowser","window","HMSContext","createContext","useHMSStore","hmsContext","equalityFn","selector","w","HMSContextConsumer","Error","useStore","store","useHMSStatsStore","statsStore","makeHMSStatsStoreHook","useHMSVanillaStore","useContext","useHMSVanillaNotifications","notifications","onNotification","notification2","setNotification","type","notification","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","logErrorHandler","err","method","toggleTrackEnabled","actions","track","setRemoteTrackEnabled","id","enabled","handleError","chunkElements","elements","tilesInFirstPage","onlyOnePage","isLastPageDifferentFromFirstPage","defaultWidth","defaultHeight","lastPageWidth","lastPageHeight","reduce","resultArray","tile","chunkIndex","Math","floor","index","chunkSize","push","width","isLastPage","assign","element","height","largestRect","containerWidth","containerHeight","numRects","Number","isInteger","aspectRatio","best","area","cols","rows","height2","width2","calculateLayoutSizes","count","parentWidth","parentHeight","maxTileCount","maxRowCount","maxColCount","maxCount","tilesinLastPage","initialWidth","initialHeight","min","remWidth","remHeight","getTileSizesWithPageConstraint","ceil","sqrt","DEFAULTS","DeviceType2","DeviceType","providerProps","stats","create","getState","subscribe","setState","errFn","destroy","HMSReactiveStore","hmsReactiveStore","getActions","getStore","getNotifications","getStats","stats2","useEffect","addEventListener","leave","Provider","children","useHMSActions","useCallback","isLocalAudioEnabled","toggleVideo","setLocalVideoEnabled","isLocalVideoEnabled","toggleAudio","isAllowedToPublish","audio","video","trackId","getStyle","ref","current","style","key","styles","selectTrackAudioByID","unblockAudio","code","setError","message","resetError","onEvent","ignoreMessageTypes","msg","parse","NEW_MESSAGE","dataStr","JSON","stringify","sendBroadcastMessage","allDevices","videoInput","sdkAllDevices","selectedDeviceIDs","sdkSelectedDevices","videoInputDeviceId","audioInput","audioInputDeviceId","deviceType","deviceId","setAudioSettings","setVideoSettings","audioOutput","setAudioOutputDevice","isConnected","selectIsConnectedToRoom","participantList","selectPeers","selectRemotePeers","peerCount","selectPeerCount","participantsByRoles","useMemo","peers","res","roles","name","token","metadata","initEndpoint","initialSettings","captureNetworkQualityInPreview","config","userName","authToken","metaData","rememberDeviceSelection","settings","preview","roomState","HMSRoomState","Disconnected","join","recording","selectRecordingState","rtmp","selectRTMPState","hls","selectHLSState","isServerRecordingOn","server","running","isBrowserRecordingOn","browser","isHLSRecordingOn","isRecordingOn","audioTrackId","videoTrackId","audioTrack","selectTrackByID","videoTrack","setVolume","volume2","isAudioEnabled","volume","canToggleAudio","source","canToggleVideo","setScreenShareEnabled","amIScreenSharing","audioOnly","screenSharingPeerId","screenSharePeer","_a","screenShare","screenShareAudioTrackId","_b","toggleScreenShare","attach","setRefs","node","videoRef","inViewRef","inView","attachVideo","detachVideo","deviceID","plugins","includeScreenShareForPeer","filterNonPublishingPeers","offsetY","tracks","peerTiles","peer","auxiliaryTracks","forEach","screenShareTrackID","find","trackID","finalAspectRatio","array","modeMap","maxEl","el","mode","tracksWithPeer","filter","map"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/utils/logger.ts","../../../node_modules/zustand/esm/shallow.js","../src/primitives/store.ts","../src/utils/isBrowser.ts","../src/primitives/HmsRoomProvider.ts","../../../node_modules/tslib/tslib.es6.js","../src/utils/commons.ts","../src/hooks/useRemoteAVToggle.ts","../src/utils/layout.ts","../src/hooks/useVideoList.ts","../src/hooks/useDevices.ts","../src/hooks/useAVToggle.ts","../src/hooks/useAudioLevelStyles.ts","../src/hooks/useAutoplayError.ts","../src/hooks/useCustomEvent.ts","../src/hooks/useParticipantList.ts","../src/utils/groupBy.ts","../src/hooks/useParticipants.ts","../src/hooks/usePreviewJoin.ts","../src/hooks/useRecordingStreaming.ts","../src/hooks/useScreenShare.ts","../src/hooks/useVideo.ts"],"sourcesContent":[null,"function shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\n\nexport { shallow as default };\n",null,null,null,"/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["HMSLogLevel","HMSLogLevel2","shallow","objA","objB","Object","is","keysA","keys","length","i","prototype","hasOwnProperty","call","HMSLogger","static","tag","this","log","VERBOSE","data","DEBUG","INFO","WARN","ERROR","level","valueOf","console","debug","info","warn","error","hooksErrorMessage","isBrowser","window","HMSContext","createContext","useHMSStore","hmsContext","equalityFn","selector","w","HMSContextConsumer","Error","useStore","store","useHMSStatsStore","statsStore","makeHMSStatsStoreHook","useHMSVanillaStore","useContext","useHMSVanillaNotifications","notifications","onNotification","notification2","setNotification","type","notification","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","logErrorHandler","err","method","toggleTrackEnabled","actions","track","setRemoteTrackEnabled","id","enabled","handleError","chunkElements","elements","tilesInFirstPage","onlyOnePage","isLastPageDifferentFromFirstPage","defaultWidth","defaultHeight","lastPageWidth","lastPageHeight","reduce","resultArray","tile","chunkIndex","Math","floor","index","chunkSize","push","width","isLastPage","assign","element","height","largestRect","containerWidth","containerHeight","numRects","Number","isInteger","aspectRatio","best","area","cols","rows","height2","width2","calculateLayoutSizes","count","parentWidth","parentHeight","maxTileCount","maxRowCount","maxColCount","maxCount","tilesinLastPage","initialWidth","initialHeight","min","remWidth","remHeight","getTileSizesWithPageConstraint","ceil","sqrt","DEFAULTS","DeviceType2","DeviceType","providerProps","stats","create","getState","subscribe","setState","errFn","destroy","HMSReactiveStore","hmsReactiveStore","getActions","getStore","getNotifications","getStats","stats2","useEffect","leaveOnUnload","addEventListener","leave","Provider","children","useHMSActions","useCallback","isLocalAudioEnabled","toggleVideo","setLocalVideoEnabled","isLocalVideoEnabled","toggleAudio","isAllowedToPublish","audio","video","trackId","getStyle","ref","current","style","key","styles","selectTrackAudioByID","unblockAudio","code","setError","message","resetError","onEvent","ignoreMessageTypes","msg","parse","NEW_MESSAGE","dataStr","JSON","stringify","sendBroadcastMessage","allDevices","videoInput","sdkAllDevices","selectedDeviceIDs","sdkSelectedDevices","videoInputDeviceId","audioInput","audioInputDeviceId","deviceType","deviceId","setAudioSettings","setVideoSettings","audioOutput","setAudioOutputDevice","isConnected","selectIsConnectedToRoom","participantList","selectPeers","selectRemotePeers","peerCount","selectPeerCount","participantsByRoles","useMemo","peers","res","roles","params","rolesWithParticipants","Array","from","Set","map","peer","roleName","_a","metadata","isHandRaised","filter","selectPeerMetadata","role","availableRoles","includes","participants","name","token","initEndpoint","initialSettings","captureNetworkQualityInPreview","config","userName","authToken","metaData","rememberDeviceSelection","settings","preview","roomState","HMSRoomState","Disconnected","join","recording","selectRecordingState","rtmp","selectRTMPState","hls","selectHLSState","isServerRecordingOn","server","running","isBrowserRecordingOn","browser","isHLSRecordingOn","isRecordingOn","audioTrackId","videoTrackId","audioTrack","selectTrackByID","videoTrack","setVolume","volume2","isAudioEnabled","volume","canToggleAudio","source","canToggleVideo","setScreenShareEnabled","amIScreenSharing","audioOnly","screenSharingPeerId","screenSharePeer","screenShare","screenShareAudioTrackId","_b","toggleScreenShare","attach","setRefs","node","videoRef","inViewRef","inView","attachVideo","detachVideo","deviceID","plugins","includeScreenShareForPeer","filterNonPublishingPeers","offsetY","tracks","peerTiles","auxiliaryTracks","forEach","screenShareTrackID","find","trackID","finalAspectRatio","array","modeMap","maxEl","el","mode","tracksWithPeer"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -11,6 +11,7 @@ export { useParticipantList } from './hooks/useParticipantList';
11
11
  export { useRecordingStreaming } from './hooks/useRecordingStreaming';
12
12
  export { useAutoplayError } from './hooks/useAutoplayError';
13
13
  export { useCustomEvent } from './hooks/useCustomEvent';
14
+ export { useParticipants } from './hooks/useParticipants';
14
15
  export type { hooksErrHandler } from './hooks/types';
15
16
  export type { usePreviewInput, usePreviewResult } from './hooks/usePreviewJoin';
16
17
  export type { useVideoListInput, useVideoResult, useVideoListTile } from './hooks/useVideoList';
@@ -20,6 +21,7 @@ export type { useScreenShareResult } from './hooks/useScreenShare';
20
21
  export type { useRemoteAVToggleResult } from './hooks/useRemoteAVToggle';
21
22
  export type { useRecordingStreamingResult } from './hooks/useRecordingStreaming';
22
23
  export type { useParticipantListResult } from './hooks/useParticipantList';
24
+ export type { useParticipantsResult, useParticipantsParams } from './hooks/useParticipants';
23
25
  export type { useVideoInput, useVideoOutput } from './hooks/useVideo';
24
26
  export type { useAutoplayErrorResult } from './hooks/useAutoplayError';
25
27
  export type { useCustomEventInput, useCustomEventResult } from './hooks/useCustomEvent';
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export{HMSRoomProvider,useHMSActions,useHMSNotifications,useHMSStatsStore,useHMSStore,useHMSVanillaNotifications,useHMSVanillaStore}from"./primitives/HmsRoomProvider.js";export{usePreviewJoin}from"./hooks/usePreviewJoin.js";export{useAVToggle}from"./hooks/useAVToggle.js";export{useVideo}from"./hooks/useVideo.js";export{useScreenShare}from"./hooks/useScreenShare.js";export{useRemoteAVToggle}from"./hooks/useRemoteAVToggle.js";export{useVideoList}from"./hooks/useVideoList.js";export{useAudioLevelStyles}from"./hooks/useAudioLevelStyles.js";export{DeviceType,useDevices}from"./hooks/useDevices.js";export{useParticipantList}from"./hooks/useParticipantList.js";export{useRecordingStreaming}from"./hooks/useRecordingStreaming.js";export{useAutoplayError}from"./hooks/useAutoplayError.js";export{useCustomEvent}from"./hooks/useCustomEvent.js";export{throwErrorHandler}from"./utils/commons.js";export*from"@100mslive/hms-video-store";
1
+ export{HMSRoomProvider,useHMSActions,useHMSNotifications,useHMSStatsStore,useHMSStore,useHMSVanillaNotifications,useHMSVanillaStore}from"./primitives/HmsRoomProvider.js";export{usePreviewJoin}from"./hooks/usePreviewJoin.js";export{useAVToggle}from"./hooks/useAVToggle.js";export{useVideo}from"./hooks/useVideo.js";export{useScreenShare}from"./hooks/useScreenShare.js";export{useRemoteAVToggle}from"./hooks/useRemoteAVToggle.js";export{useVideoList}from"./hooks/useVideoList.js";export{useAudioLevelStyles}from"./hooks/useAudioLevelStyles.js";export{DeviceType,useDevices}from"./hooks/useDevices.js";export{useParticipantList}from"./hooks/useParticipantList.js";export{useRecordingStreaming}from"./hooks/useRecordingStreaming.js";export{useAutoplayError}from"./hooks/useAutoplayError.js";export{useCustomEvent}from"./hooks/useCustomEvent.js";export{useParticipants}from"./hooks/useParticipants.js";export{throwErrorHandler}from"./utils/commons.js";export*from"@100mslive/hms-video-store";
2
2
  //# sourceMappingURL=index.js.map
@@ -9,6 +9,7 @@ export interface HMSRoomProviderProps {
9
9
  * if true this will enable webrtc stats collection
10
10
  */
11
11
  isHMSStatsOn?: boolean;
12
+ leaveOnUnload?: boolean;
12
13
  }
13
14
  /**
14
15
  * top level wrapper for using react sdk hooks. This doesn't have any mandatory arguments, if you are already
@@ -1,2 +1,2 @@
1
- import t,{createContext as e,useEffect as o,useContext as s,useState as r}from"react";import{HMSReactiveStore as i}from"@100mslive/hms-video-store";import n from"zustand";import{makeHMSStoreHook as a,makeHMSStatsStoreHook as c,hooksErrorMessage as f}from"./store.js";import{isBrowser as d}from"../utils/isBrowser.js";const u=e(null);let l;const w=({children:e,actions:s,store:r,notifications:a,stats:c,isHMSStatsOn:f=!1})=>{if(!l){const t=()=>{throw new Error("modifying store is not allowed")};if(s&&r)l={actions:s,store:n(Object.assign(Object.assign({},r),{setState:t,destroy:t}))},a&&(l.notifications=a),c&&(l.statsStore=n({getState:c.getState,subscribe:c.subscribe,setState:t,destroy:t}));else{const e=new i;if(l={actions:e.getActions(),store:n(Object.assign(Object.assign({},e.getStore()),{setState:t,destroy:t})),notifications:e.getNotifications()},f){const o=e.getStats();l.statsStore=n({getState:o.getState,subscribe:o.subscribe,setState:t,destroy:t})}}}return o((()=>{d&&(window.addEventListener("beforeunload",(()=>l.actions.leave())),window.addEventListener("onunload",(()=>l.actions.leave())))}),[]),t.createElement(u.Provider,{value:l},e)},m=a(u),S=c(u),b=()=>{const t=s(u);if(!t)throw new Error(f);return t.store},g=()=>{const t=s(u);if(!t)throw new Error(f);return t.notifications},v=()=>{const t=s(u);if(!t)throw new Error(f);return t.actions},E=t=>{const e=s(u),[i,n]=r(null);if(!e)throw new Error(f);return o((()=>{if(!e.notifications)return;return e.notifications.onNotification((t=>n(t)),t)}),[e.notifications,t]),i};export{w as HMSRoomProvider,v as useHMSActions,E as useHMSNotifications,S as useHMSStatsStore,m as useHMSStore,g as useHMSVanillaNotifications,b as useHMSVanillaStore};
1
+ import t,{createContext as e,useEffect as o,useContext as s,useState as r}from"react";import{HMSReactiveStore as i}from"@100mslive/hms-video-store";import n from"zustand";import{makeHMSStoreHook as a,makeHMSStatsStoreHook as c,hooksErrorMessage as f}from"./store.js";import{isBrowser as d}from"../utils/isBrowser.js";const l=e(null);let u;const w=({children:e,actions:s,store:r,notifications:a,stats:c,isHMSStatsOn:f=!1,leaveOnUnload:w=!0})=>{if(!u){const t=()=>{throw new Error("modifying store is not allowed")};if(s&&r)u={actions:s,store:n(Object.assign(Object.assign({},r),{setState:t,destroy:t}))},a&&(u.notifications=a),c&&(u.statsStore=n({getState:c.getState,subscribe:c.subscribe,setState:t,destroy:t}));else{const e=new i;if(u={actions:e.getActions(),store:n(Object.assign(Object.assign({},e.getStore()),{setState:t,destroy:t})),notifications:e.getNotifications()},f){const o=e.getStats();u.statsStore=n({getState:o.getState,subscribe:o.subscribe,setState:t,destroy:t})}}}return o((()=>{d&&w&&(window.addEventListener("beforeunload",(()=>u.actions.leave())),window.addEventListener("onunload",(()=>u.actions.leave())))}),[w]),t.createElement(l.Provider,{value:u},e)},m=a(l),S=c(l),b=()=>{const t=s(l);if(!t)throw new Error(f);return t.store},g=()=>{const t=s(l);if(!t)throw new Error(f);return t.notifications},v=()=>{const t=s(l);if(!t)throw new Error(f);return t.actions},E=t=>{const e=s(l),[i,n]=r(null);if(!e)throw new Error(f);return o((()=>{if(!e.notifications)return;return e.notifications.onNotification((t=>n(t)),t)}),[e.notifications,t]),i};export{w as HMSRoomProvider,v as useHMSActions,E as useHMSNotifications,S as useHMSStatsStore,m as useHMSStore,g as useHMSVanillaNotifications,b as useHMSVanillaStore};
2
2
  //# sourceMappingURL=HmsRoomProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HmsRoomProvider.js","sources":["../../src/primitives/HmsRoomProvider.ts"],"sourcesContent":[null],"names":["HMSContext","createContext","providerProps","notifications","stats","statsStore","create","getState","subscribe","setState","errFn","destroy","HMSReactiveStore","actions","hmsReactiveStore","getActions","store","Object","assign","getStore","getNotifications","getStats","stats2","useEffect","isBrowser","addEventListener","leave","window","Provider","value","children","useHMSStore","makeHMSStoreHook","useHMSStatsStore","makeHMSStatsStoreHook","useHMSVanillaStore","HMSContextConsumer","useContext","Error","hooksErrorMessage","useHMSVanillaNotifications","onNotification","notification2","setNotification","type","notification"],"mappings":"6TA2BA,MAAAA,EAAAC,EAAA,iGAGG,IAAAC,EAAA,CACH,QAAmB,qBAEwB,4HAOLC,MACVA,cAC1BA,GAQ0FC,IACxFF,EAAyDG,WAAAC,EAAA,CACnDC,SAAQH,EAAKG,SACjBC,UAAUJ,EAAKI,UACfC,SAAAC,EACEC,QAAOD,SAGP,SAKA,IAAAE,KACFV,GACEW,QAAAC,EAAcC,aACfC,MAAAV,EAAAW,OAAAC,OAAAD,OAAAC,OAAA,GAAAJ,EAAAK,YAAA,CAAAV,SAAAC,EAAAC,QAAAD,KACDP,cAAWW,EAAAM,sBAEC,SACCN,EAAiBO,WAC1BnB,EAAAG,WAAeC,EAAA,CACfC,SAAAe,EAAOf,SACRC,UAAEc,EAAAd,UACJC,SAAAC,EACFC,QAAAD,aAIGa,GAAA,KAKAC,WACDC,iBAAC,gBAAA,IAAAvB,EAAAW,QAAAa,UAEFC,OAAAF,iBAAkB,YAAA,IAAAvB,EAAAW,QAAAa,aAEhB,oBACU1B,EAAgB4B,SAAA,CAAAC,MAAA3B,GAAA4B,IAExBC,EAAAC,EAAehC,GACfiC,EAAAC,EAAclC,GACfmC,EAAE,KACJ,MAAAC,EAAAC,EAAArC,GACF,IAAAoC,EACF,MAAA,IAAAE,MAAAC,GAGC,OAAAH,EAAepB,OAEbwB,EAAuB,KACxB,MAAAJ,EAAAC,EAAArC,OACAoC,EAEH,MAAA,UAAaG,GAGf,OAAAH,EAAAjC,sBAGG,MAAAiC,EAAAC,EAAArC,GACG,IAACoC,EAED,UAAuBE,MAAAC,+EAkB1B,mCALA,OAGD,SADsCpC,cAAYsC,gBAAAC,GAAAC,EAAAD,IAAAE,KAEhD,CAAAR,EAAgBjC,cAAAyC,IACjBC"}
1
+ {"version":3,"file":"HmsRoomProvider.js","sources":["../../src/primitives/HmsRoomProvider.ts"],"sourcesContent":[null],"names":["HMSContext","createContext","providerProps","notifications","stats","statsStore","create","getState","subscribe","setState","errFn","destroy","HMSReactiveStore","actions","hmsReactiveStore","getActions","store","Object","assign","getStore","getNotifications","getStats","stats2","useEffect","isBrowser","leaveOnUnload","addEventListener","leave","window","Provider","value","children","useHMSStore","makeHMSStoreHook","useHMSStatsStore","makeHMSStatsStoreHook","useHMSVanillaStore","HMSContextConsumer","useContext","Error","hooksErrorMessage","useHMSVanillaNotifications","onNotification","notification2","setNotification","type","notification"],"mappings":"6TA4BA,MAAAA,EAAAC,EAAA,oHAGG,IAAAC,EAAA,CACH,QAAmB,qBAEwB,4HAOLC,IACzBD,EAAAC,cACHA,GASkFC,IACxFF,EAAyDG,WAAAC,EAAA,CACnDC,SAAQH,EAAKG,SACjBC,UAAUJ,EAAKI,UACfC,SAAAC,EACEC,QAAOD,SAGP,SAKA,IAAAE,KACFV,GACEW,QAAAC,EAAcC,aACfC,MAAAV,EAAAW,OAAAC,OAAAD,OAAAC,OAAA,GAAAJ,EAAAK,YAAA,CAAAV,SAAAC,EAAAC,QAAAD,KACDP,cAAWW,EAAAM,sBAEC,SACCN,EAAiBO,WAC1BnB,EAAAG,WAAeC,EAAA,CACfC,SAAAe,EAAOf,SACRC,UAAEc,EAAAd,UACJC,SAAAC,EACFC,QAAAD,aAIGa,GAAA,KAKAC,GAAAC,WACDC,iBAAC,gBAAA,IAAAxB,EAAAW,QAAAc,UAEFC,OAAAF,iBAAkB,YAAA,IAAAxB,EAAAW,QAAAc,aAEhB,CAAAF,oBACUzB,EAAgB6B,SAAA,CAAAC,MAAA5B,GAAA6B,IAExBC,EAAAC,EAAejC,GACfkC,EAAAC,EAAcnC,GACfoC,EAAE,KACJ,MAAAC,EAAAC,EAAAtC,GACF,IAAAqC,EACF,MAAA,IAAAE,MAAAC,UAGKH,EAAarB,OAEfyB,EAAuB,KACxB,MAAAJ,EAAAC,EAAAtC,GACH,IAAGqC,EAEH,MAAA,UAAaG,GAGf,OAAAH,EAAAlC,sBAGG,MAAAkC,EAAAC,EAAAtC,GACG,IAACqC,EAED,UAAuBE,MAAAC,+EAkB1B,mCALA,OAGD,SADsCrC,cAAYuC,gBAAAC,GAAAC,EAAAD,IAAAE,KAEhD,CAAAR,EAAgBlC,cAAA0C,IACjBC"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "main": "dist/index.cjs.js",
5
5
  "module": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
7
- "version": "0.1.3",
7
+ "version": "0.1.5-alpha.1",
8
8
  "author": "100ms",
9
9
  "license": "MIT",
10
10
  "files": [
@@ -35,10 +35,10 @@
35
35
  "react": ">=17.0.2 <19.0.0"
36
36
  },
37
37
  "dependencies": {
38
- "@100mslive/hms-video-store": "0.3.3",
38
+ "@100mslive/hms-video-store": "0.3.5-alpha.1",
39
39
  "react-intersection-observer": "^8.33.1",
40
40
  "react-resize-detector": "^7.0.0",
41
41
  "zustand": "^3.6.2"
42
42
  },
43
- "gitHead": "ef8d2ac56095c8839261f5979dc08f8c201e8faa"
43
+ "gitHead": "033be647b8abc66b26a87ae9358dbfe1bed1853e"
44
44
  }
@@ -0,0 +1,64 @@
1
+ import {
2
+ HMSPeer,
3
+ HMSRoleName,
4
+ selectAvailableRoleNames,
5
+ selectIsConnectedToRoom,
6
+ selectPeerCount,
7
+ selectPeerMetadata,
8
+ selectPeers,
9
+ selectRemotePeers,
10
+ } from '@100mslive/hms-video-store';
11
+ import { useHMSStore, useHMSVanillaStore } from '../primitives/HmsRoomProvider';
12
+
13
+ export interface useParticipantsResult {
14
+ /**
15
+ * list of participants that match the given filters
16
+ */
17
+ participants: HMSPeer[];
18
+ /**
19
+ * Total number of participants in the room
20
+ */
21
+ peerCount: number;
22
+ /**
23
+ * is joined in the room
24
+ */
25
+ isConnected: boolean;
26
+ /**
27
+ * role names with atleast one participant present with that role
28
+ */
29
+ rolesWithParticipants: HMSRoleName[];
30
+ }
31
+
32
+ export type useParticipantsParams = {
33
+ /** To filter by particular role */
34
+ role: HMSRoleName;
35
+ /**
36
+ * To filter by particular by metadata. only supports { isHandRaised: true } for now
37
+ * @beta
38
+ */
39
+ metadata: Record<string, any>;
40
+ };
41
+
42
+ /**
43
+ * This can be used to get the total count of participants in the room, participants
44
+ * filtered by role or metadata with isHandRaised or the entire participants if no params are passed
45
+ * @param {useParticipantsParams} params
46
+ * @returns {useParticipantsResult}
47
+ */
48
+ export const useParticipants = (params?: useParticipantsParams) => {
49
+ const isConnected = useHMSStore(selectIsConnectedToRoom);
50
+ const peerCount = useHMSStore(selectPeerCount);
51
+ const availableRoles = useHMSStore(selectAvailableRoleNames);
52
+ let participantList = useHMSStore(isConnected ? selectPeers : selectRemotePeers);
53
+ const rolesWithParticipants = Array.from(new Set(participantList.map(peer => peer.roleName)));
54
+ const vanillaStore = useHMSVanillaStore();
55
+ if (params?.metadata?.isHandRaised) {
56
+ participantList = participantList.filter(peer => {
57
+ return vanillaStore.getState(selectPeerMetadata(peer.id)).isHandRaised;
58
+ });
59
+ }
60
+ if (params?.role && availableRoles.includes(params.role)) {
61
+ participantList = participantList.filter(peer => peer.roleName === params.role);
62
+ }
63
+ return { participants: participantList, isConnected, peerCount, rolesWithParticipants };
64
+ };
package/src/index.ts CHANGED
@@ -19,6 +19,7 @@ export { useParticipantList } from './hooks/useParticipantList';
19
19
  export { useRecordingStreaming } from './hooks/useRecordingStreaming';
20
20
  export { useAutoplayError } from './hooks/useAutoplayError';
21
21
  export { useCustomEvent } from './hooks/useCustomEvent';
22
+ export { useParticipants } from './hooks/useParticipants';
22
23
  // types
23
24
  export type { hooksErrHandler } from './hooks/types';
24
25
  export type { usePreviewInput, usePreviewResult } from './hooks/usePreviewJoin';
@@ -29,6 +30,7 @@ export type { useScreenShareResult } from './hooks/useScreenShare';
29
30
  export type { useRemoteAVToggleResult } from './hooks/useRemoteAVToggle';
30
31
  export type { useRecordingStreamingResult } from './hooks/useRecordingStreaming';
31
32
  export type { useParticipantListResult } from './hooks/useParticipantList';
33
+ export type { useParticipantsResult, useParticipantsParams } from './hooks/useParticipants';
32
34
  export type { useVideoInput, useVideoOutput } from './hooks/useVideo';
33
35
  export type { useAutoplayErrorResult } from './hooks/useAutoplayError';
34
36
  export type { useCustomEventInput, useCustomEventResult } from './hooks/useCustomEvent';
@@ -23,6 +23,7 @@ export interface HMSRoomProviderProps {
23
23
  * if true this will enable webrtc stats collection
24
24
  */
25
25
  isHMSStatsOn?: boolean;
26
+ leaveOnUnload?: boolean;
26
27
  }
27
28
 
28
29
  /**
@@ -46,6 +47,7 @@ export const HMSRoomProvider: React.FC<PropsWithChildren<HMSRoomProviderProps>>
46
47
  notifications,
47
48
  stats,
48
49
  isHMSStatsOn = false,
50
+ leaveOnUnload = true,
49
51
  }) => {
50
52
  if (!providerProps) {
51
53
  // adding a dummy function for setstate and destroy because zustan'd create expects them
@@ -98,11 +100,11 @@ export const HMSRoomProvider: React.FC<PropsWithChildren<HMSRoomProviderProps>>
98
100
  }
99
101
 
100
102
  useEffect(() => {
101
- if (isBrowser) {
103
+ if (isBrowser && leaveOnUnload) {
102
104
  window.addEventListener('beforeunload', () => providerProps.actions.leave());
103
105
  window.addEventListener('onunload', () => providerProps.actions.leave());
104
106
  }
105
- }, []);
107
+ }, [leaveOnUnload]);
106
108
 
107
109
  return React.createElement(HMSContext.Provider, { value: providerProps }, children);
108
110
  };