@100mslive/roomkit-react 0.2.8-alpha.10 → 0.2.8-alpha.12

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-R2JJJQR3.js";
65
+ } from "./chunk-B22UTHMR.js";
66
66
  export {
67
67
  Accordion,
68
68
  AudioLevel,
@@ -5935,7 +5935,7 @@
5935
5935
  "format": "esm"
5936
5936
  },
5937
5937
  "src/Prebuilt/components/Footer/RoleOptions.tsx": {
5938
- "bytes": 7053,
5938
+ "bytes": 7089,
5939
5939
  "imports": [
5940
5940
  {
5941
5941
  "path": "react",
@@ -8446,7 +8446,7 @@
8446
8446
  "format": "esm"
8447
8447
  },
8448
8448
  "src/Prebuilt/components/Chat/Chat.tsx": {
8449
- "bytes": 4814,
8449
+ "bytes": 4861,
8450
8450
  "imports": [
8451
8451
  {
8452
8452
  "path": "react",
@@ -10846,7 +10846,7 @@
10846
10846
  "format": "esm"
10847
10847
  },
10848
10848
  "src/Prebuilt/components/HMSVideo/HMSVideo.jsx": {
10849
- "bytes": 1301,
10849
+ "bytes": 1333,
10850
10850
  "imports": [
10851
10851
  {
10852
10852
  "path": "react",
@@ -11259,7 +11259,7 @@
11259
11259
  "format": "esm"
11260
11260
  },
11261
11261
  "src/Prebuilt/components/HMSVideo/MwebHLSViewTitle.tsx": {
11262
- "bytes": 2461,
11262
+ "bytes": 2527,
11263
11263
  "imports": [
11264
11264
  {
11265
11265
  "path": "react",
@@ -11315,7 +11315,7 @@
11315
11315
  "format": "esm"
11316
11316
  },
11317
11317
  "src/Prebuilt/layouts/HLSView.jsx": {
11318
- "bytes": 25579,
11318
+ "bytes": 26567,
11319
11319
  "imports": [
11320
11320
  {
11321
11321
  "path": "react",
@@ -11337,6 +11337,11 @@
11337
11337
  "kind": "import-statement",
11338
11338
  "external": true
11339
11339
  },
11340
+ {
11341
+ "path": "ts-pattern",
11342
+ "kind": "import-statement",
11343
+ "external": true
11344
+ },
11340
11345
  {
11341
11346
  "path": "@100mslive/react-sdk",
11342
11347
  "kind": "import-statement",
@@ -13602,7 +13607,7 @@
13602
13607
  "imports": [],
13603
13608
  "exports": [],
13604
13609
  "inputs": {},
13605
- "bytes": 3259526
13610
+ "bytes": 3261627
13606
13611
  },
13607
13612
  "dist/index.cjs.js": {
13608
13613
  "imports": [
@@ -16071,6 +16076,11 @@
16071
16076
  "kind": "require-call",
16072
16077
  "external": true
16073
16078
  },
16079
+ {
16080
+ "path": "ts-pattern",
16081
+ "kind": "require-call",
16082
+ "external": true
16083
+ },
16074
16084
  {
16075
16085
  "path": "@100mslive/react-sdk",
16076
16086
  "kind": "require-call",
@@ -16506,7 +16516,7 @@
16506
16516
  "entryPoint": "src/index.ts",
16507
16517
  "inputs": {
16508
16518
  "<define:process.env>": {
16509
- "bytesInOutput": 18240
16519
+ "bytesInOutput": 18259
16510
16520
  },
16511
16521
  "src/Theme/base.config.ts": {
16512
16522
  "bytesInOutput": 6104
@@ -17079,7 +17089,7 @@
17079
17089
  "bytesInOutput": 1694
17080
17090
  },
17081
17091
  "src/Prebuilt/components/Footer/RoleOptions.tsx": {
17082
- "bytesInOutput": 8483
17092
+ "bytesInOutput": 8531
17083
17093
  },
17084
17094
  "src/Prebuilt/components/Footer/RoleAccordion.tsx": {
17085
17095
  "bytesInOutput": 5338
@@ -17235,7 +17245,7 @@
17235
17245
  "bytesInOutput": 6106
17236
17246
  },
17237
17247
  "src/Prebuilt/components/Chat/Chat.tsx": {
17238
- "bytesInOutput": 5596
17248
+ "bytesInOutput": 5683
17239
17249
  },
17240
17250
  "src/Prebuilt/components/Footer/PaginatedParticipants.tsx": {
17241
17251
  "bytesInOutput": 5344
@@ -17370,7 +17380,7 @@
17370
17380
  "bytesInOutput": 656
17371
17381
  },
17372
17382
  "src/Prebuilt/components/HMSVideo/HMSVideo.jsx": {
17373
- "bytesInOutput": 1860
17383
+ "bytesInOutput": 1903
17374
17384
  },
17375
17385
  "src/Prebuilt/components/HMSVideo/PlayerContext.tsx": {
17376
17386
  "bytesInOutput": 489
@@ -17409,10 +17419,10 @@
17409
17419
  "bytesInOutput": 8496
17410
17420
  },
17411
17421
  "src/Prebuilt/components/HMSVideo/MwebHLSViewTitle.tsx": {
17412
- "bytesInOutput": 2852
17422
+ "bytesInOutput": 2886
17413
17423
  },
17414
17424
  "src/Prebuilt/layouts/HLSView.jsx": {
17415
- "bytesInOutput": 29703
17425
+ "bytesInOutput": 31039
17416
17426
  },
17417
17427
  "src/Prebuilt/layouts/VideoStreamingSection.tsx": {
17418
17428
  "bytesInOutput": 5017
@@ -17550,7 +17560,7 @@
17550
17560
  "bytesInOutput": 2980
17551
17561
  }
17552
17562
  },
17553
- "bytes": 1547557
17563
+ "bytes": 1549124
17554
17564
  }
17555
17565
  }
17556
17566
  }
@@ -5935,7 +5935,7 @@
5935
5935
  "format": "esm"
5936
5936
  },
5937
5937
  "src/Prebuilt/components/Footer/RoleOptions.tsx": {
5938
- "bytes": 7053,
5938
+ "bytes": 7089,
5939
5939
  "imports": [
5940
5940
  {
5941
5941
  "path": "react",
@@ -8446,7 +8446,7 @@
8446
8446
  "format": "esm"
8447
8447
  },
8448
8448
  "src/Prebuilt/components/Chat/Chat.tsx": {
8449
- "bytes": 4814,
8449
+ "bytes": 4861,
8450
8450
  "imports": [
8451
8451
  {
8452
8452
  "path": "react",
@@ -10846,7 +10846,7 @@
10846
10846
  "format": "esm"
10847
10847
  },
10848
10848
  "src/Prebuilt/components/HMSVideo/HMSVideo.jsx": {
10849
- "bytes": 1301,
10849
+ "bytes": 1333,
10850
10850
  "imports": [
10851
10851
  {
10852
10852
  "path": "react",
@@ -11259,7 +11259,7 @@
11259
11259
  "format": "esm"
11260
11260
  },
11261
11261
  "src/Prebuilt/components/HMSVideo/MwebHLSViewTitle.tsx": {
11262
- "bytes": 2461,
11262
+ "bytes": 2527,
11263
11263
  "imports": [
11264
11264
  {
11265
11265
  "path": "react",
@@ -11315,7 +11315,7 @@
11315
11315
  "format": "esm"
11316
11316
  },
11317
11317
  "src/Prebuilt/layouts/HLSView.jsx": {
11318
- "bytes": 25579,
11318
+ "bytes": 26567,
11319
11319
  "imports": [
11320
11320
  {
11321
11321
  "path": "react",
@@ -11337,6 +11337,11 @@
11337
11337
  "kind": "import-statement",
11338
11338
  "external": true
11339
11339
  },
11340
+ {
11341
+ "path": "ts-pattern",
11342
+ "kind": "import-statement",
11343
+ "external": true
11344
+ },
11340
11345
  {
11341
11346
  "path": "@100mslive/react-sdk",
11342
11347
  "kind": "import-statement",
@@ -13607,7 +13612,7 @@
13607
13612
  "dist/index.js": {
13608
13613
  "imports": [
13609
13614
  {
13610
- "path": "dist/chunk-R2JJJQR3.js",
13615
+ "path": "dist/chunk-B22UTHMR.js",
13611
13616
  "kind": "import-statement"
13612
13617
  }
13613
13618
  ],
@@ -13680,16 +13685,16 @@
13680
13685
  "inputs": {},
13681
13686
  "bytes": 1822
13682
13687
  },
13683
- "dist/HLSView-FBEGJ3L7.js.map": {
13688
+ "dist/HLSView-IIPEBXAG.js.map": {
13684
13689
  "imports": [],
13685
13690
  "exports": [],
13686
13691
  "inputs": {},
13687
- "bytes": 87085
13692
+ "bytes": 88957
13688
13693
  },
13689
- "dist/HLSView-FBEGJ3L7.js": {
13694
+ "dist/HLSView-IIPEBXAG.js": {
13690
13695
  "imports": [
13691
13696
  {
13692
- "path": "dist/chunk-R2JJJQR3.js",
13697
+ "path": "dist/chunk-B22UTHMR.js",
13693
13698
  "kind": "import-statement"
13694
13699
  },
13695
13700
  {
@@ -13712,6 +13717,11 @@
13712
13717
  "kind": "import-statement",
13713
13718
  "external": true
13714
13719
  },
13720
+ {
13721
+ "path": "ts-pattern",
13722
+ "kind": "import-statement",
13723
+ "external": true
13724
+ },
13715
13725
  {
13716
13726
  "path": "@100mslive/react-sdk",
13717
13727
  "kind": "import-statement",
@@ -13849,7 +13859,7 @@
13849
13859
  "entryPoint": "src/Prebuilt/layouts/HLSView.jsx",
13850
13860
  "inputs": {
13851
13861
  "src/Prebuilt/layouts/HLSView.jsx": {
13852
- "bytesInOutput": 24391
13862
+ "bytesInOutput": 25432
13853
13863
  },
13854
13864
  "src/Prebuilt/components/HlsStatsOverlay.jsx": {
13855
13865
  "bytesInOutput": 3521
@@ -13861,7 +13871,7 @@
13861
13871
  "bytesInOutput": 416
13862
13872
  },
13863
13873
  "src/Prebuilt/components/HMSVideo/HMSVideo.jsx": {
13864
- "bytesInOutput": 1425
13874
+ "bytesInOutput": 1464
13865
13875
  },
13866
13876
  "src/Prebuilt/components/HMSVideo/PlayPauseButton.tsx": {
13867
13877
  "bytesInOutput": 851
@@ -13897,18 +13907,18 @@
13897
13907
  "bytesInOutput": 7482
13898
13908
  },
13899
13909
  "src/Prebuilt/components/HMSVideo/MwebHLSViewTitle.tsx": {
13900
- "bytesInOutput": 2067
13910
+ "bytesInOutput": 2101
13901
13911
  }
13902
13912
  },
13903
- "bytes": 53355
13913
+ "bytes": 54476
13904
13914
  },
13905
- "dist/chunk-R2JJJQR3.js.map": {
13915
+ "dist/chunk-B22UTHMR.js.map": {
13906
13916
  "imports": [],
13907
13917
  "exports": [],
13908
13918
  "inputs": {},
13909
- "bytes": 3167900
13919
+ "bytes": 3168087
13910
13920
  },
13911
- "dist/chunk-R2JJJQR3.js": {
13921
+ "dist/chunk-B22UTHMR.js": {
13912
13922
  "imports": [
13913
13923
  {
13914
13924
  "path": "react",
@@ -16276,7 +16286,7 @@
16276
16286
  "external": true
16277
16287
  },
16278
16288
  {
16279
- "path": "dist/HLSView-FBEGJ3L7.js",
16289
+ "path": "dist/HLSView-IIPEBXAG.js",
16280
16290
  "kind": "dynamic-import"
16281
16291
  },
16282
16292
  {
@@ -16691,6 +16701,8 @@
16691
16701
  "Link",
16692
16702
  "Loading",
16693
16703
  "Logo",
16704
+ "POLL_STATE",
16705
+ "POLL_VIEWS",
16694
16706
  "PasswordInput",
16695
16707
  "Popover",
16696
16708
  "Progress",
@@ -16741,7 +16753,6 @@
16741
16753
  "useBorderAudioLevel",
16742
16754
  "useIsLandscape",
16743
16755
  "useIsSidepaneTypeOpen",
16744
- "usePollViewToggle",
16745
16756
  "useRoomLayoutConferencingScreen",
16746
16757
  "useRoomLayoutHeader",
16747
16758
  "useSidepaneToggle",
@@ -16749,7 +16760,7 @@
16749
16760
  ],
16750
16761
  "inputs": {
16751
16762
  "<define:process.env>": {
16752
- "bytesInOutput": 18240
16763
+ "bytesInOutput": 18259
16753
16764
  },
16754
16765
  "../../node_modules/lodash/lodash.js": {
16755
16766
  "bytesInOutput": 224291
@@ -17304,7 +17315,7 @@
17304
17315
  "bytesInOutput": 4229
17305
17316
  },
17306
17317
  "src/Prebuilt/components/Footer/RoleOptions.tsx": {
17307
- "bytesInOutput": 7290
17318
+ "bytesInOutput": 7326
17308
17319
  },
17309
17320
  "src/Prebuilt/components/Footer/PollsToggle.tsx": {
17310
17321
  "bytesInOutput": 1073
@@ -17412,7 +17423,7 @@
17412
17423
  "bytesInOutput": 7554
17413
17424
  },
17414
17425
  "src/Prebuilt/components/Chat/Chat.tsx": {
17415
- "bytesInOutput": 4425
17426
+ "bytesInOutput": 4500
17416
17427
  },
17417
17428
  "src/Prebuilt/components/Chat/ChatBody.tsx": {
17418
17429
  "bytesInOutput": 14396
@@ -17703,7 +17714,7 @@
17703
17714
  "bytesInOutput": 651
17704
17715
  }
17705
17716
  },
17706
- "bytes": 1297975
17717
+ "bytes": 1298112
17707
17718
  }
17708
17719
  }
17709
17720
  }
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "prebuilt",
11
11
  "roomkit"
12
12
  ],
13
- "version": "0.2.8-alpha.10",
13
+ "version": "0.2.8-alpha.12",
14
14
  "author": "100ms",
15
15
  "license": "MIT",
16
16
  "repository": {
@@ -82,11 +82,11 @@
82
82
  "react": ">=17.0.2 <19.0.0"
83
83
  },
84
84
  "dependencies": {
85
- "@100mslive/hls-player": "0.2.8-alpha.10",
85
+ "@100mslive/hls-player": "0.2.8-alpha.12",
86
86
  "@100mslive/hms-noise-cancellation": "0.0.0-alpha.1",
87
- "@100mslive/hms-virtual-background": "1.12.8-alpha.10",
88
- "@100mslive/react-icons": "0.9.8-alpha.10",
89
- "@100mslive/react-sdk": "0.9.8-alpha.10",
87
+ "@100mslive/hms-virtual-background": "1.12.8-alpha.12",
88
+ "@100mslive/react-icons": "0.9.8-alpha.12",
89
+ "@100mslive/react-sdk": "0.9.8-alpha.12",
90
90
  "@100mslive/types-prebuilt": "0.12.7",
91
91
  "@emoji-mart/data": "^1.0.6",
92
92
  "@emoji-mart/react": "^1.0.1",
@@ -122,5 +122,5 @@
122
122
  "uuid": "^8.3.2",
123
123
  "worker-timers": "^7.0.40"
124
124
  },
125
- "gitHead": "741a12014783f22c7302df3cbd3b01f2e343c16f"
125
+ "gitHead": "c5c687051efa9506328ae118b2bf8cd79b9a655c"
126
126
  }
@@ -42,6 +42,10 @@ export const Chat = () => {
42
42
  [hmsActions, vanillaStore],
43
43
  );
44
44
 
45
+ if (!elements?.chat) {
46
+ return null;
47
+ }
48
+
45
49
  return (
46
50
  <Flex
47
51
  direction="column"
@@ -80,9 +80,12 @@ export const RoleOptions = ({ roleName, peerList }: { roleName: string; peerList
80
80
  const { on_stage_role, off_stage_roles = [] } = (elements as DefaultConferencingScreen_Elements)?.on_stage_exp || {};
81
81
  const canRemoveRoleFromStage = permissions?.changeRole && roleName === on_stage_role;
82
82
  const role = useHMSStore(selectRoleByRoleName(roleName));
83
+ const tracks = useHMSStore(selectTracksMap);
84
+ if (!role) {
85
+ return null;
86
+ }
83
87
  const canPublishAudio = role.publishParams.allowed.includes('audio');
84
88
  const canPublishVideo = role.publishParams.allowed.includes('video');
85
- const tracks = useHMSStore(selectTracksMap);
86
89
 
87
90
  let isVideoOnForSomePeers = false;
88
91
  let isAudioOnForSomePeers = false;
@@ -46,6 +46,7 @@ export const HMSVideo = forwardRef(({ children, ...props }, videoRef) => {
46
46
  }}
47
47
  ref={videoRef}
48
48
  playsInline
49
+ disablePictureInPicture
49
50
  />
50
51
  {children}
51
52
  </Flex>
@@ -17,7 +17,7 @@ import { SIDE_PANE_OPTIONS } from '../../common/constants';
17
17
  half page will have chat or participant view
18
18
  */
19
19
  export const HLSViewTitle = () => {
20
- const { title, details } = useRoomLayoutHeader();
20
+ const { title, details, description } = useRoomLayoutHeader();
21
21
  const toggleDetailsPane = useSidepaneToggle(SIDE_PANE_OPTIONS.ROOM_DETAILS);
22
22
  const isDetailSidepaneOpen = useIsSidepaneTypeOpen(SIDE_PANE_OPTIONS.ROOM_DETAILS);
23
23
 
@@ -74,9 +74,11 @@ export const HLSViewTitle = () => {
74
74
  ) : null}
75
75
  <Flex>
76
76
  <RoomDetailsRow details={details} />
77
- <Text variant="caption" css={{ color: '$on_surface_medium' }} onClick={toggleDetailsPane}>
78
- &nbsp;...more
79
- </Text>
77
+ {description ? (
78
+ <Text variant="caption" css={{ color: '$on_surface_medium' }} onClick={toggleDetailsPane}>
79
+ &nbsp;...more
80
+ </Text>
81
+ ) : null}
80
82
  </Flex>
81
83
  </Flex>
82
84
  </Flex>
@@ -2,6 +2,7 @@ import React, { useCallback, useEffect, useRef, useState } from 'react';
2
2
  import { useFullscreen, useMedia, usePrevious, useToggle } from 'react-use';
3
3
  import { HLSPlaybackState, HMSHLSPlayer, HMSHLSPlayerEvents } from '@100mslive/hls-player';
4
4
  import screenfull from 'screenfull';
5
+ import { match, P } from 'ts-pattern';
5
6
  import {
6
7
  HLSPlaylistType,
7
8
  HMSNotificationTypes,
@@ -33,20 +34,41 @@ import { Loading } from '../../Loading';
33
34
  import { Text } from '../../Text';
34
35
  import { config, theme, useTheme } from '../../Theme';
35
36
  import { Tooltip } from '../../Tooltip';
36
- import { usePollViewToggle, useSidepaneToggle } from '../components/AppData/useSidepane';
37
+ import { useSidepaneToggle } from '../components/AppData/useSidepane';
37
38
  import { useRoomLayoutConferencingScreen } from '../provider/roomLayoutProvider/hooks/useRoomLayoutScreen';
38
39
  import { useIsLandscape } from '../common/hooks';
39
- import { APP_DATA, EMOJI_REACTION_TYPE, SIDE_PANE_OPTIONS } from '../common/constants';
40
+ import { APP_DATA, EMOJI_REACTION_TYPE, POLL_STATE, POLL_VIEWS, SIDE_PANE_OPTIONS } from '../common/constants';
40
41
 
41
42
  let hlsPlayer;
42
43
  const toastMap = {};
43
44
 
45
+ const ToggleChat = () => {
46
+ const { elements } = useRoomLayoutConferencingScreen();
47
+ const sidepane = useHMSStore(selectAppData(APP_DATA.sidePane));
48
+ const toggleChat = useSidepaneToggle(SIDE_PANE_OPTIONS.CHAT);
49
+ const showChat = !!elements?.chat;
50
+ const isMobile = useMedia(config.media.md);
51
+ const hmsActions = useHMSActions();
52
+
53
+ useEffect(() => {
54
+ match({ sidepane, isMobile, showChat })
55
+ .with({ isMobile: true, showChat: true, sidepane: P.when(value => !value) }, () => {
56
+ toggleChat();
57
+ })
58
+ .with({ showChat: false, isMobile: true, sidepane: SIDE_PANE_OPTIONS.CHAT }, () => {
59
+ hmsActions.setAppData(APP_DATA.sidePane, '');
60
+ })
61
+ .otherwise(() => {
62
+ //do nothing
63
+ });
64
+ }, [sidepane, isMobile, toggleChat, showChat, hmsActions]);
65
+ return null;
66
+ };
44
67
  const HLSView = () => {
45
68
  const videoRef = useRef(null);
46
69
  const hlsViewRef = useRef();
47
70
  const hlsState = useHMSStore(selectHLSState);
48
71
  const enablHlsStats = useHMSStore(selectAppData(APP_DATA.hlsStats));
49
- const { elements, screenType } = useRoomLayoutConferencingScreen();
50
72
  const notification = useHMSNotifications(HMSNotificationTypes.POLL_STOPPED);
51
73
  const hmsActions = useHMSActions();
52
74
  const { themeType } = useTheme();
@@ -63,17 +85,13 @@ const HLSView = () => {
63
85
  const [isPaused, setIsPaused] = useState(false);
64
86
  const [show, toggle] = useToggle(false);
65
87
  const lastHlsUrl = usePrevious(hlsUrl);
66
- const togglePollView = usePollViewToggle();
67
88
  const vanillaStore = useHMSVanillaStore();
68
89
  const [controlsVisible, setControlsVisible] = useState(true);
69
90
  const [isUserSelectedAuto, setIsUserSelectedAuto] = useState(true);
70
91
  const [qualityDropDownOpen, setQualityDropDownOpen] = useState(false);
71
92
  const controlsRef = useRef(null);
72
93
  const controlsTimerRef = useRef();
73
- const sidepane = useHMSStore(selectAppData(APP_DATA.sidePane));
74
- const toggleChat = useSidepaneToggle(SIDE_PANE_OPTIONS.CHAT);
75
94
  const [seekProgress, setSeekProgress] = useState(false);
76
- const showChat = !!elements?.chat;
77
95
  const isFullScreenSupported = screenfull.isEnabled;
78
96
 
79
97
  const isMobile = useMedia(config.media.md);
@@ -84,13 +102,6 @@ const HLSView = () => {
84
102
  });
85
103
  const [showLoader, setShowLoader] = useState(false);
86
104
 
87
- const isMwebHLSStream = screenType === 'hls_live_streaming' && isMobile;
88
-
89
- useEffect(() => {
90
- if (sidepane === '' && isMwebHLSStream && showChat) {
91
- toggleChat();
92
- }
93
- }, [sidepane, isMwebHLSStream, toggleChat, showChat]);
94
105
  // FIXME: move this logic to player controller in next release
95
106
  useEffect(() => {
96
107
  /**
@@ -176,7 +187,12 @@ const HLSView = () => {
176
187
  title: `${pollStartedBy} started a ${poll.type}: ${poll.title}`,
177
188
  action: (
178
189
  <Button
179
- onClick={() => togglePollView(pollId)}
190
+ onClick={() => {
191
+ hmsActions.setAppData({
192
+ [POLL_STATE.pollInView]: pollId,
193
+ [POLL_STATE.view]: POLL_VIEWS.VOTE,
194
+ });
195
+ }}
180
196
  variant="standard"
181
197
  css={{
182
198
  backgroundColor: '$surface_bright',
@@ -246,7 +262,7 @@ const HLSView = () => {
246
262
  hlsPlayer.reset();
247
263
  };
248
264
  }
249
- }, [hlsUrl, togglePollView, vanillaStore]);
265
+ }, [hlsUrl, vanillaStore, hmsActions]);
250
266
 
251
267
  /**
252
268
  * initialize and subscribe to hlsState
@@ -352,28 +368,36 @@ const HLSView = () => {
352
368
 
353
369
  if (!hlsUrl || streamEnded) {
354
370
  return (
355
- <Flex
356
- key="hls-viewer"
357
- id={`hls-viewer-${themeType}`}
358
- ref={hlsViewRef}
359
- direction={isMobile || isLandscape ? 'column' : 'row'}
360
- justify="center"
361
- css={{
362
- flex: isLandscape ? '2 1 0' : '1 1 0',
363
- }}
364
- >
365
- <Flex align="center" justify="center" direction="column" css={{ size: '100%', px: '$10' }}>
366
- <Flex css={{ c: '$on_surface_high', r: '$round', bg: '$surface_default', p: '$2' }}>
367
- {streamEnded ? <ColoredHandIcon height={56} width={56} /> : <GoLiveIcon height={56} width={56} />}
371
+ <>
372
+ <ToggleChat />
373
+ {hlsViewRef.current && (isMobile || isLandscape) && (
374
+ <Box css={{ position: 'fixed', left: '$4', top: '$4', zIndex: 11 }}>
375
+ <LeaveRoom screenType="hls_live_streaming" container={hlsViewRef.current} />
376
+ </Box>
377
+ )}
378
+ <Flex
379
+ key="hls-viewer"
380
+ id={`hls-viewer-${themeType}`}
381
+ ref={hlsViewRef}
382
+ direction={isMobile || isLandscape ? 'column' : 'row'}
383
+ justify="center"
384
+ css={{
385
+ flex: isLandscape ? '2 1 0' : '1 1 0',
386
+ }}
387
+ >
388
+ <Flex align="center" justify="center" direction="column" css={{ size: '100%', px: '$10' }}>
389
+ <Flex css={{ c: '$on_surface_high', r: '$round', bg: '$surface_default', p: '$2' }}>
390
+ {streamEnded ? <ColoredHandIcon height={56} width={56} /> : <GoLiveIcon height={56} width={56} />}
391
+ </Flex>
392
+ <Text variant="h5" css={{ c: '$on_surface_high', mt: '$10', mb: 0, textAlign: 'center' }}>
393
+ {streamEnded ? 'Stream has ended' : 'Stream yet to start'}
394
+ </Text>
395
+ <Text variant="md" css={{ textAlign: 'center', mt: '$4', c: '$on_surface_medium' }}>
396
+ {streamEnded ? 'Have a nice day!' : 'Sit back and relax'}
397
+ </Text>
368
398
  </Flex>
369
- <Text variant="h5" css={{ c: '$on_surface_high', mt: '$10', mb: 0, textAlign: 'center' }}>
370
- {streamEnded ? 'Stream has ended' : 'Stream yet to start'}
371
- </Text>
372
- <Text variant="md" css={{ textAlign: 'center', mt: '$4', c: '$on_surface_medium' }}>
373
- {streamEnded ? 'Have a nice day!' : 'Sit back and relax'}
374
- </Text>
375
399
  </Flex>
376
- </Flex>
400
+ </>
377
401
  );
378
402
  }
379
403
  return (
@@ -385,11 +409,16 @@ const HLSView = () => {
385
409
  justify="center"
386
410
  css={{
387
411
  flex: isLandscape ? '2 1 0' : '1 1 0',
412
+ '&:fullscreen': {
413
+ '& video': {
414
+ height: 'unset !important',
415
+ },
416
+ },
388
417
  }}
389
418
  >
390
419
  {hlsViewRef.current && (isMobile || isLandscape) && (
391
420
  <Box css={{ position: 'fixed', left: '$4', top: '$4', zIndex: 11 }}>
392
- <LeaveRoom screenType={screenType} container={hlsViewRef.current} />
421
+ <LeaveRoom screenType="hls_live_streaming" container={hlsViewRef.current} />
393
422
  </Box>
394
423
  )}
395
424
 
@@ -638,7 +667,7 @@ const HLSView = () => {
638
667
  </HMSVideoPlayer.Root>
639
668
  </Flex>
640
669
  </HMSPlayerContext.Provider>
641
-
670
+ <ToggleChat />
642
671
  {isMobile && !isFullScreen && <HLSViewTitle />}
643
672
  </Flex>
644
673
  );