@100mslive/roomkit-react 0.3.7 → 0.3.8-alpha.0

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-VKO5HF7B.js";
65
+ } from "./chunk-NDLMRKFR.js";
66
66
  export {
67
67
  Accordion,
68
68
  AudioLevel,
@@ -4691,7 +4691,7 @@
4691
4691
  "format": "cjs"
4692
4692
  },
4693
4693
  "../hms-video-store/dist/index.js": {
4694
- "bytes": 331213,
4694
+ "bytes": 331528,
4695
4695
  "imports": [
4696
4696
  {
4697
4697
  "path": "../../node_modules/reselect/es/index.js",
@@ -7622,7 +7622,7 @@
7622
7622
  "format": "esm"
7623
7623
  },
7624
7624
  "src/Prebuilt/components/RoomDetails/RoomDetailsPane.tsx": {
7625
- "bytes": 2042,
7625
+ "bytes": 2121,
7626
7626
  "imports": [
7627
7627
  {
7628
7628
  "path": "react",
@@ -9403,7 +9403,7 @@
9403
9403
  "format": "esm"
9404
9404
  },
9405
9405
  "src/Prebuilt/layouts/SidePane.tsx": {
9406
- "bytes": 6751,
9406
+ "bytes": 6739,
9407
9407
  "imports": [
9408
9408
  {
9409
9409
  "path": "react",
@@ -11118,7 +11118,7 @@
11118
11118
  "format": "esm"
11119
11119
  },
11120
11120
  "src/Prebuilt/components/HMSVideo/utils.ts": {
11121
- "bytes": 977,
11121
+ "bytes": 1203,
11122
11122
  "imports": [
11123
11123
  {
11124
11124
  "path": "<define:process.env>",
@@ -11129,7 +11129,7 @@
11129
11129
  "format": "esm"
11130
11130
  },
11131
11131
  "src/Prebuilt/components/HMSVideo/VideoProgress.tsx": {
11132
- "bytes": 2967,
11132
+ "bytes": 2942,
11133
11133
  "imports": [
11134
11134
  {
11135
11135
  "path": "react",
@@ -11160,7 +11160,7 @@
11160
11160
  "format": "esm"
11161
11161
  },
11162
11162
  "src/Prebuilt/components/HMSVideo/VideoTime.tsx": {
11163
- "bytes": 1309,
11163
+ "bytes": 1531,
11164
11164
  "imports": [
11165
11165
  {
11166
11166
  "path": "react",
@@ -13775,7 +13775,7 @@
13775
13775
  "imports": [],
13776
13776
  "exports": [],
13777
13777
  "inputs": {},
13778
- "bytes": 3304564
13778
+ "bytes": 3305923
13779
13779
  },
13780
13780
  "dist/index.cjs.js": {
13781
13781
  "imports": [
@@ -16719,7 +16719,7 @@
16719
16719
  "entryPoint": "src/index.ts",
16720
16720
  "inputs": {
16721
16721
  "<define:process.env>": {
16722
- "bytesInOutput": 18230
16722
+ "bytesInOutput": 18306
16723
16723
  },
16724
16724
  "src/Theme/base.config.ts": {
16725
16725
  "bytesInOutput": 6104
@@ -17199,7 +17199,7 @@
17199
17199
  "bytesInOutput": 16122
17200
17200
  },
17201
17201
  "../../node_modules/sdp-transform/lib/parser.js": {
17202
- "bytesInOutput": 3497
17202
+ "bytesInOutput": 3492
17203
17203
  },
17204
17204
  "../../node_modules/sdp-transform/lib/writer.js": {
17205
17205
  "bytesInOutput": 3070
@@ -17208,7 +17208,7 @@
17208
17208
  "bytesInOutput": 615
17209
17209
  },
17210
17210
  "../hms-video-store/dist/index.js": {
17211
- "bytesInOutput": 53600
17211
+ "bytesInOutput": 53608
17212
17212
  },
17213
17213
  "src/Prebuilt/components/hooks/usePlaylistMusic.js": {
17214
17214
  "bytesInOutput": 1384
@@ -17400,7 +17400,7 @@
17400
17400
  "bytesInOutput": 1003
17401
17401
  },
17402
17402
  "src/Prebuilt/components/RoomDetails/RoomDetailsPane.tsx": {
17403
- "bytesInOutput": 2558
17403
+ "bytesInOutput": 2637
17404
17404
  },
17405
17405
  "src/Prebuilt/components/Chat/MwebChatOption.tsx": {
17406
17406
  "bytesInOutput": 688
@@ -17499,7 +17499,7 @@
17499
17499
  "bytesInOutput": 8756
17500
17500
  },
17501
17501
  "src/Prebuilt/layouts/SidePane.tsx": {
17502
- "bytesInOutput": 7958
17502
+ "bytesInOutput": 7946
17503
17503
  },
17504
17504
  "src/Prebuilt/components/Chip.tsx": {
17505
17505
  "bytesInOutput": 1118
@@ -17604,13 +17604,13 @@
17604
17604
  "bytesInOutput": 5741
17605
17605
  },
17606
17606
  "src/Prebuilt/components/HMSVideo/utils.ts": {
17607
- "bytesInOutput": 833
17607
+ "bytesInOutput": 1025
17608
17608
  },
17609
17609
  "src/Prebuilt/components/HMSVideo/VideoProgress.tsx": {
17610
- "bytesInOutput": 3785
17610
+ "bytesInOutput": 3714
17611
17611
  },
17612
17612
  "src/Prebuilt/components/HMSVideo/VideoTime.tsx": {
17613
- "bytesInOutput": 1748
17613
+ "bytesInOutput": 2019
17614
17614
  },
17615
17615
  "src/Prebuilt/components/HMSVideo/VolumeControl.tsx": {
17616
17616
  "bytesInOutput": 2951
@@ -17772,7 +17772,7 @@
17772
17772
  "bytesInOutput": 2980
17773
17773
  }
17774
17774
  },
17775
- "bytes": 1572299
17775
+ "bytes": 1572837
17776
17776
  }
17777
17777
  }
17778
17778
  }
@@ -4691,7 +4691,7 @@
4691
4691
  "format": "cjs"
4692
4692
  },
4693
4693
  "../hms-video-store/dist/index.js": {
4694
- "bytes": 331213,
4694
+ "bytes": 331528,
4695
4695
  "imports": [
4696
4696
  {
4697
4697
  "path": "../../node_modules/reselect/es/index.js",
@@ -7622,7 +7622,7 @@
7622
7622
  "format": "esm"
7623
7623
  },
7624
7624
  "src/Prebuilt/components/RoomDetails/RoomDetailsPane.tsx": {
7625
- "bytes": 2042,
7625
+ "bytes": 2121,
7626
7626
  "imports": [
7627
7627
  {
7628
7628
  "path": "react",
@@ -9403,7 +9403,7 @@
9403
9403
  "format": "esm"
9404
9404
  },
9405
9405
  "src/Prebuilt/layouts/SidePane.tsx": {
9406
- "bytes": 6751,
9406
+ "bytes": 6739,
9407
9407
  "imports": [
9408
9408
  {
9409
9409
  "path": "react",
@@ -11118,7 +11118,7 @@
11118
11118
  "format": "esm"
11119
11119
  },
11120
11120
  "src/Prebuilt/components/HMSVideo/utils.ts": {
11121
- "bytes": 977,
11121
+ "bytes": 1203,
11122
11122
  "imports": [
11123
11123
  {
11124
11124
  "path": "<define:process.env>",
@@ -11129,7 +11129,7 @@
11129
11129
  "format": "esm"
11130
11130
  },
11131
11131
  "src/Prebuilt/components/HMSVideo/VideoProgress.tsx": {
11132
- "bytes": 2967,
11132
+ "bytes": 2942,
11133
11133
  "imports": [
11134
11134
  {
11135
11135
  "path": "react",
@@ -11160,7 +11160,7 @@
11160
11160
  "format": "esm"
11161
11161
  },
11162
11162
  "src/Prebuilt/components/HMSVideo/VideoTime.tsx": {
11163
- "bytes": 1309,
11163
+ "bytes": 1531,
11164
11164
  "imports": [
11165
11165
  {
11166
11166
  "path": "react",
@@ -13780,7 +13780,7 @@
13780
13780
  "dist/index.js": {
13781
13781
  "imports": [
13782
13782
  {
13783
- "path": "dist/chunk-VKO5HF7B.js",
13783
+ "path": "dist/chunk-NDLMRKFR.js",
13784
13784
  "kind": "import-statement"
13785
13785
  }
13786
13786
  ],
@@ -13853,16 +13853,16 @@
13853
13853
  "inputs": {},
13854
13854
  "bytes": 1822
13855
13855
  },
13856
- "dist/HLSView-J76FQQDB.js.map": {
13856
+ "dist/HLSView-CTZXD762.js.map": {
13857
13857
  "imports": [],
13858
13858
  "exports": [],
13859
13859
  "inputs": {},
13860
- "bytes": 99966
13860
+ "bytes": 100708
13861
13861
  },
13862
- "dist/HLSView-J76FQQDB.js": {
13862
+ "dist/HLSView-CTZXD762.js": {
13863
13863
  "imports": [
13864
13864
  {
13865
- "path": "dist/chunk-VKO5HF7B.js",
13865
+ "path": "dist/chunk-NDLMRKFR.js",
13866
13866
  "kind": "import-statement"
13867
13867
  },
13868
13868
  {
@@ -14069,13 +14069,13 @@
14069
14069
  "bytesInOutput": 328
14070
14070
  },
14071
14071
  "src/Prebuilt/components/HMSVideo/VideoProgress.tsx": {
14072
- "bytesInOutput": 3058
14072
+ "bytesInOutput": 2986
14073
14073
  },
14074
14074
  "src/Prebuilt/components/HMSVideo/utils.ts": {
14075
- "bytesInOutput": 725
14075
+ "bytesInOutput": 917
14076
14076
  },
14077
14077
  "src/Prebuilt/components/HMSVideo/VideoTime.tsx": {
14078
- "bytesInOutput": 1316
14078
+ "bytesInOutput": 1564
14079
14079
  },
14080
14080
  "src/Prebuilt/components/HMSVideo/VolumeControl.tsx": {
14081
14081
  "bytesInOutput": 2284
@@ -14096,15 +14096,15 @@
14096
14096
  "bytesInOutput": 2101
14097
14097
  }
14098
14098
  },
14099
- "bytes": 61571
14099
+ "bytes": 61939
14100
14100
  },
14101
- "dist/chunk-VKO5HF7B.js.map": {
14101
+ "dist/chunk-NDLMRKFR.js.map": {
14102
14102
  "imports": [],
14103
14103
  "exports": [],
14104
14104
  "inputs": {},
14105
- "bytes": 3200409
14105
+ "bytes": 3201090
14106
14106
  },
14107
- "dist/chunk-VKO5HF7B.js": {
14107
+ "dist/chunk-NDLMRKFR.js": {
14108
14108
  "imports": [
14109
14109
  {
14110
14110
  "path": "react",
@@ -16487,7 +16487,7 @@
16487
16487
  "external": true
16488
16488
  },
16489
16489
  {
16490
- "path": "dist/HLSView-J76FQQDB.js",
16490
+ "path": "dist/HLSView-CTZXD762.js",
16491
16491
  "kind": "dynamic-import"
16492
16492
  },
16493
16493
  {
@@ -16968,7 +16968,7 @@
16968
16968
  ],
16969
16969
  "inputs": {
16970
16970
  "<define:process.env>": {
16971
- "bytesInOutput": 18230
16971
+ "bytesInOutput": 18306
16972
16972
  },
16973
16973
  "../../node_modules/lodash/lodash.js": {
16974
16974
  "bytesInOutput": 224310
@@ -16986,7 +16986,7 @@
16986
16986
  "bytesInOutput": 16120
16987
16987
  },
16988
16988
  "../../node_modules/sdp-transform/lib/parser.js": {
16989
- "bytesInOutput": 3497
16989
+ "bytesInOutput": 3492
16990
16990
  },
16991
16991
  "../../node_modules/sdp-transform/lib/writer.js": {
16992
16992
  "bytesInOutput": 3068
@@ -17406,7 +17406,7 @@
17406
17406
  "bytesInOutput": 10031
17407
17407
  },
17408
17408
  "../hms-video-store/dist/index.js": {
17409
- "bytesInOutput": 49002
17409
+ "bytesInOutput": 49010
17410
17410
  },
17411
17411
  "../../node_modules/reselect/es/index.js": {
17412
17412
  "bytesInOutput": 2537
@@ -17547,7 +17547,7 @@
17547
17547
  "bytesInOutput": 9625
17548
17548
  },
17549
17549
  "src/Prebuilt/layouts/SidePane.tsx": {
17550
- "bytesInOutput": 6448
17550
+ "bytesInOutput": 6436
17551
17551
  },
17552
17552
  "src/Prebuilt/components/Polls/Polls.tsx": {
17553
17553
  "bytesInOutput": 735
@@ -17622,7 +17622,7 @@
17622
17622
  "bytesInOutput": 1727
17623
17623
  },
17624
17624
  "src/Prebuilt/components/RoomDetails/RoomDetailsPane.tsx": {
17625
- "bytesInOutput": 1835
17625
+ "bytesInOutput": 1914
17626
17626
  },
17627
17627
  "src/Prebuilt/components/Header/HeaderComponents.jsx": {
17628
17628
  "bytesInOutput": 1626
@@ -17928,7 +17928,7 @@
17928
17928
  "bytesInOutput": 651
17929
17929
  }
17930
17930
  },
17931
- "bytes": 1310381
17931
+ "bytes": 1310527
17932
17932
  }
17933
17933
  }
17934
17934
  }
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "prebuilt",
11
11
  "roomkit"
12
12
  ],
13
- "version": "0.3.7",
13
+ "version": "0.3.8-alpha.0",
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.3.7",
85
+ "@100mslive/hls-player": "0.3.8-alpha.0",
86
86
  "@100mslive/hms-noise-cancellation": "0.0.1",
87
- "@100mslive/hms-virtual-background": "1.13.7",
88
- "@100mslive/react-icons": "0.10.7",
89
- "@100mslive/react-sdk": "0.10.7",
87
+ "@100mslive/hms-virtual-background": "1.13.8-alpha.0",
88
+ "@100mslive/react-icons": "0.10.8-alpha.0",
89
+ "@100mslive/react-sdk": "0.10.8-alpha.0",
90
90
  "@100mslive/types-prebuilt": "0.12.8",
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": "cc9d1fa2804d266e26226b250edc0fc7b76f0691"
125
+ "gitHead": "01f2b5f23cc814beb7f077b46b6736f1e00ceaad"
126
126
  }
@@ -1,7 +1,7 @@
1
1
  import React, { useCallback, useEffect, useState } from 'react';
2
2
  import { Box, Flex, Slider } from '../../..';
3
3
  import { useHMSPlayerContext } from './PlayerContext';
4
- import { getPercentage } from './utils';
4
+ import { getDuration, getPercentage } from './utils';
5
5
 
6
6
  export const VideoProgress = ({
7
7
  seekProgress,
@@ -19,7 +19,7 @@ export const VideoProgress = ({
19
19
  if (!videoEl) {
20
20
  return;
21
21
  }
22
- const duration = isFinite(videoEl.duration) ? videoEl.duration : videoEl.seekable?.end(0) || 0;
22
+ const duration = getDuration(videoEl);
23
23
  const videoProgress = Math.floor(getPercentage(videoEl.currentTime, duration));
24
24
  let bufferProgress = 0;
25
25
  if (videoEl.buffered.length > 0) {
@@ -42,6 +42,7 @@ export const VideoProgress = ({
42
42
  if (!videoEl) {
43
43
  return;
44
44
  }
45
+ setProgress();
45
46
  videoEl.addEventListener('timeupdate', timeupdateHandler);
46
47
  return function cleanup() {
47
48
  videoEl?.removeEventListener('timeupdate', timeupdateHandler);
@@ -1,30 +1,39 @@
1
- import React, { useEffect, useState } from 'react';
1
+ import React, { useCallback, useEffect, useState } from 'react';
2
2
  import { HMSHLSPlayerEvents } from '@100mslive/hls-player';
3
3
  import { Text } from '../../../Text';
4
4
  import { useHMSPlayerContext } from './PlayerContext';
5
- import { getDurationFromSeconds } from './utils';
5
+ import { getDuration, getDurationFromSeconds } from './utils';
6
6
 
7
7
  export const VideoTime = () => {
8
8
  const { hlsPlayer } = useHMSPlayerContext();
9
- const [videoTime, setVideoTime] = useState('');
10
9
 
11
- useEffect(() => {
12
- const timeupdateHandler = (currentTime: number) => {
10
+ const [videoTime, setVideoTime] = useState(getDurationFromSeconds(0));
11
+
12
+ const updateTime = useCallback(
13
+ (currentTime: number) => {
13
14
  const videoEl = hlsPlayer?.getVideoElement();
14
15
  if (videoEl) {
15
- const duration = isFinite(videoEl.duration) ? videoEl.duration : videoEl.seekable.end(0) || 0;
16
+ const duration = getDuration(videoEl);
16
17
  setVideoTime(getDurationFromSeconds(duration - currentTime));
17
18
  } else {
18
19
  setVideoTime(getDurationFromSeconds(currentTime));
19
20
  }
21
+ },
22
+ [hlsPlayer],
23
+ );
24
+ useEffect(() => {
25
+ const timeupdateHandler = (currentTime: number) => {
26
+ updateTime(currentTime);
20
27
  };
21
28
  if (hlsPlayer) {
22
29
  hlsPlayer.on(HMSHLSPlayerEvents.CURRENT_TIME, timeupdateHandler);
30
+ const videoEl = hlsPlayer?.getVideoElement();
31
+ updateTime(videoEl.currentTime);
23
32
  }
24
33
  return function cleanup() {
25
34
  hlsPlayer?.off(HMSHLSPlayerEvents.CURRENT_TIME, timeupdateHandler);
26
35
  };
27
- }, [hlsPlayer]);
36
+ }, [hlsPlayer, updateTime]);
28
37
 
29
38
  return hlsPlayer ? (
30
39
  <Text
@@ -25,3 +25,13 @@ export function getDurationFromSeconds(timeInSeconds: number) {
25
25
  }
26
26
  return videoTimeStr;
27
27
  }
28
+
29
+ export function getDuration(videoEl: HTMLVideoElement): number {
30
+ if (isFinite(videoEl.duration)) {
31
+ return videoEl.duration;
32
+ }
33
+ if (videoEl.seekable.length > 0) {
34
+ return videoEl.seekable.end(0);
35
+ }
36
+ return 0;
37
+ }
@@ -15,7 +15,7 @@ export const RoomDetailsPane = () => {
15
15
  const { description } = useRoomLayoutHeader();
16
16
  const isMwebHLSStream = useMobileHLSStream();
17
17
  return (
18
- <Box css={{ flex: '1 1 0' }}>
18
+ <Box css={{ flex: '1 1 0', position: 'relative' }}>
19
19
  {isMwebHLSStream ? (
20
20
  <Flex direction="row" align="center" gap="2">
21
21
  <Logo />
@@ -41,7 +41,7 @@ const ShowRoomDetailHeader = () => {
41
41
  const toggleDetailsPane = useSidepaneToggle(SIDE_PANE_OPTIONS.ROOM_DETAILS);
42
42
  const isMwebHLSStream = useMobileHLSStream();
43
43
  return (
44
- <Flex direction="column">
44
+ <Flex direction="column" css={{ position: 'sticky', top: 0, bg: '$surface_dim' }}>
45
45
  <Flex justify="between" align="center" css={{ w: '100%' }}>
46
46
  <Text variant="h6">{title}</Text>
47
47
  {!isMwebHLSStream && (
@@ -162,7 +162,7 @@ const SidePane = ({
162
162
  mobileStream: isMobileHLSStream,
163
163
  hideControls,
164
164
  overlayChat: !!elements?.chat?.is_overlay,
165
- roomDescription: isMobile && sidepane === SIDE_PANE_OPTIONS.ROOM_DETAILS,
165
+ roomDescription: sidepane === SIDE_PANE_OPTIONS.ROOM_DETAILS,
166
166
  virtualBackground: sidepane === SIDE_PANE_OPTIONS.VB,
167
167
  };
168
168