@100mslive/react-sdk 0.3.1-alpha.8 → 0.4.1-alpha.0
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/README.md +13 -61
- package/dist/hooks/useCustomEvent.d.ts +16 -1
- package/dist/hooks/useCustomEvent.js +1 -1
- package/dist/hooks/useCustomEvent.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/primitives/HmsRoomProvider.d.ts +2 -2
- package/dist/primitives/HmsRoomProvider.js +1 -1
- package/dist/primitives/HmsRoomProvider.js.map +1 -1
- package/package.json +4 -4
- package/src/hooks/useCustomEvent.ts +26 -5
- package/src/primitives/HmsRoomProvider.ts +9 -8
package/README.md
CHANGED
|
@@ -22,64 +22,16 @@ These are hooks wrapper over the sdk things.
|
|
|
22
22
|
- useHMSStatsStore - to get webrtc related stats
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
###
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
-
|
|
37
|
-
|
|
38
|
-
- no errors should be swallowed by the hook, if a function call can give error, take
|
|
39
|
-
an explicit handleError to call.
|
|
40
|
-
- make sure to use await for async calls, else try catch won't have an effect
|
|
41
|
-
- Pull all usage of hooks on top before defining any functions.
|
|
42
|
-
- Prefer IDs to objects for both input arguments and in result object. This
|
|
43
|
-
facilitates writing optimised code on the app layer, as objects are prone to change
|
|
44
|
-
leading to unnecessary re renders on different levels.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
### TODO Planned Hooks
|
|
48
|
-
|
|
49
|
-
#### Breakout Rooms
|
|
50
|
-
|
|
51
|
-
```ts
|
|
52
|
-
function useBreakoutRoles({filter: regexOrArray, filterOut: regexOrArray}) {
|
|
53
|
-
{
|
|
54
|
-
allRoles, // all breakout roles options for this user
|
|
55
|
-
currRole,
|
|
56
|
-
switchToRole() // takes in a role name
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
#### Waiting Room
|
|
62
|
-
|
|
63
|
-
On the guest side who joins a waiting room -
|
|
64
|
-
```ts
|
|
65
|
-
// onconfirm if role change is not forced, fn returns true/false
|
|
66
|
-
// onapprovval - use this to play a tone maybe
|
|
67
|
-
function useWaitingRoom({waitingRoomRole, postApprovalRole, onApproval}) {
|
|
68
|
-
{
|
|
69
|
-
amIInWaitingRoom,
|
|
70
|
-
isConfirmationPending, // boolean, true when role change is not forced
|
|
71
|
-
confirmOrDeny(confirm) // pass in true or false
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
On the host side who needs to see who is in waiting room and let them in.
|
|
77
|
-
```ts
|
|
78
|
-
function useWaitingRoomApprover({waitingRoomRole, postApprovalRole, approverRoles: []}) {
|
|
79
|
-
{
|
|
80
|
-
peersInWaitingRoom,
|
|
81
|
-
approvePeer = (peerID, ask) // force role change to postApprovalRole
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
25
|
+
### Helpful Hooks
|
|
26
|
+
|
|
27
|
+
- useVideo - attaching and detaching video based on trackId
|
|
28
|
+
- useVideoList - helpful to build a paginated gallery view of video tiles
|
|
29
|
+
- useScreenShare - to toggle screenshare
|
|
30
|
+
- useCustomEvent - to add [custom events](https://www.100ms.live/docs/javascript/v2/features/chat#custom-events)
|
|
31
|
+
- useDevices - returns a list of all A/V devices
|
|
32
|
+
- useParticipants - get count of participants, participants filtered by role or metadata
|
|
33
|
+
- usePreviewJoin - implementing preview + join
|
|
34
|
+
- useAVToggle - to toggle mute/unmute for audio and video
|
|
35
|
+
- useRemoteAVToggle - to toggle remote mute/unmute + audio volume changer on tile level
|
|
36
|
+
- useAutoplayError - unblock browser autoplay block
|
|
37
|
+
- useAudioLevelStyles - apply css properties on element based on it's audio level
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { HMSPeerID, HMSRoleName } from '@100mslive/hms-video-store';
|
|
1
2
|
import { hooksErrHandler } from './types';
|
|
2
3
|
export interface useCustomEventInput<T> {
|
|
3
4
|
/**
|
|
@@ -17,11 +18,25 @@ export interface useCustomEventInput<T> {
|
|
|
17
18
|
*/
|
|
18
19
|
handleError?: hooksErrHandler;
|
|
19
20
|
}
|
|
21
|
+
export interface EventReceiver {
|
|
22
|
+
peerId?: HMSPeerID;
|
|
23
|
+
roleNames?: HMSRoleName[];
|
|
24
|
+
}
|
|
20
25
|
export interface useCustomEventResult<T> {
|
|
21
26
|
/**
|
|
22
27
|
* sends the event data to others in the room who will receive it in onEvent
|
|
28
|
+
*
|
|
29
|
+
* @example to send message to peers of specific roles
|
|
30
|
+
* ```js
|
|
31
|
+
* sendEvent(data, {roleNames: ['host','guest']})
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @example to send message to single peer
|
|
35
|
+
* ```js
|
|
36
|
+
* sendEvent(data, {peerId})
|
|
37
|
+
* ```
|
|
23
38
|
*/
|
|
24
|
-
sendEvent: (data: T) => void;
|
|
39
|
+
sendEvent: (data: T, receiver?: EventReceiver) => void;
|
|
25
40
|
}
|
|
26
41
|
/**
|
|
27
42
|
* A generic function to implement [custom events](https://www.100ms.live/docs/javascript/v2/features/chat#custom-events) in your UI.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{__awaiter as
|
|
1
|
+
import{__awaiter as e}from"../node_modules/tslib/tslib.es6.js";import{useHMSActions as o,useHMSVanillaNotifications as s}from"../primitives/HmsRoomProvider.js";import{useEffect as r,useCallback as t}from"react";import{HMSNotificationTypes as i}from"@100mslive/hms-video-store";import{logErrorHandler as n}from"../utils/commons.js";const d=({type:d,onEvent:m,handleError:a=n})=>{const l=o(),c=s();r((()=>{l.ignoreMessageTypes([d])}),[l,d]),r((()=>{if(!c)return;return c.onNotification((e=>{const o=e.data;if(o&&o.type===d)try{const e=JSON.parse(o.message);null==m||m(e)}catch(e){a(e,"handleCustomEvent")}}),i.NEW_MESSAGE)}),[c,d,m,a]);return{sendEvent:t(((o,s)=>e(void 0,void 0,void 0,(function*(){try{const e=JSON.stringify(o||"");s&&Array.isArray(null==s?void 0:s.roleNames)?yield l.sendGroupMessage(e,s.roleNames,d):"string"==typeof(null==s?void 0:s.peerId)?yield l.sendDirectMessage(e,s.peerId,d):yield l.sendBroadcastMessage(e,d),null==m||m(o)}catch(e){a(e,"sendCustomEvent")}}))),[l,a,m,d])}};export{d as useCustomEvent};
|
|
2
2
|
//# sourceMappingURL=useCustomEvent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCustomEvent.js","sources":["../../src/hooks/useCustomEvent.ts"],"sourcesContent":[null],"names":["useCustomEvent","type","onEvent","handleError","logErrorHandler","actions","useHMSActions","notifications","useHMSVanillaNotifications","useEffect","ignoreMessageTypes","onNotification","notification","msg","data","JSON","parse","message","err","HMSNotificationTypes","NEW_MESSAGE","sendEvent","useCallback","__awaiter","dataStr","stringify","sendBroadcastMessage"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useCustomEvent.js","sources":["../../src/hooks/useCustomEvent.ts"],"sourcesContent":[null],"names":["useCustomEvent","type","onEvent","handleError","logErrorHandler","actions","useHMSActions","notifications","useHMSVanillaNotifications","useEffect","ignoreMessageTypes","onNotification","notification","msg","data","JSON","parse","message","err","HMSNotificationTypes","NEW_MESSAGE","sendEvent","useCallback","receiver","__awaiter","dataStr","stringify","Array","isArray","roleNames","sendGroupMessage","peerId","sendDirectMessage","sendBroadcastMessage"],"mappings":"2UAoDO,MAAMA,EAAiB,EAC5BC,OACAC,UACAC,cAAcC,MAEd,MAAMC,EAAUC,IACVC,EAAgBC,IAEtBC,GAAU,KAERJ,EAAQK,mBAAmB,CAACT,GAAA,GAC3B,CAACI,EAASJ,IAGbQ,GAAU,KACR,IAAKF,EACH,OAaK,OAXaA,EAAcI,gBAA8BC,IAC9D,MAAMC,EAAMD,EAAaE,KACrB,GAAAD,GAAOA,EAAIZ,OAASA,EAClB,IACI,MAAAa,EAAOC,KAAKC,MAAMH,EAAII,SAC5Bf,SAAAA,EAAUY,EAEgB,CAFhB,MACHI,GACPf,EAAYe,EAAc,oBAAA,CAAA,GAG7BC,EAAqBC,YACjB,GACN,CAACb,EAAeN,EAAMC,EAASC,IAsBlC,MAAO,CAAEkB,UAnBSC,GAChB,CAAOR,EAASS,IAA4BC,OAAA,OAAA,OAAA,GAAA,YACtC,IACI,MAAAC,EAAUV,KAAKW,UAAUZ,GAAQ,IACnCS,GAAYI,MAAMC,QAAQL,aAAA,EAAAA,EAAUM,iBAChCxB,EAAQyB,iBAAiBL,EAASF,EAASM,UAAW5B,GACvB,8BAAb,EAARsB,EAAUQ,cACpB1B,EAAQ2B,kBAAkBP,EAASF,EAASQ,OAAQ9B,SAEpDI,EAAQ4B,qBAAqBR,EAASxB,GAE9CC,SAAAA,EAAUY,EAEgB,CAFhB,MACHI,GACPf,EAAYe,EAAc,kBAAA,CAAA,KAG9B,CAACb,EAASF,EAAaD,EAASD,IAGzB"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
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,v=e.createContext(null);let f;const p=(m=v,(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)}}(v),w=()=>{const t=e.useContext(v);if(!t)throw new Error(h);return t.store},S=()=>{const t=e.useContext(v);if(!t)throw new Error(h);return t.notifications},P=()=>{const t=e.useContext(v);if(!t)throw new Error(h);return t.actions},b=t=>{const i=e.useContext(v),[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};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,v=g*(n.width/n.height),f=Math.floor(e/v);if(r=v,a=g,u=Math.min(i,h*f),d=i%(h*f),c=d>0&&i>h*f,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,v=g/(n.width/n.height);v>t&&(v=t,g=v/(n.height/n.width));const f=Math.floor(t/v);if(a=v,r=g,u=Math.min(i,f*h),d=i%(f*h),c=d>0&&i>f*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 C;exports.DeviceType=void 0,(C=exports.DeviceType||(exports.DeviceType={})).videoInput="videoInput",C.audioInput="audioInput",C.audioOutput="audioOutput";exports.HMSRoomProvider=({children:i,actions:o,store:n,notifications:r,stats:a,isHMSStatsOn:s=!1,leaveOnUnload:u=!0})=>{if(!f){const e=()=>{throw new Error("modifying store is not allowed")};if(o&&n)f={actions:o,store:c.default(Object.assign(Object.assign({},n),{setState:e,destroy:e}))},r&&(f.notifications=r),a&&(f.statsStore=c.default({getState:a.getState,subscribe:a.subscribe,setState:e,destroy:e}));else{const i=new t.HMSReactiveStore;if(f={actions:i.getActions(),store:c.default(Object.assign(Object.assign({},i.getStore()),{setState:e,destroy:e})),notifications:i.getNotifications()},s){const t=i.getStats();f.statsStore=c.default({getState:t.getState,subscribe:t.subscribe,setState:e,destroy:e})}}}return e.useEffect((()=>{g&&u&&(window.addEventListener("beforeunload",(()=>f.actions.leave())),window.addEventListener("onunload",(()=>f.actions.leave())))}),[u]),l.default.createElement(v.Provider,{value:f},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=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=R})=>{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=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=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.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=w();if((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))),null==e?void 0:e.search){const t=e.search.toLowerCase();a=a.filter((e=>{var i;return(null===(i=e.roleName)||void 0===i?void 0:i.toLowerCase().includes(t))||e.name.toLowerCase().includes(t)}))}return{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]),v=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((()=>E(void 0,void 0,void 0,(function*(){if(o)try{yield c.join(g)}catch(e){r(e,"join")}}))),[c,g,r,o]),isConnected:d,preview:v}},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]),v=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?v: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,threshold:r=.5})=>{const a=P(),s=e.useRef(null),l=p(t.selectTrackByID(i)),{ref:c,inView:u}=o.useInView({threshold:r}),h=e.useCallback((e=>{e&&(s.current=e,c(e))}),[c]);return e.useEffect((()=>{E(void 0,void 0,void 0,(function*(){s.current&&(null==l?void 0:l.id)&&(u&&l.enabled&&!1!==n?yield a.attachVideo(l.id,s.current):yield a.detachVideo(l.id,s.current))}))}),[a,u,s,null==l?void 0:l.id,null==l?void 0:l.enabled,null==l?void 0:l.deviceID,null==l?void 0:l.plugins,n]),e.useEffect((()=>()=>{E(void 0,void 0,void 0,(function*(){if(s.current&&l)try{yield a.detachVideo(l.id,s.current)}catch(e){d.w("detach video error for track",l.id,e)}}))}),[]),{videoRef:h}},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(),v=((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,c),f=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}(v.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,v]),p=v.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,u),maxTileCount:o,maxRowCount:a,maxColCount:r,aspectRatio:f})),[p,d,h,o,a,r,f,u]);return{pagesWithTiles:e.useMemo((()=>k({elements:v,tilesInFirstPage:m,onlyOnePage:!1,isLastPageDifferentFromFirstPage:E,defaultWidth:y,defaultHeight:S,lastPageWidth:P,lastPageHeight:b})),[v,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]}})}));
|
|
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"),r=require("react-resize-detector");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a,s,l=n(e),c=n(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,v=e.createContext(null);let f;const p=(m=v,(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 r=e.useContext(t);if(!r)throw new Error(h);const n=r.statsStore;return null==n?void 0:n(i,o)}}(v),w=()=>{const t=e.useContext(v);if(!t)throw new Error(h);return t.store},S=()=>{const t=e.useContext(v);if(!t)throw new Error(h);return t.notifications},P=()=>{const t=e.useContext(v);if(!t)throw new Error(h);return t.actions},b=t=>{const i=e.useContext(v),[o,r]=e.useState(null);if(!i)throw new Error(h);return e.useEffect((()=>{if(!i.notifications)return;return i.notifications.onNotification((e=>{r(e)}),t)}),[i.notifications,t]),o};function E(e,t,i,o){return new(i||(i=Promise))((function(r,n){function a(e){try{l(o.next(e))}catch(e){n(e)}}function s(e){try{l(o.throw(e))}catch(e){n(e)}}function l(e){var t;e.done?r(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")}})),I=({elements:e,tilesInFirstPage:t,onlyOnePage:i,isLastPageDifferentFromFirstPage:o,defaultWidth:r,defaultHeight:n,lastPageWidth:a,lastPageHeight:s})=>{const l=((e,t,i)=>e.reduce(((e,o,r)=>{const n=Math.floor(r/t);return n>0&&i||(e[n]||(e[n]=[]),e[n].push(o)),e}),[]))(e,t,i);return l.map(((e,t)=>e.map((e=>{const i=t===l.length-1,c=o&&i?a:r,u=o&&i?s:n;return Object.assign(Object.assign({},e),{height:u,width:c})}))))};const k=(e,t,i,o,r)=>{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 n=o&&r&&o/r;if(void 0!==n&&isNaN(n))throw new Error("Aspect ratio must be a number");let a={area:0,cols:0,rows:0,width:0,height:0};if(void 0!==n)for(let o=i;o>0;o+=-1){const r=Math.ceil(i/o);let s,l;e/(o*n)<=t/r?(s=e/o,l=s/n):(l=t/r,s=l*n);const c=s*l;c>a.area&&(a={area:c,width:s,height:l,rows:r,cols:o})}return a};function M({count:e,parentWidth:t,parentHeight:i,maxTileCount:o,maxRowCount:r,maxColCount:n,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:r})=>{let n=0,a=0,s=0,l=0,c=!1,u=0,d=0;const{width:h,height:g}=k(e,t,Math.min(i,o),r.width,r.height);if(n=h,a=g,u=Math.min(i,o),d=i%o,c=d>0&&i>o,c){const{width:i,height:o}=k(e,t,d,r.width,r.height);s=i,l=o}return{tilesInFirstPage:u,defaultWidth:n,defaultHeight:a,lastPageWidth:s,lastPageHeight:l,isLastPageDifferentFromFirstPage:c}})({parentWidth:t,parentHeight:i,count:e,maxCount:o,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:r})=>{let n=0,a=0,s=0,l=0,c=!1,u=0,d=0;const h=Math.min(Math.ceil(Math.sqrt(i*(r.width/r.height)/(e/t))),o),g=t/h,v=g*(r.width/r.height),f=Math.floor(e/v);if(n=v,a=g,u=Math.min(i,h*f),d=i%(h*f),c=d>0&&i>h*f,c){const i=t/Math.min(Math.ceil(Math.sqrt(d*(r.width/r.height)/(e/t))),o);l=i,s=i*(r.width/r.height)}return{tilesInFirstPage:u,defaultWidth:n,defaultHeight:a,lastPageWidth:s,lastPageHeight:l,isLastPageDifferentFromFirstPage:c}})({parentWidth:t,parentHeight:i,count:e,maxCount:r,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:r})=>{let n=0,a=0,s=0,l=0,c=!1,u=0,d=0;const h=Math.min(Math.ceil(Math.sqrt(i*(e/t)/(r.width/r.height))),o);let g=e/h,v=g/(r.width/r.height);v>t&&(v=t,g=v/(r.height/r.width));const f=Math.floor(t/v);if(a=v,n=g,u=Math.min(i,f*h),d=i%(f*h),c=d>0&&i>f*h,c){let i=e/Math.min(Math.ceil(Math.sqrt(d*(e/t)/(r.width/r.height))),o),n=i/(r.width/r.height);n>t&&(n=t,i=n/(r.height/r.width)),l=n,s=i}return{tilesInFirstPage:u,defaultWidth:n,defaultHeight:a,lastPageWidth:s,lastPageHeight:l,isLastPageDifferentFromFirstPage:c}})({parentWidth:t,parentHeight:i,count:e,maxCount:n,aspectRatio:a}));else{const{width:o,height:r}=k(t,i,e,a.width,a.height);s=o,l=r,h=e}return{tilesInFirstPage:h,defaultWidth:s,defaultHeight:l,lastPageWidth:c,lastPageHeight:u,isLastPageDifferentFromFirstPage:d}}const H={width:1,height:1};var C;exports.DeviceType=void 0,(C=exports.DeviceType||(exports.DeviceType={})).videoInput="videoInput",C.audioInput="audioInput",C.audioOutput="audioOutput";exports.HMSRoomProvider=({children:i,actions:o,store:r,notifications:n,stats:a,isHMSStatsOn:s=!1,leaveOnUnload:u=!0})=>{if(!f){const e=()=>{throw new Error("modifying store is not allowed")};if(o&&r)f={actions:o,store:c.default(Object.assign(Object.assign({},r),{setState:e,destroy:e}))},n&&(f.notifications=n),a&&(f.statsStore=c.default({getState:a.getState,subscribe:a.subscribe,setState:e,destroy:e}));else{const i=new t.HMSReactiveStore;if(f={actions:i.getActions(),store:c.default(Object.assign(Object.assign({},i.getStore()),{setState:e,destroy:e})),notifications:i.getNotifications()},s){const t=i.getStats();f.statsStore=c.default({getState:t.getState,subscribe:t.subscribe,setState:e,destroy:e})}}}return e.useEffect((()=>{g&&u&&(window.addEventListener("beforeunload",(()=>f.actions.leave())),window.addEventListener("onunload",(()=>f.actions.leave())))}),[u]),l.default.createElement(v.Provider,{value:f},i)},exports.throwErrorHandler=e=>{throw e},exports.useAVToggle=(i=R)=>{const o=p(t.selectIsLocalAudioEnabled),r=p(t.selectIsLocalVideoEnabled),n=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(!r)}catch(e){i(e,"toggleVideo")}}))),[a,r,i]);return{isLocalAudioEnabled:o,isLocalVideoEnabled:r,toggleAudio:(null==n?void 0:n.audio)?s:void 0,toggleVideo:(null==n?void 0:n.video)?l:void 0}},exports.useAudioLevelStyles=function({trackId:i,getStyle:o,ref:r}){const n=w();e.useEffect((()=>n.subscribe((e=>{if(!r.current)return;const t=o(e);for(const e in t)r.current.style[e]=t[e]}),t.selectTrackAudioByID(i))),[o,r,n,i])},exports.useAutoplayError=()=>{const i=b(t.HMSNotificationTypes.ERROR),[o,r]=e.useState(""),n=P(),a=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){yield n.unblockAudio()}))),[n]);return e.useEffect((()=>{3008===(null==i?void 0:i.data.code)&&r(null==i?void 0:i.data.message)}),[i]),{error:o,unblockAudio:a,resetError:()=>r("")}},exports.useCustomEvent=({type:i,onEvent:o,handleError:r=R})=>{const n=P(),a=S();e.useEffect((()=>{n.ignoreMessageTypes([i])}),[n,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){r(e,"handleCustomEvent")}}),t.HMSNotificationTypes.NEW_MESSAGE)}),[a,i,o,r]);return{sendEvent:e.useCallback(((e,t)=>E(void 0,void 0,void 0,(function*(){try{const r=JSON.stringify(e||"");t&&Array.isArray(null==t?void 0:t.roleNames)?yield n.sendGroupMessage(r,t.roleNames,i):"string"==typeof(null==t?void 0:t.peerId)?yield n.sendDirectMessage(r,t.peerId,i):yield n.sendBroadcastMessage(r,i),null==o||o(e)}catch(e){r(e,"sendCustomEvent")}}))),[n,r,o,i])}},exports.useDevices=(i=R)=>{const o=P(),r=p(t.selectDevices),n=p(t.selectLocalMediaSettings),a=p(t.selectIsAllowedToPublish),s={[exports.DeviceType.audioOutput]:n.audioOutputDeviceId},l={[exports.DeviceType.audioOutput]:r.audioOutput};a.video&&(l[exports.DeviceType.videoInput]=r.videoInput,s[exports.DeviceType.videoInput]=n.videoInputDeviceId),a.audio&&(l[exports.DeviceType.audioInput]=r.audioInput,s[exports.DeviceType.audioInput]=n.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=S,exports.useHMSVanillaStore=w,exports.useParticipantList=()=>{const i=p(t.selectIsConnectedToRoom),o=p(i?t.selectPeers:t.selectRemotePeers),r=p(t.selectPeerCount),n=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(n),participantsByRoles:n,peerCount:r,isConnected:i}},exports.useParticipants=e=>{var i;const o=p(t.selectIsConnectedToRoom),r=p(t.selectPeerCount),n=p(t.selectAvailableRoleNames);let a=p(o?t.selectPeers:t.selectRemotePeers);const s=Array.from(new Set(a.map((e=>e.roleName)))),l=w();if((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)&&n.includes(e.role)&&(a=a.filter((t=>t.roleName===e.role))),null==e?void 0:e.search){const t=e.search.toLowerCase();a=a.filter((e=>{var i;return(null===(i=e.roleName)||void 0===i?void 0:i.toLowerCase().includes(t))||e.name.toLowerCase().includes(t)}))}return{participants:a,isConnected:o,peerCount:r,rolesWithParticipants:s}},exports.usePreviewJoin=({name:i="",token:o,metadata:r,handleError:n=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:r,rememberDeviceSelection:!0,settings:s,initEndpoint:a,captureNetworkQualityInPreview:l})),[i,o,r,a,s,l]),v=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){n(e,"preview")}}}))),[c,n,o,u,g,d]);return{enableJoin:h,join:e.useCallback((()=>E(void 0,void 0,void 0,(function*(){if(o)try{yield c.join(g)}catch(e){n(e,"join")}}))),[c,g,n,o]),isConnected:d,preview:v}},exports.useRecordingStreaming=()=>{const e=p(t.selectRecordingState),i=p(t.selectRTMPState),o=p(t.selectHLSState),r=e.server.running,n=e.browser.running,a=e.hls.running,s=r||n||a;return{isServerRecordingOn:r,isBrowserRecordingOn:n,isHLSRecordingOn:a,isStreamingOn:o.running||i.running,isHLSRunning:o.running,isRTMPRunning:i.running,isRecordingOn:s}},exports.useRemoteAVToggle=(i,o,r=R)=>{const n=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(n,a,r)}))),[n,a,r]),g=e.useCallback((()=>E(void 0,void 0,void 0,(function*(){yield x(n,s,r)}))),[n,r,s]),v=e.useCallback((e=>{a&&n.setVolume(e,a.id)}),[n,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?v:void 0}},exports.useScreenShare=(i=R)=>{var o,r;const n=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 n.setScreenShareEnabled(!a,e)}catch(e){i(e,"toggleScreenShare")}}))),[n,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===(r=null==l?void 0:l.audio)||void 0===r?void 0:r.id,toggleScreenShare:c}},exports.useVideo=({trackId:i,attach:r,threshold:n=.5})=>{const a=P(),s=e.useRef(null),l=p(t.selectTrackByID(i)),{ref:c,inView:u}=o.useInView({threshold:n}),h=e.useCallback((e=>{e&&(s.current=e,c(e))}),[c]);return e.useEffect((()=>{E(void 0,void 0,void 0,(function*(){s.current&&(null==l?void 0:l.id)&&(u&&l.enabled&&!1!==r?yield a.attachVideo(l.id,s.current):yield a.detachVideo(l.id,s.current))}))}),[a,u,s,null==l?void 0:l.id,null==l?void 0:l.enabled,null==l?void 0:l.deviceID,null==l?void 0:l.plugins,r]),e.useEffect((()=>()=>{E(void 0,void 0,void 0,(function*(){if(s.current&&l)try{yield a.detachVideo(l.id,s.current)}catch(e){d.w("detach video error for track",l.id,e)}}))}),[]),{videoRef:h}},exports.useVideoList=({peers:i,maxTileCount:o,maxColCount:n,maxRowCount:a,includeScreenShareForPeer:s=(()=>!1),aspectRatio:l=H,filterNonPublishingPeers:c=!0,offsetY:u=0})=>{const{width:d=0,height:h=0,ref:g}=r.useResizeDetector(),v=((e,t,i,o=!0)=>{if(!e||!t||!i)return[];const r=[];for(const n of e)if(void 0===n.videoTrack&&n.audioTrack&&t[n.audioTrack]?r.push({peer:n}):n.videoTrack&&t[n.videoTrack]?r.push({track:t[n.videoTrack],peer:n}):o||r.push({peer:n}),n.auxiliaryTracks.length>0&&n.auxiliaryTracks.forEach((e=>{const i=t[e];"video"===(null==i?void 0:i.type)&&"regular"===(null==i?void 0:i.source)&&r.push({track:i,peer:n})})),i(n)&&n.auxiliaryTracks.length>0){const e=n.auxiliaryTracks.find((e=>{const i=t[e];return"video"===(null==i?void 0:i.type)&&"screen"===(null==i?void 0:i.source)}));e&&r.push({track:t[e],peer:n})}return r})(i,w().getState(t.selectTracksMap),s,c),f=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 r=0;r<e.length;r++){const n=e[r];null===t[n]?t[n]=1:t[n]++,t[n]>o&&(i=n,o=t[n])}return i}(v.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,v]),p=v.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,u),maxTileCount:o,maxRowCount:a,maxColCount:n,aspectRatio:f})),[p,d,h,o,a,n,f,u]);return{pagesWithTiles:e.useMemo((()=>I({elements:v,tilesInFirstPage:m,onlyOnePage:!1,isLastPageDifferentFromFirstPage:E,defaultWidth:y,defaultHeight:S,lastPageWidth:P,lastPageHeight:b})),[v,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]}})}));
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -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/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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\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","data","this","log","VERBOSE","DEBUG","INFO","WARN","ERROR","level","valueOf","console","debug","info","warn","error","hooksErrorMessage","isBrowser","window","HMSContext","createContext","providerProps","useHMSStore","hmsContext","selector","equalityFn","w","HMSContextConsumer","useContext","Error","useStore","store","useHMSStatsStore","statsStore","makeHMSStatsStoreHook","useHMSVanillaStore","useHMSVanillaNotifications","notifications","useHMSActions","actions","useHMSNotifications","type","notification","setNotification","useState","useEffect","onNotification","notification2","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","logErrorHandler","err","method","toggleTrackEnabled","track","handleError","setRemoteTrackEnabled","id","enabled","chunkElements","elements","tilesInFirstPage","onlyOnePage","isLastPageDifferentFromFirstPage","defaultWidth","defaultHeight","lastPageWidth","lastPageHeight","chunks","chunkSize","reduce","resultArray","tile","index","chunkIndex","Math","floor","push","chunk","map","ch","page","element","isLastPage","width","height","assign","largestRect","containerWidth","containerHeight","numRects","Number","isInteger","aspectRatio","isNaN","best","area","cols","rows","ceil","width2","height2","count","parentWidth","parentHeight","maxTileCount","maxRowCount","maxColCount","maxCount","tilesinLastPage","initialWidth","initialHeight","min","remWidth","remHeight","getTileSizesWithPageConstraint","sqrt","getTileSizesWithRowConstraint","getTileSizesWithColConstraint","DEFAULTS","DeviceType2","DeviceType","children","stats","isHMSStatsOn","leaveOnUnload","errFn","create","setState","destroy","getState","subscribe","hmsReactiveStore","HMSReactiveStore","getActions","getStore","getNotifications","stats2","getStats","addEventListener","leave","React","createElement","Provider","isLocalAudioEnabled","selectIsLocalAudioEnabled","isLocalVideoEnabled","selectIsLocalVideoEnabled","isAllowedToPublish","selectIsAllowedToPublish","toggleAudio","useCallback","setLocalAudioEnabled","toggleVideo","setLocalVideoEnabled","audio","video","trackId","getStyle","ref","current","styles","key","style","selectTrackAudioByID","HMSNotificationTypes","setError","unblockAudio","code","message","resetError","onEvent","ignoreMessageTypes","msg","JSON","parse","NEW_MESSAGE","sendEvent","dataStr","stringify","sendBroadcastMessage","sdkAllDevices","selectDevices","sdkSelectedDevices","selectLocalMediaSettings","selectedDeviceIDs","audioOutput","audioOutputDeviceId","allDevices","videoInput","videoInputDeviceId","audioInput","audioInputDeviceId","updateDevice","deviceType","deviceId","setAudioSettings","setVideoSettings","setAudioOutputDevice","isConnected","selectIsConnectedToRoom","participantList","selectPeers","selectRemotePeers","peerCount","selectPeerCount","participantsByRoles","useMemo","groupByRoles","peers","Array","isArray","res","peer","roleName","roles","params","availableRoles","selectAvailableRoleNames","rolesWithParticipants","from","Set","vanillaStore","_a","metadata","isHandRaised","filter","selectPeerMetadata","role","includes","search","toLowerCase","_a2","name","participants","token","initEndpoint","initialSettings","captureNetworkQualityInPreview","roomState","selectRoomState","enableJoin","HMSRoomState","Preview","config","userName","authToken","metaData","rememberDeviceSelection","settings","preview","Disconnected","join","recording","selectRecordingState","rtmp","selectRTMPState","hls","selectHLSState","isServerRecordingOn","server","running","isBrowserRecordingOn","browser","isHLSRecordingOn","isRecordingOn","isStreamingOn","isHLSRunning","isRTMPRunning","audioTrackId","videoTrackId","audioTrack","selectTrackByID","videoTrack","volume","selectAudioTrackVolume","permissions","selectPermissions","canToggleVideo","mute","unmute","canToggleAudio","setVolume","volume2","isAudioEnabled","isVideoEnabled","source","amIScreenSharing","selectIsLocalScreenShared","screenSharePeer","selectPeerScreenSharing","screenShare","selectScreenSharesByPeerId","toggleScreenShare","audioOnly","setScreenShareEnabled","screenSharingPeerId","screenSharingPeerName","screenShareVideoTrackId","screenShareAudioTrackId","_b","attach","threshold","videoRef","useRef","inViewRef","inView","useInView","setRefs","node","attachVideo","detachVideo","deviceID","plugins","includeScreenShareForPeer","filterNonPublishingPeers","offsetY","useResizeDetector","tracksWithPeer","tracks","peerTiles","auxiliaryTracks","forEach","screenShareTrackID","find","trackID","getVideoTracksFromPeers","selectTracksMap","finalAspectRatio","array","modeMap","maxEl","el","mode","calculateLayoutSizes","pagesWithTiles"],"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 var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\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\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\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","data","this","log","VERBOSE","DEBUG","INFO","WARN","ERROR","level","valueOf","console","debug","info","warn","error","hooksErrorMessage","isBrowser","window","HMSContext","createContext","providerProps","useHMSStore","hmsContext","selector","equalityFn","w","HMSContextConsumer","useContext","Error","useStore","store","useHMSStatsStore","statsStore","makeHMSStatsStoreHook","useHMSVanillaStore","useHMSVanillaNotifications","notifications","useHMSActions","actions","useHMSNotifications","type","notification","setNotification","useState","useEffect","onNotification","notification2","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","e","rejected","result","done","then","apply","logErrorHandler","err","method","toggleTrackEnabled","track","handleError","setRemoteTrackEnabled","id","enabled","chunkElements","elements","tilesInFirstPage","onlyOnePage","isLastPageDifferentFromFirstPage","defaultWidth","defaultHeight","lastPageWidth","lastPageHeight","chunks","chunkSize","reduce","resultArray","tile","index","chunkIndex","Math","floor","push","chunk","map","ch","page","element","isLastPage","width","height","assign","largestRect","containerWidth","containerHeight","numRects","Number","isInteger","aspectRatio","isNaN","best","area","cols","rows","ceil","width2","height2","count","parentWidth","parentHeight","maxTileCount","maxRowCount","maxColCount","maxCount","tilesinLastPage","initialWidth","initialHeight","min","remWidth","remHeight","getTileSizesWithPageConstraint","sqrt","getTileSizesWithRowConstraint","getTileSizesWithColConstraint","DEFAULTS","DeviceType2","DeviceType","children","stats","isHMSStatsOn","leaveOnUnload","errFn","create","setState","destroy","getState","subscribe","hmsReactiveStore","HMSReactiveStore","getActions","getStore","getNotifications","stats2","getStats","addEventListener","leave","React","createElement","Provider","isLocalAudioEnabled","selectIsLocalAudioEnabled","isLocalVideoEnabled","selectIsLocalVideoEnabled","isAllowedToPublish","selectIsAllowedToPublish","toggleAudio","useCallback","setLocalAudioEnabled","toggleVideo","setLocalVideoEnabled","audio","video","trackId","getStyle","ref","current","styles","key","style","selectTrackAudioByID","HMSNotificationTypes","setError","unblockAudio","code","message","resetError","onEvent","ignoreMessageTypes","msg","JSON","parse","NEW_MESSAGE","sendEvent","receiver","dataStr","stringify","Array","isArray","roleNames","sendGroupMessage","peerId","sendDirectMessage","sendBroadcastMessage","sdkAllDevices","selectDevices","sdkSelectedDevices","selectLocalMediaSettings","selectedDeviceIDs","audioOutput","audioOutputDeviceId","allDevices","videoInput","videoInputDeviceId","audioInput","audioInputDeviceId","updateDevice","deviceType","deviceId","setAudioSettings","setVideoSettings","setAudioOutputDevice","isConnected","selectIsConnectedToRoom","participantList","selectPeers","selectRemotePeers","peerCount","selectPeerCount","participantsByRoles","useMemo","groupByRoles","peers","res","peer","roleName","roles","params","availableRoles","selectAvailableRoleNames","rolesWithParticipants","from","Set","vanillaStore","_a","metadata","isHandRaised","filter","selectPeerMetadata","role","includes","search","toLowerCase","_a2","name","participants","token","initEndpoint","initialSettings","captureNetworkQualityInPreview","roomState","selectRoomState","enableJoin","HMSRoomState","Preview","config","userName","authToken","metaData","rememberDeviceSelection","settings","preview","Disconnected","join","recording","selectRecordingState","rtmp","selectRTMPState","hls","selectHLSState","isServerRecordingOn","server","running","isBrowserRecordingOn","browser","isHLSRecordingOn","isRecordingOn","isStreamingOn","isHLSRunning","isRTMPRunning","audioTrackId","videoTrackId","audioTrack","selectTrackByID","videoTrack","volume","selectAudioTrackVolume","permissions","selectPermissions","canToggleVideo","mute","unmute","canToggleAudio","setVolume","volume2","isAudioEnabled","isVideoEnabled","source","amIScreenSharing","selectIsLocalScreenShared","screenSharePeer","selectPeerScreenSharing","screenShare","selectScreenSharesByPeerId","toggleScreenShare","audioOnly","setScreenShareEnabled","screenSharingPeerId","screenSharingPeerName","screenShareVideoTrackId","screenShareAudioTrackId","_b","attach","threshold","videoRef","useRef","inViewRef","inView","useInView","setRefs","node","attachVideo","detachVideo","deviceID","plugins","includeScreenShareForPeer","filterNonPublishingPeers","offsetY","useResizeDetector","tracksWithPeer","tracks","peerTiles","auxiliaryTracks","forEach","screenShareTrackID","find","trackID","getVideoTracksFromPeers","selectTracksMap","finalAspectRatio","array","modeMap","maxEl","el","mode","calculateLayoutSizes","pagesWithTiles"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { PropsWithChildren } from 'react';
|
|
2
|
-
import { HMSStore, HMSActions,
|
|
2
|
+
import { HMSStore, HMSActions, HMSNotificationInCallback, HMSNotifications, HMSStatsStore, HMSStats, HMSStoreWrapper, HMSNotificationTypeParam } from '@100mslive/hms-video-store';
|
|
3
3
|
export interface HMSRoomProviderProps {
|
|
4
4
|
actions?: HMSActions;
|
|
5
5
|
store?: HMSStoreWrapper;
|
|
@@ -45,5 +45,5 @@ export declare const useHMSActions: () => HMSActions;
|
|
|
45
45
|
* either declare it outside the functional component or use a useMemo to make sure its reference stays same across
|
|
46
46
|
* rerenders for performance reasons.
|
|
47
47
|
*/
|
|
48
|
-
export declare const useHMSNotifications: (type?:
|
|
48
|
+
export declare const useHMSNotifications: <T extends HMSNotificationTypeParam>(type?: T | undefined) => HMSNotificationInCallback<T> | null;
|
|
49
49
|
export declare const useIsHMSStatsOn: () => boolean;
|
|
@@ -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 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};
|
|
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","HMSRoomProvider","children","actions","store","notifications","stats","isHMSStatsOn","leaveOnUnload","errFn","Error","create","Object","assign","setState","destroy","statsStore","getState","subscribe","hmsReactiveStore","HMSReactiveStore","getActions","getStore","getNotifications","stats2","getStats","useEffect","isBrowser","window","addEventListener","leave","React","createElement","Provider","value","useHMSStore","makeHMSStoreHook","useHMSStatsStore","makeHMSStatsStoreHook","useHMSVanillaStore","HMSContextConsumer","useContext","hooksErrorMessage","useHMSVanillaNotifications","useHMSActions","useHMSNotifications","type","notification","setNotification","useState","onNotification","notification2"],"mappings":"6TAgCA,MAAMA,EAAaC,EAA8C,MAEjE,IAAIC,EAQS,MAAAC,EAAqE,EAChFC,WACAC,UACAC,QACAC,gBACAC,QACAC,gBAAe,EACfC,iBAAgB,MAEhB,IAAKR,EAAe,CAGlB,MAAMS,EAAQ,KACZ,MAAM,IAAIC,MAAM,iCAAA,EAElB,GAAIP,GAAWC,EACGJ,EAAA,CACdG,UACAC,MAAOO,EACFC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAT,GACH,CAAAU,SAAUL,EACVM,QAASN,MAGTJ,IACFL,EAAcK,cAAgBA,GAE5BC,IACFN,EAAcgB,WAAaL,EAAsB,CAC/CM,SAAUX,EAAMW,SAChBC,UAAWZ,EAAMY,UACjBJ,SAAUL,EACVM,QAASN,SAGR,CACL,MAAMU,EAAmB,IAAIC,EAW7B,GAVgBpB,EAAA,CACdG,QAASgB,EAAiBE,aAC1BjB,MAAOO,EACFC,OAAAC,OAAAD,OAAAC,OAAA,GAAAM,EAAiBG,YACpB,CAAAR,SAAUL,EACVM,QAASN,KAEXJ,cAAec,EAAiBI,oBAG9BhB,EAAc,CAChB,MAAMiB,EAAQL,EAAiBM,WAC/BzB,EAAcgB,WAAaL,EAAsB,CAC/CM,SAAUO,EAAMP,SAChBC,UAAWM,EAAMN,UACjBJ,SAAUL,EACVM,QAASN,GAAA,CAAA,CAAA,CAajB,OAPAiB,GAAU,KACJC,GAAanB,IACfoB,OAAOC,iBAAiB,gBAAgB,IAAM7B,EAAcG,QAAQ2B,UACpEF,OAAOC,iBAAiB,YAAY,IAAM7B,EAAcG,QAAQ2B,UAAA,GAEjE,CAACtB,IAEGuB,EAAMC,cAAclC,EAAWmC,SAAU,CAAEC,MAAOlC,GAAiBE,EAAA,EAO/DiC,EAAcC,EAAiBtC,GAE/BuC,EAAmBC,EAAsBxC,GAczCyC,EAAqB,KAChC,MAAMC,EAAqBC,EAAW3C,GACtC,IAAK0C,EACH,MAAM,IAAI9B,MAAMgC,GAGlB,OAAOF,EAAmBpC,KAAA,EAiBfuC,EAA6B,KACxC,MAAMH,EAAqBC,EAAW3C,GACtC,IAAK0C,EACH,MAAM,IAAI9B,MAAMgC,GAElB,OAAOF,EAAmBnC,aAAA,EAMfuC,EAAgB,KAC3B,MAAMJ,EAAqBC,EAAW3C,GACtC,IAAK0C,EACH,MAAM,IAAI9B,MAAMgC,GAElB,OAAOF,EAAmBrC,OAAA,EASf0C,
|
|
1
|
+
{"version":3,"file":"HmsRoomProvider.js","sources":["../../src/primitives/HmsRoomProvider.ts"],"sourcesContent":[null],"names":["HMSContext","createContext","providerProps","HMSRoomProvider","children","actions","store","notifications","stats","isHMSStatsOn","leaveOnUnload","errFn","Error","create","Object","assign","setState","destroy","statsStore","getState","subscribe","hmsReactiveStore","HMSReactiveStore","getActions","getStore","getNotifications","stats2","getStats","useEffect","isBrowser","window","addEventListener","leave","React","createElement","Provider","value","useHMSStore","makeHMSStoreHook","useHMSStatsStore","makeHMSStatsStoreHook","useHMSVanillaStore","HMSContextConsumer","useContext","hooksErrorMessage","useHMSVanillaNotifications","useHMSActions","useHMSNotifications","type","notification","setNotification","useState","onNotification","notification2"],"mappings":"6TAgCA,MAAMA,EAAaC,EAA8C,MAEjE,IAAIC,EAQS,MAAAC,EAAqE,EAChFC,WACAC,UACAC,QACAC,gBACAC,QACAC,gBAAe,EACfC,iBAAgB,MAEhB,IAAKR,EAAe,CAGlB,MAAMS,EAAQ,KACZ,MAAM,IAAIC,MAAM,iCAAA,EAElB,GAAIP,GAAWC,EACGJ,EAAA,CACdG,UACAC,MAAOO,EACFC,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAT,GACH,CAAAU,SAAUL,EACVM,QAASN,MAGTJ,IACFL,EAAcK,cAAgBA,GAE5BC,IACFN,EAAcgB,WAAaL,EAAsB,CAC/CM,SAAUX,EAAMW,SAChBC,UAAWZ,EAAMY,UACjBJ,SAAUL,EACVM,QAASN,SAGR,CACL,MAAMU,EAAmB,IAAIC,EAW7B,GAVgBpB,EAAA,CACdG,QAASgB,EAAiBE,aAC1BjB,MAAOO,EACFC,OAAAC,OAAAD,OAAAC,OAAA,GAAAM,EAAiBG,YACpB,CAAAR,SAAUL,EACVM,QAASN,KAEXJ,cAAec,EAAiBI,oBAG9BhB,EAAc,CAChB,MAAMiB,EAAQL,EAAiBM,WAC/BzB,EAAcgB,WAAaL,EAAsB,CAC/CM,SAAUO,EAAMP,SAChBC,UAAWM,EAAMN,UACjBJ,SAAUL,EACVM,QAASN,GAAA,CAAA,CAAA,CAajB,OAPAiB,GAAU,KACJC,GAAanB,IACfoB,OAAOC,iBAAiB,gBAAgB,IAAM7B,EAAcG,QAAQ2B,UACpEF,OAAOC,iBAAiB,YAAY,IAAM7B,EAAcG,QAAQ2B,UAAA,GAEjE,CAACtB,IAEGuB,EAAMC,cAAclC,EAAWmC,SAAU,CAAEC,MAAOlC,GAAiBE,EAAA,EAO/DiC,EAAcC,EAAiBtC,GAE/BuC,EAAmBC,EAAsBxC,GAczCyC,EAAqB,KAChC,MAAMC,EAAqBC,EAAW3C,GACtC,IAAK0C,EACH,MAAM,IAAI9B,MAAMgC,GAGlB,OAAOF,EAAmBpC,KAAA,EAiBfuC,EAA6B,KACxC,MAAMH,EAAqBC,EAAW3C,GACtC,IAAK0C,EACH,MAAM,IAAI9B,MAAMgC,GAElB,OAAOF,EAAmBnC,aAAA,EAMfuC,EAAgB,KAC3B,MAAMJ,EAAqBC,EAAW3C,GACtC,IAAK0C,EACH,MAAM,IAAI9B,MAAMgC,GAElB,OAAOF,EAAmBrC,OAAA,EASf0C,EACXC,IAEA,MAAMN,EAAqBC,EAAW3C,IAC/BiD,EAAcC,GAAmBC,EAA8C,MAEtF,IAAKT,EACH,MAAM,IAAI9B,MAAMgC,GAaX,OAVPhB,GAAU,KACJ,IAACc,EAAmBnC,cACtB,OAKK,OAHamC,EAAmBnC,cAAc6C,gBAAiCC,IACpEH,EAAAG,EAAA,GACfL,EACI,GACN,CAACN,EAAmBnC,cAAeyC,IAE/BC,CAAA"}
|
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.
|
|
7
|
+
"version": "0.4.1-alpha.0",
|
|
8
8
|
"author": "100ms",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"files": [
|
|
@@ -28,17 +28,17 @@
|
|
|
28
28
|
"@types/react": "^18.0.8",
|
|
29
29
|
"react": "^18.1.0",
|
|
30
30
|
"rollup": "^2.70.1",
|
|
31
|
-
"rollup-plugin-esbuild": "^4.9.
|
|
31
|
+
"rollup-plugin-esbuild": "^4.9.3",
|
|
32
32
|
"rollup-plugin-terser": "^7.0.2"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"react": ">=17.0.2 <19.0.0"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@100mslive/hms-video-store": "0.
|
|
38
|
+
"@100mslive/hms-video-store": "0.6.1-alpha.0",
|
|
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": "
|
|
43
|
+
"gitHead": "1a0835104005a471d7b813a1f1d14268a77379ca"
|
|
44
44
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useHMSActions, useHMSVanillaNotifications } from '../primitives/HmsRoomProvider';
|
|
2
2
|
import { useCallback, useEffect } from 'react';
|
|
3
|
-
import { HMSNotificationTypes } from '@100mslive/hms-video-store';
|
|
3
|
+
import { HMSNotificationTypes, HMSPeerID, HMSRoleName } from '@100mslive/hms-video-store';
|
|
4
4
|
import { hooksErrHandler } from './types';
|
|
5
5
|
import { logErrorHandler } from '../utils/commons';
|
|
6
6
|
|
|
@@ -23,11 +23,26 @@ export interface useCustomEventInput<T> {
|
|
|
23
23
|
handleError?: hooksErrHandler;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
+
export interface EventReceiver {
|
|
27
|
+
peerId?: HMSPeerID;
|
|
28
|
+
roleNames?: HMSRoleName[];
|
|
29
|
+
}
|
|
30
|
+
|
|
26
31
|
export interface useCustomEventResult<T> {
|
|
27
32
|
/**
|
|
28
33
|
* sends the event data to others in the room who will receive it in onEvent
|
|
34
|
+
*
|
|
35
|
+
* @example to send message to peers of specific roles
|
|
36
|
+
* ```js
|
|
37
|
+
* sendEvent(data, {roleNames: ['host','guest']})
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @example to send message to single peer
|
|
41
|
+
* ```js
|
|
42
|
+
* sendEvent(data, {peerId})
|
|
43
|
+
* ```
|
|
29
44
|
*/
|
|
30
|
-
sendEvent: (data: T) => void;
|
|
45
|
+
sendEvent: (data: T, receiver?: EventReceiver) => void;
|
|
31
46
|
}
|
|
32
47
|
|
|
33
48
|
/**
|
|
@@ -67,12 +82,18 @@ export const useCustomEvent = <T>({
|
|
|
67
82
|
return unsubscribe;
|
|
68
83
|
}, [notifications, type, onEvent, handleError]);
|
|
69
84
|
|
|
70
|
-
// this is to send message to remote peers and call onEvent
|
|
85
|
+
// this is to send message to remote peers, peers of specific role or single peer, and call onEvent
|
|
71
86
|
const sendEvent = useCallback(
|
|
72
|
-
async (data: T) => {
|
|
87
|
+
async (data: T, receiver?: EventReceiver) => {
|
|
73
88
|
try {
|
|
74
89
|
const dataStr = JSON.stringify(data || '');
|
|
75
|
-
|
|
90
|
+
if (receiver && Array.isArray(receiver?.roleNames)) {
|
|
91
|
+
await actions.sendGroupMessage(dataStr, receiver.roleNames, type);
|
|
92
|
+
} else if (typeof receiver?.peerId === 'string') {
|
|
93
|
+
await actions.sendDirectMessage(dataStr, receiver.peerId, type);
|
|
94
|
+
} else {
|
|
95
|
+
await actions.sendBroadcastMessage(dataStr, type);
|
|
96
|
+
}
|
|
76
97
|
onEvent?.(data);
|
|
77
98
|
} catch (err) {
|
|
78
99
|
handleError(err as Error, 'sendCustomEvent');
|
|
@@ -3,12 +3,12 @@ import {
|
|
|
3
3
|
HMSReactiveStore,
|
|
4
4
|
HMSStore,
|
|
5
5
|
HMSActions,
|
|
6
|
-
|
|
6
|
+
HMSNotificationInCallback,
|
|
7
7
|
HMSNotifications,
|
|
8
8
|
HMSStatsStore,
|
|
9
9
|
HMSStats,
|
|
10
10
|
HMSStoreWrapper,
|
|
11
|
-
|
|
11
|
+
HMSNotificationTypeParam,
|
|
12
12
|
} from '@100mslive/hms-video-store';
|
|
13
13
|
import create from 'zustand';
|
|
14
14
|
import { HMSContextProviderProps, makeHMSStoreHook, hooksErrorMessage, makeHMSStatsStoreHook } from './store';
|
|
@@ -177,9 +177,11 @@ export const useHMSActions = () => {
|
|
|
177
177
|
* either declare it outside the functional component or use a useMemo to make sure its reference stays same across
|
|
178
178
|
* rerenders for performance reasons.
|
|
179
179
|
*/
|
|
180
|
-
export const useHMSNotifications =
|
|
180
|
+
export const useHMSNotifications = <T extends HMSNotificationTypeParam>(
|
|
181
|
+
type?: T,
|
|
182
|
+
): HMSNotificationInCallback<T> | null => {
|
|
181
183
|
const HMSContextConsumer = useContext(HMSContext);
|
|
182
|
-
const [notification, setNotification] = useState<
|
|
184
|
+
const [notification, setNotification] = useState<HMSNotificationInCallback<T> | null>(null);
|
|
183
185
|
|
|
184
186
|
if (!HMSContextConsumer) {
|
|
185
187
|
throw new Error(hooksErrorMessage);
|
|
@@ -189,10 +191,9 @@ export const useHMSNotifications = (type?: HMSNotificationTypes | HMSNotificatio
|
|
|
189
191
|
if (!HMSContextConsumer.notifications) {
|
|
190
192
|
return;
|
|
191
193
|
}
|
|
192
|
-
const unsubscribe = HMSContextConsumer.notifications.onNotification(
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
);
|
|
194
|
+
const unsubscribe = HMSContextConsumer.notifications.onNotification<T>(notification => {
|
|
195
|
+
setNotification(notification);
|
|
196
|
+
}, type);
|
|
196
197
|
return unsubscribe;
|
|
197
198
|
}, [HMSContextConsumer.notifications, type]);
|
|
198
199
|
|