@100mslive/roomkit-react 0.1.20-alpha.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +27 -2
- package/dist/{HLSView-PJLISGG4.js → HLSView-ULB4DC6B.js} +2 -2
- package/dist/Input/Input.d.ts +3 -3
- package/dist/Prebuilt/components/Chat/ChatActions.d.ts +2 -1
- package/dist/Prebuilt/components/Polls/CreateQuestions/DeleteQuestionModal.d.ts +6 -0
- package/dist/Prebuilt/components/Polls/CreateQuestions/QuestionForm.d.ts +22 -0
- package/dist/Prebuilt/components/Polls/CreateQuestions/SavedQuestion.d.ts +11 -0
- package/dist/Prebuilt/components/Polls/Voting/StandardVoting.d.ts +5 -0
- package/dist/Prebuilt/components/Polls/Voting/TimedVoting.d.ts +5 -0
- package/dist/Prebuilt/components/Polls/Voting/Voting.d.ts +5 -0
- package/dist/Prebuilt/components/Polls/common/Line.d.ts +2 -0
- package/dist/Prebuilt/components/Polls/common/OptionInputWithDelete.d.ts +8 -0
- package/dist/Prebuilt/components/Polls/common/StatusIndicator.d.ts +4 -0
- package/dist/Prebuilt/components/Polls/common/VoteCount.d.ts +4 -0
- package/dist/Prebuilt/components/Polls/common/VoteProgress.d.ts +6 -0
- package/dist/Prebuilt/components/Polls/common/VoterList.d.ts +4 -0
- package/dist/Prebuilt/components/TileMenu/utils.d.ts +5 -0
- package/dist/Prebuilt/components/hooks/usePinnedBy.d.ts +1 -0
- package/dist/Prebuilt/components/hooks/{useSetPinnedMessages.d.ts → usePinnedMessages.d.ts} +6 -1
- package/dist/TextArea/TextArea.d.ts +441 -0
- package/dist/TextArea/index.d.ts +1 -0
- package/dist/Toast/Toast.d.ts +1 -1
- package/dist/{chunk-QENB2CO7.js → chunk-GVA4I77Z.js} +2803 -2743
- package/dist/chunk-GVA4I77Z.js.map +7 -0
- package/dist/index.cjs.js +3038 -2969
- package/dist/index.cjs.js.map +4 -4
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/dist/meta.cjs.json +475 -388
- package/dist/meta.esbuild.json +485 -396
- package/package.json +7 -8
- package/src/Button/Button.tsx +4 -4
- package/src/Input/Input.tsx +1 -1
- package/src/Prebuilt/App.tsx +2 -0
- package/src/Prebuilt/components/Chat/ChatActions.tsx +25 -8
- package/src/Prebuilt/components/Chat/ChatBody.tsx +64 -21
- package/src/Prebuilt/components/Chat/ChatFooter.tsx +1 -0
- package/src/Prebuilt/components/Chat/PinnedMessage.tsx +2 -2
- package/src/Prebuilt/components/Header/AdditionalRoomState.jsx +1 -38
- package/src/Prebuilt/components/Header/StreamActions.tsx +1 -1
- package/src/Prebuilt/components/Polls/CreatePollQuiz/PollsQuizMenu.jsx +11 -1
- package/src/Prebuilt/components/Polls/CreateQuestions/{DeleteQuestionModal.jsx → DeleteQuestionModal.tsx} +9 -1
- package/src/Prebuilt/components/Polls/CreateQuestions/{QuestionForm.jsx → QuestionForm.tsx} +71 -30
- package/src/Prebuilt/components/Polls/CreateQuestions/{SavedQuestion.jsx → SavedQuestion.tsx} +24 -15
- package/src/Prebuilt/components/Polls/Voting/LeaderboardSummary.tsx +1 -1
- package/src/Prebuilt/components/Polls/Voting/QuestionCard.jsx +61 -80
- package/src/Prebuilt/components/Polls/Voting/{StandardVoting.jsx → StandardVoting.tsx} +3 -7
- package/src/Prebuilt/components/Polls/Voting/{TimedVoting.jsx → TimedVoting.tsx} +4 -7
- package/src/Prebuilt/components/Polls/Voting/{Voting.jsx → Voting.tsx} +4 -3
- package/src/Prebuilt/components/Polls/common/Line.tsx +4 -0
- package/src/Prebuilt/components/Polls/common/{OptionInputWithDelete.jsx → OptionInputWithDelete.tsx} +14 -2
- package/src/Prebuilt/components/Polls/common/SingleChoiceOptions.jsx +1 -1
- package/src/Prebuilt/components/Polls/common/{StatusIndicator.jsx → StatusIndicator.tsx} +1 -2
- package/src/Prebuilt/components/Polls/common/{VoteCount.jsx → VoteCount.tsx} +1 -2
- package/src/Prebuilt/components/Polls/common/{VoteProgress.jsx → VoteProgress.tsx} +3 -2
- package/src/Prebuilt/components/Polls/common/{VoterList.jsx → VoterList.tsx} +1 -1
- package/src/Prebuilt/components/TileMenu/TileMenu.jsx +3 -1
- package/src/Prebuilt/components/TileMenu/TileMenuContent.tsx +15 -3
- package/src/Prebuilt/components/TileMenu/utils.ts +7 -0
- package/src/Prebuilt/components/VideoLayouts/GridLayout.tsx +7 -3
- package/src/Prebuilt/components/VideoTile.jsx +2 -4
- package/src/Prebuilt/components/hooks/usePinnedBy.tsx +22 -0
- package/src/Prebuilt/components/hooks/{useSetPinnedMessages.ts → usePinnedMessages.ts} +2 -2
- package/src/Prebuilt/components/hooks/useUnreadPollQuizPresent.tsx +1 -4
- package/src/Prebuilt/layouts/VideoStreamingSection.tsx +0 -1
- package/src/TextArea/TextArea.tsx +30 -0
- package/src/TextArea/index.tsx +1 -0
- package/src/index.ts +1 -0
- package/src/store/StorybookSDK.ts +3 -1
- package/dist/Prebuilt/plugins/whiteboard/ToggleWhiteboard.d.ts +0 -5
- package/dist/chunk-QENB2CO7.js.map +0 -7
- package/src/Prebuilt/components/Polls/common/Votes.jsx +0 -72
- package/src/Prebuilt/layouts/WhiteboardView.jsx +0 -40
- package/src/Prebuilt/plugins/whiteboard/PusherCommunicationProvider.js +0 -110
- package/src/Prebuilt/plugins/whiteboard/README.md +0 -29
- package/src/Prebuilt/plugins/whiteboard/ToggleWhiteboard.tsx +0 -37
- package/src/Prebuilt/plugins/whiteboard/Whiteboard.css +0 -12
- package/src/Prebuilt/plugins/whiteboard/Whiteboard.jsx +0 -11
- package/src/Prebuilt/plugins/whiteboard/WhiteboardEvents.js +0 -8
- package/src/Prebuilt/plugins/whiteboard/index.js +0 -3
- package/src/Prebuilt/plugins/whiteboard/useMultiplayerState.js +0 -212
- package/src/Prebuilt/plugins/whiteboard/useWhiteboardMetadata.js +0 -47
- /package/dist/{HLSView-PJLISGG4.js.map → HLSView-ULB4DC6B.js.map} +0 -0
@@ -38,6 +38,7 @@ import { ToastManager } from '../Toast/ToastManager';
|
|
38
38
|
import { useSetAppDataByKey } from '../AppData/useUISettings';
|
39
39
|
// @ts-ignore
|
40
40
|
import { useDropdownSelection } from '../hooks/useDropdownSelection';
|
41
|
+
import { getDragClassName } from './utils';
|
41
42
|
import { APP_DATA, REMOTE_STOP_SCREENSHARE_TYPE, SESSION_STORE_KEY } from '../../common/constants';
|
42
43
|
|
43
44
|
export const isSameTile = ({
|
@@ -64,6 +65,7 @@ const SpotlightActions = ({
|
|
64
65
|
const hmsActions = useHMSActions();
|
65
66
|
const spotlightPeerId = useHMSStore(selectSessionStore(SESSION_STORE_KEY.SPOTLIGHT));
|
66
67
|
const isTileSpotlighted = spotlightPeerId === peerId;
|
68
|
+
const dragClassName = getDragClassName();
|
67
69
|
|
68
70
|
const setSpotlightPeerId = (peerIdToSpotlight?: string) =>
|
69
71
|
hmsActions.sessionStore
|
@@ -72,6 +74,7 @@ const SpotlightActions = ({
|
|
72
74
|
|
73
75
|
return (
|
74
76
|
<StyledMenuTile.ItemButton
|
77
|
+
className={dragClassName}
|
75
78
|
css={spacingCSS}
|
76
79
|
onClick={() => {
|
77
80
|
if (isTileSpotlighted) {
|
@@ -90,6 +93,7 @@ const SpotlightActions = ({
|
|
90
93
|
|
91
94
|
const PinActions = ({ audioTrackID, videoTrackID }: { videoTrackID: string; audioTrackID: string }) => {
|
92
95
|
const [pinnedTrackId, setPinnedTrackId] = useSetAppDataByKey(APP_DATA.pinnedTrackId);
|
96
|
+
const dragClassName = getDragClassName();
|
93
97
|
|
94
98
|
const isTilePinned = isSameTile({
|
95
99
|
trackId: pinnedTrackId,
|
@@ -100,6 +104,7 @@ const PinActions = ({ audioTrackID, videoTrackID }: { videoTrackID: string; audi
|
|
100
104
|
return (
|
101
105
|
<>
|
102
106
|
<StyledMenuTile.ItemButton
|
107
|
+
className={dragClassName}
|
103
108
|
css={spacingCSS}
|
104
109
|
onClick={() => (isTilePinned ? setPinnedTrackId() : setPinnedTrackId(videoTrackID || audioTrackID))}
|
105
110
|
>
|
@@ -112,10 +117,11 @@ const PinActions = ({ audioTrackID, videoTrackID }: { videoTrackID: string; audi
|
|
112
117
|
|
113
118
|
const MinimiseInset = () => {
|
114
119
|
const [minimised, setMinimised] = useSetAppDataByKey(APP_DATA.minimiseInset);
|
120
|
+
const dragClassName = getDragClassName();
|
115
121
|
|
116
122
|
return (
|
117
123
|
<>
|
118
|
-
<StyledMenuTile.ItemButton css={spacingCSS} onClick={() => setMinimised(!minimised)}>
|
124
|
+
<StyledMenuTile.ItemButton className={dragClassName} css={spacingCSS} onClick={() => setMinimised(!minimised)}>
|
119
125
|
<ShrinkIcon height={20} width={20} />
|
120
126
|
<span>{minimised ? 'Show' : 'Minimise'} your video</span>
|
121
127
|
</StyledMenuTile.ItemButton>
|
@@ -131,14 +137,16 @@ const SimulcastLayers = ({ trackId }: { trackId: HMSTrackID }) => {
|
|
131
137
|
return null;
|
132
138
|
}
|
133
139
|
const currentLayer = track.layerDefinitions.find((layer: HMSSimulcastLayerDefinition) => layer.layer === track.layer);
|
140
|
+
const dragClassName = getDragClassName();
|
134
141
|
return (
|
135
142
|
<Fragment>
|
136
|
-
<StyledMenuTile.ItemButton css={{ color: '$on_surface_medium', cursor: 'default' }}>
|
143
|
+
<StyledMenuTile.ItemButton className={dragClassName} css={{ color: '$on_surface_medium', cursor: 'default' }}>
|
137
144
|
Select maximum resolution
|
138
145
|
</StyledMenuTile.ItemButton>
|
139
146
|
{track.layerDefinitions.map((layer: HMSSimulcastLayerDefinition) => {
|
140
147
|
return (
|
141
148
|
<StyledMenuTile.ItemButton
|
149
|
+
className={dragClassName}
|
142
150
|
key={layer.layer}
|
143
151
|
onClick={async () => {
|
144
152
|
await actions.setPreferredLayer(trackId, layer.layer);
|
@@ -174,7 +182,7 @@ const SimulcastLayers = ({ trackId }: { trackId: HMSTrackID }) => {
|
|
174
182
|
</StyledMenuTile.ItemButton>
|
175
183
|
);
|
176
184
|
})}
|
177
|
-
<StyledMenuTile.ItemButton>
|
185
|
+
<StyledMenuTile.ItemButton className={dragClassName}>
|
178
186
|
<Text as="span" variant="xs" css={{ color: '$on_surface_medium' }}>
|
179
187
|
Currently streaming:
|
180
188
|
<Text
|
@@ -229,6 +237,7 @@ export const TileMenuContent = ({
|
|
229
237
|
openNameChangeModal: () => void;
|
230
238
|
}) => {
|
231
239
|
const actions = useHMSActions();
|
240
|
+
const dragClassName = getDragClassName();
|
232
241
|
const removeOthers: boolean | undefined = useHMSStore(selectPermissions)?.removeOthers;
|
233
242
|
const { userName } = useHMSPrebuiltContext();
|
234
243
|
|
@@ -251,6 +260,7 @@ export const TileMenuContent = ({
|
|
251
260
|
{canMinimise && <MinimiseInset />}
|
252
261
|
{!userName && (
|
253
262
|
<StyledMenuTile.ItemButton
|
263
|
+
className={dragClassName}
|
254
264
|
onClick={() => {
|
255
265
|
openNameChangeModal();
|
256
266
|
closeSheetOnClick();
|
@@ -268,6 +278,7 @@ export const TileMenuContent = ({
|
|
268
278
|
<>
|
269
279
|
{toggleVideo ? (
|
270
280
|
<StyledMenuTile.ItemButton
|
281
|
+
className={dragClassName}
|
271
282
|
css={spacingCSS}
|
272
283
|
onClick={() => {
|
273
284
|
toggleVideo();
|
@@ -283,6 +294,7 @@ export const TileMenuContent = ({
|
|
283
294
|
{toggleAudio ? (
|
284
295
|
<StyledMenuTile.ItemButton
|
285
296
|
css={spacingCSS}
|
297
|
+
className={dragClassName}
|
286
298
|
onClick={() => {
|
287
299
|
toggleAudio();
|
288
300
|
closeSheetOnClick();
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import React, { useEffect, useMemo, useState } from 'react';
|
2
2
|
import { GridVideoTileLayout } from '@100mslive/types-prebuilt/elements/video_tile_layout';
|
3
3
|
import {
|
4
|
+
selectLocalPeerID,
|
4
5
|
selectLocalPeerRoleName,
|
5
6
|
selectPeers,
|
6
7
|
selectPeerScreenSharing,
|
@@ -42,6 +43,8 @@ export const GridLayout = ({
|
|
42
43
|
const pinnedTrack = usePinnedTrack();
|
43
44
|
const peers = useHMSStore(selectPeers);
|
44
45
|
const localPeerRole = useHMSStore(selectLocalPeerRoleName);
|
46
|
+
const localPeerID = useHMSStore(selectLocalPeerID);
|
47
|
+
|
45
48
|
const [activeScreensharePeerId] = useSetAppDataByKey(APP_DATA.activeScreensharePeerId);
|
46
49
|
const isRoleProminence =
|
47
50
|
(prominentRoles.length &&
|
@@ -55,15 +58,16 @@ export const GridLayout = ({
|
|
55
58
|
return peers.filter(peer => peer.id !== activeScreensharePeerId);
|
56
59
|
}
|
57
60
|
if (isInsetEnabled) {
|
58
|
-
|
59
|
-
if
|
61
|
+
const isLocalPeerPinned = localPeerID === pinnedTrack?.peerId;
|
62
|
+
// if localPeer role is prominent role, it shows up in the center or local peer is pinned, so allow it in active speaker sorting
|
63
|
+
if ((localPeerRole && prominentRoles.includes(localPeerRole)) || isLocalPeerPinned) {
|
60
64
|
return peers;
|
61
65
|
} else {
|
62
66
|
return peers.filter(peer => !peer.isLocal);
|
63
67
|
}
|
64
68
|
}
|
65
69
|
return peers;
|
66
|
-
}, [isInsetEnabled, activeScreensharePeerId, localPeerRole, prominentRoles, peers]);
|
70
|
+
}, [isInsetEnabled, activeScreensharePeerId, localPeerRole, localPeerID, prominentRoles, peers, pinnedTrack]);
|
67
71
|
const vanillaStore = useHMSVanillaStore();
|
68
72
|
const [sortedPeers, setSortedPeers] = useState(updatedPeers);
|
69
73
|
const peersSorter = useMemo(() => new PeersSorter(vanillaStore), [vanillaStore]);
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import React, { Fragment, useCallback, useMemo, useState } from 'react';
|
2
|
-
import { useMeasure
|
2
|
+
import { useMeasure } from 'react-use';
|
3
3
|
import {
|
4
4
|
selectAudioTrackByPeerID,
|
5
5
|
selectHasPeerHandRaised,
|
@@ -18,7 +18,6 @@ import TileMenu, { isSameTile } from './TileMenu/TileMenu';
|
|
18
18
|
import { AudioLevel } from '../../AudioLevel';
|
19
19
|
import { Avatar } from '../../Avatar';
|
20
20
|
import { VideoTileStats } from '../../Stats';
|
21
|
-
import { config as cssConfig } from '../../Theme';
|
22
21
|
import { Video } from '../../Video';
|
23
22
|
import { StyledVideoTile } from '../../VideoTile';
|
24
23
|
import { getVideoTileLabel } from './peerTileUtils';
|
@@ -44,7 +43,6 @@ const Tile = ({
|
|
44
43
|
}) => {
|
45
44
|
const trackSelector = trackId ? selectVideoTrackByID(trackId) : selectVideoTrackByPeerID(peerId);
|
46
45
|
const track = useHMSStore(trackSelector);
|
47
|
-
const isMobile = useMedia(cssConfig.media.md);
|
48
46
|
const peerName = useHMSStore(selectPeerNameByID(peerId));
|
49
47
|
const audioTrack = useHMSStore(selectAudioTrackByPeerID(peerId));
|
50
48
|
const localPeerID = useHMSStore(selectLocalPeerID);
|
@@ -141,7 +139,7 @@ const Tile = ({
|
|
141
139
|
{!hideMetadataOnTile && <PeerMetadata peerId={peerId} size={attribBoxSize} />}
|
142
140
|
</>
|
143
141
|
) : null}
|
144
|
-
{isMouseHovered || (isDragabble &&
|
142
|
+
{isMouseHovered || (isDragabble && navigator.maxTouchPoints > 0) ? (
|
145
143
|
<TileMenu
|
146
144
|
peerID={peerId}
|
147
145
|
audioTrackID={audioTrack?.id}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import { useEffect, useState } from 'react';
|
2
|
+
import { selectSessionStore, useHMSStore } from '@100mslive/react-sdk';
|
3
|
+
import { PinnedMessage } from './usePinnedMessages';
|
4
|
+
import { SESSION_STORE_KEY } from '../../common/constants';
|
5
|
+
|
6
|
+
export const usePinnedBy = (messageId: string) => {
|
7
|
+
const pinnedMessages = useHMSStore(selectSessionStore(SESSION_STORE_KEY.PINNED_MESSAGES));
|
8
|
+
const [pinnedBy, setPinnedBy] = useState('');
|
9
|
+
|
10
|
+
useEffect(() => {
|
11
|
+
let match = '';
|
12
|
+
pinnedMessages?.forEach((pinnedMessage: PinnedMessage) => {
|
13
|
+
if (pinnedMessage.id === messageId) {
|
14
|
+
match = pinnedMessage.pinnedBy;
|
15
|
+
}
|
16
|
+
});
|
17
|
+
|
18
|
+
setPinnedBy(match);
|
19
|
+
}, [messageId, pinnedMessages]);
|
20
|
+
|
21
|
+
return pinnedBy;
|
22
|
+
};
|
@@ -11,7 +11,7 @@ import { ToastManager } from '../Toast/ToastManager';
|
|
11
11
|
// @ts-ignore
|
12
12
|
import { SESSION_STORE_KEY } from '../../common/constants';
|
13
13
|
|
14
|
-
type PinnedMessage = {
|
14
|
+
export type PinnedMessage = {
|
15
15
|
text: string;
|
16
16
|
id: string;
|
17
17
|
pinnedBy: string;
|
@@ -20,7 +20,7 @@ type PinnedMessage = {
|
|
20
20
|
/**
|
21
21
|
* set pinned chat message by updating the session store
|
22
22
|
*/
|
23
|
-
export const
|
23
|
+
export const usePinnedMessages = () => {
|
24
24
|
const hmsActions = useHMSActions();
|
25
25
|
const vanillaStore = useHMSVanillaStore();
|
26
26
|
|
@@ -4,16 +4,13 @@ import { HMSNotificationTypes, useHMSNotifications, useHMSStore } from '@100msli
|
|
4
4
|
|
5
5
|
export const useUnreadPollQuizPresent = () => {
|
6
6
|
const localPeerID = useHMSStore(selectLocalPeerID);
|
7
|
-
const notification = useHMSNotifications();
|
7
|
+
const notification = useHMSNotifications(HMSNotificationTypes.POLL_STARTED);
|
8
8
|
const [unreadPollQuiz, setUnreadPollQuiz] = useState(false);
|
9
9
|
|
10
10
|
useEffect(() => {
|
11
11
|
if (!notification) {
|
12
12
|
return;
|
13
13
|
}
|
14
|
-
if (notification.type !== HMSNotificationTypes.POLL_STARTED) {
|
15
|
-
return;
|
16
|
-
}
|
17
14
|
setUnreadPollQuiz(notification.data.startedBy !== localPeerID);
|
18
15
|
}, [localPeerID, notification]);
|
19
16
|
return { unreadPollQuiz, setUnreadPollQuiz };
|
@@ -34,7 +34,6 @@ import { useCloseScreenshareWhiteboard } from '../components/hooks/useCloseScree
|
|
34
34
|
// @ts-ignore: No implicit Any
|
35
35
|
import { SESSION_STORE_KEY } from '../common/constants';
|
36
36
|
|
37
|
-
// const WhiteboardView = React.lazy(() => import("./WhiteboardView"));
|
38
37
|
// @ts-ignore: No implicit Any
|
39
38
|
const HLSView = React.lazy(() => import('./HLSView'));
|
40
39
|
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import { styled } from '../Theme';
|
2
|
+
|
3
|
+
export const TextArea = styled('textarea', {
|
4
|
+
fontFamily: '$sans',
|
5
|
+
lineHeight: 'inherit',
|
6
|
+
backgroundColor: '$surface_default',
|
7
|
+
borderRadius: '8px',
|
8
|
+
outline: 'none',
|
9
|
+
border: '1px solid $border_default',
|
10
|
+
padding: '0.5rem 0.75rem',
|
11
|
+
minHeight: '30px',
|
12
|
+
color: '$on_surface_high',
|
13
|
+
fontSize: '$md',
|
14
|
+
'&:focus': {
|
15
|
+
boxShadow: '0 0 0 1px $colors$primary_default',
|
16
|
+
border: '1px solid transparent',
|
17
|
+
},
|
18
|
+
'&::placeholder': {
|
19
|
+
color: '$on_surface_medium',
|
20
|
+
},
|
21
|
+
variants: {
|
22
|
+
error: {
|
23
|
+
true: {
|
24
|
+
'&:focus': {
|
25
|
+
boxShadow: '0 0 0 3px $colors$alert_error_default',
|
26
|
+
},
|
27
|
+
},
|
28
|
+
},
|
29
|
+
},
|
30
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
export { TextArea } from './TextArea';
|
package/src/index.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
2
2
|
/* eslint-disable @typescript-eslint/no-empty-function */
|
3
|
-
import { HMSFrameworkInfo } from '@100mslive/hms-video';
|
3
|
+
import { HMSFrameworkInfo } from '@100mslive/hms-video-store';
|
4
4
|
import {
|
5
5
|
HMSActions,
|
6
6
|
HMSAudioTrackSettings,
|
@@ -87,6 +87,7 @@ export class StoryBookSDK implements Partial<HMSActions> {
|
|
87
87
|
isLocal: true,
|
88
88
|
id: String(this.randomNumber()),
|
89
89
|
auxiliaryTracks: [],
|
90
|
+
isHandRaised: false,
|
90
91
|
};
|
91
92
|
store.room.peers.push(this.localPeer.id);
|
92
93
|
store.peers[this.localPeer.id] = this.localPeer;
|
@@ -111,6 +112,7 @@ export class StoryBookSDK implements Partial<HMSActions> {
|
|
111
112
|
isLocal: true,
|
112
113
|
id: String(this.randomNumber()),
|
113
114
|
auxiliaryTracks: [],
|
115
|
+
isHandRaised: false,
|
114
116
|
};
|
115
117
|
store.room.peers.push(this.localPeer.id);
|
116
118
|
store.peers[this.localPeer.id] = this.localPeer;
|