@100mslive/roomkit-react 0.2.4-alpha.1 → 0.2.4-alpha.3

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js CHANGED
@@ -62,7 +62,7 @@ import {
62
62
  theme,
63
63
  useBorderAudioLevel,
64
64
  useTheme
65
- } from "./chunk-FSSFZGW6.js";
65
+ } from "./chunk-QW3HEGVV.js";
66
66
  export {
67
67
  Accordion,
68
68
  AudioLevel,
@@ -3855,7 +3855,7 @@
3855
3855
  "format": "esm"
3856
3856
  },
3857
3857
  "src/Prebuilt/components/hooks/useFullscreen.js": {
3858
- "bytes": 1131,
3858
+ "bytes": 1246,
3859
3859
  "imports": [
3860
3860
  {
3861
3861
  "path": "react",
@@ -3872,6 +3872,11 @@
3872
3872
  "kind": "import-statement",
3873
3873
  "original": "../Toast/ToastManager"
3874
3874
  },
3875
+ {
3876
+ "path": "src/Prebuilt/common/constants.ts",
3877
+ "kind": "import-statement",
3878
+ "original": "../../common/constants"
3879
+ },
3875
3880
  {
3876
3881
  "path": "<define:process.env>",
3877
3882
  "kind": "import-statement",
@@ -7387,7 +7392,7 @@
7387
7392
  "imports": []
7388
7393
  },
7389
7394
  "src/Prebuilt/components/Chat/EmptyChat.tsx": {
7390
- "bytes": 1769,
7395
+ "bytes": 1781,
7391
7396
  "imports": [
7392
7397
  {
7393
7398
  "path": "react",
@@ -8257,7 +8262,7 @@
8257
8262
  "format": "esm"
8258
8263
  },
8259
8264
  "src/Prebuilt/components/SidePaneTabs.tsx": {
8260
- "bytes": 7873,
8265
+ "bytes": 7970,
8261
8266
  "imports": [
8262
8267
  {
8263
8268
  "path": "react",
@@ -8879,7 +8884,7 @@
8879
8884
  "format": "esm"
8880
8885
  },
8881
8886
  "src/Prebuilt/layouts/SidePane.tsx": {
8882
- "bytes": 4995,
8887
+ "bytes": 5020,
8883
8888
  "imports": [
8884
8889
  {
8885
8890
  "path": "react",
@@ -9924,7 +9929,7 @@
9924
9929
  "format": "esm"
9925
9930
  },
9926
9931
  "src/Prebuilt/components/ScreenshareTile.tsx": {
9927
- "bytes": 4446,
9932
+ "bytes": 4462,
9928
9933
  "imports": [
9929
9934
  {
9930
9935
  "path": "react",
@@ -10015,7 +10020,7 @@
10015
10020
  "format": "esm"
10016
10021
  },
10017
10022
  "src/Prebuilt/components/VideoLayouts/ScreenshareLayout.tsx": {
10018
- "bytes": 2843,
10023
+ "bytes": 3065,
10019
10024
  "imports": [
10020
10025
  {
10021
10026
  "path": "react",
@@ -12770,7 +12775,7 @@
12770
12775
  "imports": [],
12771
12776
  "exports": [],
12772
12777
  "inputs": {},
12773
- "bytes": 3164450
12778
+ "bytes": 3165128
12774
12779
  },
12775
12780
  "dist/index.cjs.js": {
12776
12781
  "imports": [
@@ -15474,7 +15479,7 @@
15474
15479
  "entryPoint": "src/index.ts",
15475
15480
  "inputs": {
15476
15481
  "<define:process.env>": {
15477
- "bytesInOutput": 18113
15482
+ "bytesInOutput": 18093
15478
15483
  },
15479
15484
  "src/Theme/base.config.ts": {
15480
15485
  "bytesInOutput": 6104
@@ -15879,7 +15884,7 @@
15879
15884
  "bytesInOutput": 6192
15880
15885
  },
15881
15886
  "src/Prebuilt/components/hooks/useFullscreen.js": {
15882
- "bytesInOutput": 1667
15887
+ "bytesInOutput": 1737
15883
15888
  },
15884
15889
  "src/Prebuilt/components/MoreSettings/FullScreenItem.jsx": {
15885
15890
  "bytesInOutput": 1014
@@ -16146,13 +16151,13 @@
16146
16151
  "bytesInOutput": 2366
16147
16152
  },
16148
16153
  "src/Prebuilt/components/Chat/EmptyChat.tsx": {
16149
- "bytesInOutput": 2200
16154
+ "bytesInOutput": 2211
16150
16155
  },
16151
16156
  "src/Prebuilt/components/hooks/usePinnedBy.tsx": {
16152
16157
  "bytesInOutput": 920
16153
16158
  },
16154
16159
  "src/Prebuilt/components/Chat/ChatBody.tsx": {
16155
- "bytesInOutput": 17144
16160
+ "bytesInOutput": 17105
16156
16161
  },
16157
16162
  "src/Prebuilt/components/Chat/ChatSelector.tsx": {
16158
16163
  "bytesInOutput": 8560
@@ -16191,7 +16196,7 @@
16191
16196
  "bytesInOutput": 3060
16192
16197
  },
16193
16198
  "src/Prebuilt/components/SidePaneTabs.tsx": {
16194
- "bytesInOutput": 8908
16199
+ "bytesInOutput": 9046
16195
16200
  },
16196
16201
  "src/Prebuilt/components/Connection/TileConnection.tsx": {
16197
16202
  "bytesInOutput": 2685
@@ -16227,7 +16232,7 @@
16227
16232
  "bytesInOutput": 8224
16228
16233
  },
16229
16234
  "src/Prebuilt/layouts/SidePane.tsx": {
16230
- "bytesInOutput": 5619
16235
+ "bytesInOutput": 5644
16231
16236
  },
16232
16237
  "src/Prebuilt/components/Chip.tsx": {
16233
16238
  "bytesInOutput": 1118
@@ -16287,10 +16292,10 @@
16287
16292
  "bytesInOutput": 1707
16288
16293
  },
16289
16294
  "src/Prebuilt/components/ScreenshareTile.tsx": {
16290
- "bytesInOutput": 5604
16295
+ "bytesInOutput": 5566
16291
16296
  },
16292
16297
  "src/Prebuilt/components/VideoLayouts/ScreenshareLayout.tsx": {
16293
- "bytesInOutput": 3219
16298
+ "bytesInOutput": 3419
16294
16299
  },
16295
16300
  "src/Prebuilt/common/PeersSorter.ts": {
16296
16301
  "bytesInOutput": 3604
@@ -16482,7 +16487,7 @@
16482
16487
  "bytesInOutput": 2980
16483
16488
  }
16484
16489
  },
16485
- "bytes": 1486503
16490
+ "bytes": 1486850
16486
16491
  }
16487
16492
  }
16488
16493
  }
@@ -3855,7 +3855,7 @@
3855
3855
  "format": "esm"
3856
3856
  },
3857
3857
  "src/Prebuilt/components/hooks/useFullscreen.js": {
3858
- "bytes": 1131,
3858
+ "bytes": 1246,
3859
3859
  "imports": [
3860
3860
  {
3861
3861
  "path": "react",
@@ -3872,6 +3872,11 @@
3872
3872
  "kind": "import-statement",
3873
3873
  "original": "../Toast/ToastManager"
3874
3874
  },
3875
+ {
3876
+ "path": "src/Prebuilt/common/constants.ts",
3877
+ "kind": "import-statement",
3878
+ "original": "../../common/constants"
3879
+ },
3875
3880
  {
3876
3881
  "path": "<define:process.env>",
3877
3882
  "kind": "import-statement",
@@ -7387,7 +7392,7 @@
7387
7392
  "imports": []
7388
7393
  },
7389
7394
  "src/Prebuilt/components/Chat/EmptyChat.tsx": {
7390
- "bytes": 1769,
7395
+ "bytes": 1781,
7391
7396
  "imports": [
7392
7397
  {
7393
7398
  "path": "react",
@@ -8257,7 +8262,7 @@
8257
8262
  "format": "esm"
8258
8263
  },
8259
8264
  "src/Prebuilt/components/SidePaneTabs.tsx": {
8260
- "bytes": 7873,
8265
+ "bytes": 7970,
8261
8266
  "imports": [
8262
8267
  {
8263
8268
  "path": "react",
@@ -8879,7 +8884,7 @@
8879
8884
  "format": "esm"
8880
8885
  },
8881
8886
  "src/Prebuilt/layouts/SidePane.tsx": {
8882
- "bytes": 4995,
8887
+ "bytes": 5020,
8883
8888
  "imports": [
8884
8889
  {
8885
8890
  "path": "react",
@@ -9924,7 +9929,7 @@
9924
9929
  "format": "esm"
9925
9930
  },
9926
9931
  "src/Prebuilt/components/ScreenshareTile.tsx": {
9927
- "bytes": 4446,
9932
+ "bytes": 4462,
9928
9933
  "imports": [
9929
9934
  {
9930
9935
  "path": "react",
@@ -10015,7 +10020,7 @@
10015
10020
  "format": "esm"
10016
10021
  },
10017
10022
  "src/Prebuilt/components/VideoLayouts/ScreenshareLayout.tsx": {
10018
- "bytes": 2843,
10023
+ "bytes": 3065,
10019
10024
  "imports": [
10020
10025
  {
10021
10026
  "path": "react",
@@ -12775,7 +12780,7 @@
12775
12780
  "dist/index.js": {
12776
12781
  "imports": [
12777
12782
  {
12778
- "path": "dist/chunk-FSSFZGW6.js",
12783
+ "path": "dist/chunk-QW3HEGVV.js",
12779
12784
  "kind": "import-statement"
12780
12785
  }
12781
12786
  ],
@@ -12848,16 +12853,16 @@
12848
12853
  "inputs": {},
12849
12854
  "bytes": 1822
12850
12855
  },
12851
- "dist/HLSView-SPGUNWZM.js.map": {
12856
+ "dist/HLSView-B7YXFUDK.js.map": {
12852
12857
  "imports": [],
12853
12858
  "exports": [],
12854
12859
  "inputs": {},
12855
12860
  "bytes": 58854
12856
12861
  },
12857
- "dist/HLSView-SPGUNWZM.js": {
12862
+ "dist/HLSView-B7YXFUDK.js": {
12858
12863
  "imports": [
12859
12864
  {
12860
- "path": "dist/chunk-FSSFZGW6.js",
12865
+ "path": "dist/chunk-QW3HEGVV.js",
12861
12866
  "kind": "import-statement"
12862
12867
  },
12863
12868
  {
@@ -13021,13 +13026,13 @@
13021
13026
  },
13022
13027
  "bytes": 36972
13023
13028
  },
13024
- "dist/chunk-FSSFZGW6.js.map": {
13029
+ "dist/chunk-QW3HEGVV.js.map": {
13025
13030
  "imports": [],
13026
13031
  "exports": [],
13027
13032
  "inputs": {},
13028
- "bytes": 3101252
13033
+ "bytes": 3101962
13029
13034
  },
13030
- "dist/chunk-FSSFZGW6.js": {
13035
+ "dist/chunk-QW3HEGVV.js": {
13031
13036
  "imports": [
13032
13037
  {
13033
13038
  "path": "react",
@@ -15275,7 +15280,7 @@
15275
15280
  "external": true
15276
15281
  },
15277
15282
  {
15278
- "path": "dist/HLSView-SPGUNWZM.js",
15283
+ "path": "dist/HLSView-B7YXFUDK.js",
15279
15284
  "kind": "dynamic-import"
15280
15285
  },
15281
15286
  {
@@ -15697,7 +15702,7 @@
15697
15702
  ],
15698
15703
  "inputs": {
15699
15704
  "<define:process.env>": {
15700
- "bytesInOutput": 18113
15705
+ "bytesInOutput": 18093
15701
15706
  },
15702
15707
  "../../node_modules/lodash/lodash.js": {
15703
15708
  "bytesInOutput": 224267
@@ -16108,7 +16113,7 @@
16108
16113
  "bytesInOutput": 628
16109
16114
  },
16110
16115
  "src/Prebuilt/components/hooks/useFullscreen.js": {
16111
- "bytesInOutput": 1172
16116
+ "bytesInOutput": 1220
16112
16117
  },
16113
16118
  "src/Prebuilt/components/MoreSettings/MuteAllModal.jsx": {
16114
16119
  "bytesInOutput": 2173
@@ -16261,7 +16266,7 @@
16261
16266
  "bytesInOutput": 9632
16262
16267
  },
16263
16268
  "src/Prebuilt/layouts/SidePane.tsx": {
16264
- "bytesInOutput": 4602
16269
+ "bytesInOutput": 4627
16265
16270
  },
16266
16271
  "src/Prebuilt/components/Polls/Polls.tsx": {
16267
16272
  "bytesInOutput": 735
@@ -16336,13 +16341,13 @@
16336
16341
  "bytesInOutput": 1727
16337
16342
  },
16338
16343
  "src/Prebuilt/components/SidePaneTabs.tsx": {
16339
- "bytesInOutput": 7277
16344
+ "bytesInOutput": 7387
16340
16345
  },
16341
16346
  "src/Prebuilt/components/Chat/Chat.tsx": {
16342
16347
  "bytesInOutput": 3444
16343
16348
  },
16344
16349
  "src/Prebuilt/components/Chat/ChatBody.tsx": {
16345
- "bytesInOutput": 14381
16350
+ "bytesInOutput": 14354
16346
16351
  },
16347
16352
  "src/Prebuilt/components/Chat/ChatActions.tsx": {
16348
16353
  "bytesInOutput": 9785
@@ -16357,7 +16362,7 @@
16357
16362
  "bytesInOutput": 2757
16358
16363
  },
16359
16364
  "src/Prebuilt/components/Chat/EmptyChat.tsx": {
16360
- "bytesInOutput": 1642
16365
+ "bytesInOutput": 1653
16361
16366
  },
16362
16367
  "src/Prebuilt/images/empty-chat.svg": {
16363
16368
  "bytesInOutput": 2261
@@ -16483,10 +16488,10 @@
16483
16488
  "bytesInOutput": 961
16484
16489
  },
16485
16490
  "src/Prebuilt/components/VideoLayouts/ScreenshareLayout.tsx": {
16486
- "bytesInOutput": 2496
16491
+ "bytesInOutput": 2664
16487
16492
  },
16488
16493
  "src/Prebuilt/components/ScreenshareTile.tsx": {
16489
- "bytesInOutput": 4434
16494
+ "bytesInOutput": 4430
16490
16495
  },
16491
16496
  "src/Prebuilt/components/LayoutModeSelector.tsx": {
16492
16497
  "bytesInOutput": 3093
@@ -16624,7 +16629,7 @@
16624
16629
  "bytesInOutput": 651
16625
16630
  }
16626
16631
  },
16627
- "bytes": 1264759
16632
+ "bytes": 1265070
16628
16633
  }
16629
16634
  }
16630
16635
  }
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "prebuilt",
11
11
  "roomkit"
12
12
  ],
13
- "version": "0.2.4-alpha.1",
13
+ "version": "0.2.4-alpha.3",
14
14
  "author": "100ms",
15
15
  "license": "MIT",
16
16
  "repository": {
@@ -82,10 +82,10 @@
82
82
  "react": ">=17.0.2 <19.0.0"
83
83
  },
84
84
  "dependencies": {
85
- "@100mslive/hls-player": "0.2.4-alpha.1",
86
- "@100mslive/hms-virtual-background": "1.12.4-alpha.1",
87
- "@100mslive/react-icons": "0.9.4-alpha.1",
88
- "@100mslive/react-sdk": "0.9.4-alpha.1",
85
+ "@100mslive/hls-player": "0.2.4-alpha.3",
86
+ "@100mslive/hms-virtual-background": "1.12.4-alpha.3",
87
+ "@100mslive/react-icons": "0.9.4-alpha.3",
88
+ "@100mslive/react-sdk": "0.9.4-alpha.3",
89
89
  "@100mslive/types-prebuilt": "0.12.6",
90
90
  "@emoji-mart/data": "^1.0.6",
91
91
  "@emoji-mart/react": "^1.0.1",
@@ -120,5 +120,5 @@
120
120
  "uuid": "^8.3.2",
121
121
  "worker-timers": "^7.0.40"
122
122
  },
123
- "gitHead": "ae40b4fdc16f86138cb26086f63e4555cc439bba"
123
+ "gitHead": "364fdcc42d01ca9cd41dde9915a0a9ef132a35d7"
124
124
  }
@@ -426,11 +426,11 @@ export const ChatBody = React.forwardRef<VariableSizeList, { scrollToBottom: (co
426
426
  return unsubscribe;
427
427
  }, [vanillaStore, listRef, scrollToBottom]);
428
428
 
429
- if (filteredMessages.length === 0) {
430
- return <EmptyChat />;
431
- }
432
-
433
- return <VirtualizedChatMessages messages={filteredMessages} ref={listRef} scrollToBottom={scrollToBottom} />;
429
+ return filteredMessages.length === 0 ? (
430
+ <EmptyChat />
431
+ ) : (
432
+ <VirtualizedChatMessages messages={filteredMessages} ref={listRef} scrollToBottom={scrollToBottom} />
433
+ );
434
434
  },
435
435
  );
436
436
 
@@ -33,7 +33,8 @@ export const EmptyChat = () => {
33
33
  justify="center"
34
34
  >
35
35
  <Box>
36
- <img src={emptyChat} alt="Empty Chat" height={132} width={185} style={{ margin: '0 auto' }} />
36
+ <img src={emptyChat} alt="Empty Chat" height={132} width={185} style={{ margin: '8px auto 4px auto' }} />
37
+
37
38
  <Text variant="h5" css={{ mt: '$8', c: '$on_surface_high' }}>
38
39
  {canSendMessages ? 'Start a conversation' : 'No messages yet'}
39
40
  </Text>
@@ -1,5 +1,5 @@
1
1
  import React, { useRef, useState } from 'react';
2
- import { useFullscreen } from 'react-use';
2
+ import { useFullscreen, useMedia } from 'react-use';
3
3
  import screenfull from 'screenfull';
4
4
  import {
5
5
  selectLocalPeerID,
@@ -12,7 +12,7 @@ import { ExpandIcon, ShrinkIcon } from '@100mslive/react-icons';
12
12
  import TileMenu from './TileMenu/TileMenu';
13
13
  import { Box } from '../../Layout';
14
14
  import { VideoTileStats } from '../../Stats';
15
- import { useTheme } from '../../Theme';
15
+ import { config as cssConfig, useTheme } from '../../Theme';
16
16
  import { Video } from '../../Video';
17
17
  import { StyledVideoTile } from '../../VideoTile';
18
18
  import { LayoutModeSelector } from './LayoutModeSelector';
@@ -39,6 +39,7 @@ const Tile = ({ peerId, width = '100%', height = '100%' }: { peerId: string; wid
39
39
  const peer = useHMSStore(selectPeerByID(peerId));
40
40
  const isAudioOnly = useUISettings(UI_SETTINGS.isAudioOnly);
41
41
  const [isMouseHovered, setIsMouseHovered] = useState(false);
42
+ const isMobile = useMedia(cssConfig.media.md);
42
43
  const showStatsOnTiles = useUISettings(UI_SETTINGS.showStatsOnTiles);
43
44
  const fullscreenRef = useRef<HTMLDivElement | null>(null);
44
45
  // fullscreen is for desired state
@@ -94,7 +95,7 @@ const Tile = ({ peerId, width = '100%', height = '100%' }: { peerId: string; wid
94
95
  {isFullscreen ? <ShrinkIcon /> : <ExpandIcon />}
95
96
  </StyledVideoTile.FullScreenButton>
96
97
  ) : null}
97
- {isMouseHovered && (
98
+ {!isMobile && isMouseHovered && (
98
99
  <Box
99
100
  css={{
100
101
  position: 'absolute',
@@ -111,13 +112,7 @@ const Tile = ({ peerId, width = '100%', height = '100%' }: { peerId: string; wid
111
112
  )}
112
113
 
113
114
  {track ? (
114
- <Video
115
- screenShare={true}
116
- mirror={peer.isLocal}
117
- attach={!isAudioOnly}
118
- trackId={track.id}
119
- css={{ minHeight: 0 }}
120
- />
115
+ <Video screenShare={true} mirror={false} attach={!isAudioOnly} trackId={track.id} css={{ minHeight: 0 }} />
121
116
  ) : null}
122
117
  <StyledVideoTile.Info css={labelStyles}>{label}</StyledVideoTile.Info>
123
118
  {isMouseHovered && !peer.isLocal ? (
@@ -194,7 +194,10 @@ export const SidePaneTabs = React.memo<{
194
194
  <Tabs.Content value={SIDE_PANE_OPTIONS.PARTICIPANTS} css={{ p: 0 }}>
195
195
  <ParticipantList offStageRoles={off_stage_roles} onActive={setActiveRole} />
196
196
  </Tabs.Content>
197
- <Tabs.Content value={SIDE_PANE_OPTIONS.CHAT} css={{ p: 0 }}>
197
+ <Tabs.Content
198
+ value={SIDE_PANE_OPTIONS.CHAT}
199
+ css={{ p: 0, overflowY: 'auto', '@md': { overflowY: 'unset' } }}
200
+ >
198
201
  <Chat />
199
202
  </Tabs.Content>
200
203
  </Tabs.Root>
@@ -35,10 +35,19 @@ export const ScreenshareLayout = ({ peers, onPageChange, onPageSize, edgeToEdge
35
35
  }, [activeSharePeer, peers, isMobile, layoutMode]);
36
36
 
37
37
  useEffect(() => {
38
- if (layoutMode !== LayoutMode.SIDEBAR) {
39
- setLayoutMode(LayoutMode.SIDEBAR);
38
+ if (isMobile) {
39
+ setLayoutMode(LayoutMode.GALLERY);
40
+ return;
40
41
  }
41
- }, []); // eslint-disable-line react-hooks/exhaustive-deps
42
+ if (layoutMode === LayoutMode.SIDEBAR) {
43
+ return;
44
+ }
45
+ setLayoutMode(LayoutMode.SIDEBAR);
46
+ return () => {
47
+ // reset to gallery once screenshare is stopped
48
+ setLayoutMode(LayoutMode.GALLERY);
49
+ };
50
+ }, [isMobile]); // eslint-disable-line react-hooks/exhaustive-deps
42
51
  useEffect(() => {
43
52
  setActiveScreenSharePeer(isMobile ? '' : activeSharePeer?.id);
44
53
  return () => {
@@ -1,6 +1,7 @@
1
1
  import { useCallback, useEffect, useState } from 'react';
2
2
  import screenfull from 'screenfull';
3
3
  import { ToastManager } from '../Toast/ToastManager';
4
+ import { DEFAULT_PORTAL_CONTAINER } from '../../common/constants';
4
5
 
5
6
  export const useFullscreen = () => {
6
7
  const [isFullScreenEnabled, setIsFullScreenEnabled] = useState(screenfull.isFullscreen);
@@ -14,7 +15,7 @@ export const useFullscreen = () => {
14
15
  if (isFullScreenEnabled) {
15
16
  await screenfull.exit();
16
17
  } else {
17
- await screenfull.request();
18
+ await screenfull.request(document.querySelector(DEFAULT_PORTAL_CONTAINER));
18
19
  }
19
20
  } catch (err) {
20
21
  ToastManager.addToast({ title: err.message });
@@ -121,7 +121,7 @@ const SidePane = ({
121
121
  },
122
122
  '@md': {
123
123
  p: '$6 $8',
124
- h: 'auto',
124
+ h: mwebStreamingChat ? 'auto' : '',
125
125
  pb: mwebStreamingChat ? '$20' : '$12',
126
126
  borderTopLeftRadius: sidepane === SIDE_PANE_OPTIONS.POLLS ? '$2' : '0',
127
127
  borderTopRightRadius: sidepane === SIDE_PANE_OPTIONS.POLLS ? '$2' : '0',