@100mslive/roomkit-react 0.3.14-alpha.2 → 0.3.14-alpha.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -4951,7 +4951,7 @@
4951
4951
  "format": "cjs"
4952
4952
  },
4953
4953
  "../hms-video-store/dist/index.js": {
4954
- "bytes": 354737,
4954
+ "bytes": 355009,
4955
4955
  "imports": [
4956
4956
  {
4957
4957
  "path": "../../node_modules/reselect/es/index.js",
@@ -10974,7 +10974,7 @@
10974
10974
  ],
10975
10975
  "format": "esm"
10976
10976
  },
10977
- "../../../../../../../tmp/tmp-2799-1T2538P9hRBm/1902b6952d22/tldraw.css": {
10977
+ "../../../../../../../tmp/tmp-2775-z50BoQ6b5DoC/190300299863/tldraw.css": {
10978
10978
  "bytes": 80111,
10979
10979
  "imports": [
10980
10980
  {
@@ -11024,7 +11024,7 @@
11024
11024
  }
11025
11025
  ]
11026
11026
  },
11027
- "../../../../../../../tmp/tmp-2799-1T2538P9hRBm/1902b6952b81/index.css": {
11027
+ "../../../../../../../tmp/tmp-2775-z50BoQ6b5DoC/1903002989c0/index.css": {
11028
11028
  "bytes": 597,
11029
11029
  "imports": [
11030
11030
  {
@@ -11033,7 +11033,7 @@
11033
11033
  "external": true
11034
11034
  },
11035
11035
  {
11036
- "path": "../../../../../../../tmp/tmp-2799-1T2538P9hRBm/1902b6952d22/tldraw.css",
11036
+ "path": "../../../../../../../tmp/tmp-2775-z50BoQ6b5DoC/190300299863/tldraw.css",
11037
11037
  "kind": "import-rule",
11038
11038
  "original": "@tldraw/tldraw/tldraw.css"
11039
11039
  }
@@ -11108,7 +11108,7 @@
11108
11108
  "original": "../../common/constants"
11109
11109
  },
11110
11110
  {
11111
- "path": "../../../../../../../tmp/tmp-2799-1T2538P9hRBm/1902b6952b81/index.css",
11111
+ "path": "../../../../../../../tmp/tmp-2775-z50BoQ6b5DoC/1903002989c0/index.css",
11112
11112
  "kind": "import-statement",
11113
11113
  "original": "@100mslive/hms-whiteboard/index.css"
11114
11114
  },
@@ -12312,7 +12312,7 @@
12312
12312
  "format": "esm"
12313
12313
  },
12314
12314
  "src/Prebuilt/components/Header/common.jsx": {
12315
- "bytes": 5673,
12315
+ "bytes": 5819,
12316
12316
  "imports": [
12317
12317
  {
12318
12318
  "path": "react",
@@ -14147,7 +14147,7 @@
14147
14147
  "format": "esm"
14148
14148
  },
14149
14149
  "src/Diagnostics/components.tsx": {
14150
- "bytes": 2320,
14150
+ "bytes": 2317,
14151
14151
  "imports": [
14152
14152
  {
14153
14153
  "path": "react",
@@ -14479,8 +14479,49 @@
14479
14479
  ],
14480
14480
  "format": "esm"
14481
14481
  },
14482
+ "src/Diagnostics/BrowserTest.tsx": {
14483
+ "bytes": 4051,
14484
+ "imports": [
14485
+ {
14486
+ "path": "react",
14487
+ "kind": "import-statement",
14488
+ "external": true
14489
+ },
14490
+ {
14491
+ "path": "@100mslive/react-sdk",
14492
+ "kind": "import-statement",
14493
+ "external": true
14494
+ },
14495
+ {
14496
+ "path": "src/Diagnostics/components.tsx",
14497
+ "kind": "import-statement",
14498
+ "original": "./components"
14499
+ },
14500
+ {
14501
+ "path": "src/Layout/index.tsx",
14502
+ "kind": "import-statement",
14503
+ "original": "../Layout"
14504
+ },
14505
+ {
14506
+ "path": "src/Text/index.tsx",
14507
+ "kind": "import-statement",
14508
+ "original": "../Text"
14509
+ },
14510
+ {
14511
+ "path": "src/Diagnostics/hms.ts",
14512
+ "kind": "import-statement",
14513
+ "original": "./hms"
14514
+ },
14515
+ {
14516
+ "path": "<define:process.env>",
14517
+ "kind": "import-statement",
14518
+ "external": true
14519
+ }
14520
+ ],
14521
+ "format": "esm"
14522
+ },
14482
14523
  "src/Diagnostics/ConnectivityTest.tsx": {
14483
- "bytes": 11095,
14524
+ "bytes": 11149,
14484
14525
  "imports": [
14485
14526
  {
14486
14527
  "path": "react",
@@ -14607,7 +14648,7 @@
14607
14648
  "format": "esm"
14608
14649
  },
14609
14650
  "src/Diagnostics/Diagnostics.tsx": {
14610
- "bytes": 3662,
14651
+ "bytes": 4440,
14611
14652
  "imports": [
14612
14653
  {
14613
14654
  "path": "react",
@@ -14649,6 +14690,11 @@
14649
14690
  "kind": "import-statement",
14650
14691
  "original": "./AudioTest"
14651
14692
  },
14693
+ {
14694
+ "path": "src/Diagnostics/BrowserTest.tsx",
14695
+ "kind": "import-statement",
14696
+ "original": "./BrowserTest"
14697
+ },
14652
14698
  {
14653
14699
  "path": "src/Diagnostics/ConnectivityTest.tsx",
14654
14700
  "kind": "import-statement",
@@ -14915,7 +14961,7 @@
14915
14961
  "dist/index.js": {
14916
14962
  "imports": [
14917
14963
  {
14918
- "path": "dist/chunk-VNHKDQOM.js",
14964
+ "path": "dist/chunk-MBMF75ZJ.js",
14919
14965
  "kind": "import-statement"
14920
14966
  }
14921
14967
  ],
@@ -14991,16 +15037,16 @@
14991
15037
  "inputs": {},
14992
15038
  "bytes": 1882
14993
15039
  },
14994
- "dist/HLSView-42MLSPUI.js.map": {
15040
+ "dist/HLSView-PALIXUNG.js.map": {
14995
15041
  "imports": [],
14996
15042
  "exports": [],
14997
15043
  "inputs": {},
14998
15044
  "bytes": 100275
14999
15045
  },
15000
- "dist/HLSView-42MLSPUI.js": {
15046
+ "dist/HLSView-PALIXUNG.js": {
15001
15047
  "imports": [
15002
15048
  {
15003
- "path": "dist/chunk-VNHKDQOM.js",
15049
+ "path": "dist/chunk-MBMF75ZJ.js",
15004
15050
  "kind": "import-statement"
15005
15051
  },
15006
15052
  {
@@ -15178,7 +15224,7 @@
15178
15224
  "default"
15179
15225
  ],
15180
15226
  "entryPoint": "src/Prebuilt/layouts/HLSView.jsx",
15181
- "cssBundle": "dist/HLSView-4UFNO3KZ.css",
15227
+ "cssBundle": "dist/HLSView-5DK2ZOZY.css",
15182
15228
  "inputs": {
15183
15229
  "src/Prebuilt/layouts/HLSView.jsx": {
15184
15230
  "bytesInOutput": 27671
@@ -15237,13 +15283,13 @@
15237
15283
  },
15238
15284
  "bytes": 61702
15239
15285
  },
15240
- "dist/chunk-VNHKDQOM.js.map": {
15286
+ "dist/chunk-MBMF75ZJ.js.map": {
15241
15287
  "imports": [],
15242
15288
  "exports": [],
15243
15289
  "inputs": {},
15244
- "bytes": 3878856
15290
+ "bytes": 3889079
15245
15291
  },
15246
- "dist/chunk-VNHKDQOM.js": {
15292
+ "dist/chunk-MBMF75ZJ.js": {
15247
15293
  "imports": [
15248
15294
  {
15249
15295
  "path": "react",
@@ -17726,7 +17772,7 @@
17726
17772
  "external": true
17727
17773
  },
17728
17774
  {
17729
- "path": "dist/HLSView-42MLSPUI.js",
17775
+ "path": "dist/HLSView-PALIXUNG.js",
17730
17776
  "kind": "dynamic-import"
17731
17777
  },
17732
17778
  {
@@ -18184,6 +18230,16 @@
18184
18230
  "kind": "import-statement",
18185
18231
  "external": true
18186
18232
  },
18233
+ {
18234
+ "path": "react",
18235
+ "kind": "import-statement",
18236
+ "external": true
18237
+ },
18238
+ {
18239
+ "path": "@100mslive/react-sdk",
18240
+ "kind": "import-statement",
18241
+ "external": true
18242
+ },
18187
18243
  {
18188
18244
  "path": "@100mslive/react-icons",
18189
18245
  "kind": "import-statement",
@@ -18300,7 +18356,7 @@
18300
18356
  ],
18301
18357
  "inputs": {
18302
18358
  "<define:process.env>": {
18303
- "bytesInOutput": 17882
18359
+ "bytesInOutput": 17889
18304
18360
  },
18305
18361
  "../../node_modules/lodash/lodash.js": {
18306
18362
  "bytesInOutput": 224414
@@ -18783,7 +18839,7 @@
18783
18839
  "bytesInOutput": 9484
18784
18840
  },
18785
18841
  "../hms-video-store/dist/index.js": {
18786
- "bytesInOutput": 457165
18842
+ "bytesInOutput": 457464
18787
18843
  },
18788
18844
  "../../node_modules/reselect/es/index.js": {
18789
18845
  "bytesInOutput": 2550
@@ -19181,7 +19237,7 @@
19181
19237
  "src/Prebuilt/components/VideoLayouts/WhiteboardLayout.tsx": {
19182
19238
  "bytesInOutput": 2797
19183
19239
  },
19184
- "../../../../../../../tmp/tmp-2799-1T2538P9hRBm/1902b6952b81/index.css": {
19240
+ "../../../../../../../tmp/tmp-2775-z50BoQ6b5DoC/1903002989c0/index.css": {
19185
19241
  "bytesInOutput": 0
19186
19242
  },
19187
19243
  "src/Prebuilt/common/PeersSorter.ts": {
@@ -19209,7 +19265,7 @@
19209
19265
  "bytesInOutput": 1607
19210
19266
  },
19211
19267
  "src/Prebuilt/components/Header/common.jsx": {
19212
- "bytesInOutput": 6077
19268
+ "bytesInOutput": 6265
19213
19269
  },
19214
19270
  "src/Prebuilt/components/PreviousRoleInMetadata.tsx": {
19215
19271
  "bytesInOutput": 754
@@ -19326,10 +19382,10 @@
19326
19382
  "bytesInOutput": 27
19327
19383
  },
19328
19384
  "src/Diagnostics/Diagnostics.tsx": {
19329
- "bytesInOutput": 3946
19385
+ "bytesInOutput": 4678
19330
19386
  },
19331
19387
  "src/Diagnostics/components.tsx": {
19332
- "bytesInOutput": 2112
19388
+ "bytesInOutput": 2109
19333
19389
  },
19334
19390
  "src/Diagnostics/hms.ts": {
19335
19391
  "bytesInOutput": 237
@@ -19340,14 +19396,17 @@
19340
19396
  "src/Diagnostics/DeviceSelector.jsx": {
19341
19397
  "bytesInOutput": 2155
19342
19398
  },
19399
+ "src/Diagnostics/BrowserTest.tsx": {
19400
+ "bytesInOutput": 4041
19401
+ },
19343
19402
  "src/Diagnostics/ConnectivityTest.tsx": {
19344
- "bytesInOutput": 12446
19403
+ "bytesInOutput": 12447
19345
19404
  },
19346
19405
  "src/Diagnostics/VideoTest.tsx": {
19347
19406
  "bytesInOutput": 2265
19348
19407
  }
19349
19408
  },
19350
- "bytes": 1843026
19409
+ "bytes": 1848327
19351
19410
  },
19352
19411
  "dist/index.css.map": {
19353
19412
  "imports": [],
@@ -19409,22 +19468,22 @@
19409
19468
  }
19410
19469
  ],
19411
19470
  "inputs": {
19412
- "../../../../../../../tmp/tmp-2799-1T2538P9hRBm/1902b6952d22/tldraw.css": {
19471
+ "../../../../../../../tmp/tmp-2775-z50BoQ6b5DoC/190300299863/tldraw.css": {
19413
19472
  "bytesInOutput": 75223
19414
19473
  },
19415
- "../../../../../../../tmp/tmp-2799-1T2538P9hRBm/1902b6952b81/index.css": {
19474
+ "../../../../../../../tmp/tmp-2775-z50BoQ6b5DoC/1903002989c0/index.css": {
19416
19475
  "bytesInOutput": 401
19417
19476
  }
19418
19477
  },
19419
19478
  "bytes": 75901
19420
19479
  },
19421
- "dist/HLSView-4UFNO3KZ.css.map": {
19480
+ "dist/HLSView-5DK2ZOZY.css.map": {
19422
19481
  "imports": [],
19423
19482
  "exports": [],
19424
19483
  "inputs": {},
19425
19484
  "bytes": 122402
19426
19485
  },
19427
- "dist/HLSView-4UFNO3KZ.css": {
19486
+ "dist/HLSView-5DK2ZOZY.css": {
19428
19487
  "imports": [
19429
19488
  {
19430
19489
  "path": "https://fonts.googleapis.com/css2?family=Inter:wght@400;500&display=swap",
@@ -19478,10 +19537,10 @@
19478
19537
  }
19479
19538
  ],
19480
19539
  "inputs": {
19481
- "../../../../../../../tmp/tmp-2799-1T2538P9hRBm/1902b6952d22/tldraw.css": {
19540
+ "../../../../../../../tmp/tmp-2775-z50BoQ6b5DoC/190300299863/tldraw.css": {
19482
19541
  "bytesInOutput": 75223
19483
19542
  },
19484
- "../../../../../../../tmp/tmp-2799-1T2538P9hRBm/1902b6952b81/index.css": {
19543
+ "../../../../../../../tmp/tmp-2775-z50BoQ6b5DoC/1903002989c0/index.css": {
19485
19544
  "bytesInOutput": 401
19486
19545
  }
19487
19546
  },
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "prebuilt",
11
11
  "roomkit"
12
12
  ],
13
- "version": "0.3.14-alpha.2",
13
+ "version": "0.3.14-alpha.4",
14
14
  "author": "100ms",
15
15
  "license": "MIT",
16
16
  "repository": {
@@ -74,12 +74,12 @@
74
74
  "react": ">=17.0.2 <19.0.0"
75
75
  },
76
76
  "dependencies": {
77
- "@100mslive/hls-player": "0.3.14-alpha.2",
77
+ "@100mslive/hls-player": "0.3.14-alpha.4",
78
78
  "@100mslive/hms-noise-cancellation": "0.0.1",
79
- "@100mslive/hms-virtual-background": "1.13.14-alpha.2",
80
- "@100mslive/hms-whiteboard": "0.0.4-alpha.2",
81
- "@100mslive/react-icons": "0.10.14-alpha.2",
82
- "@100mslive/react-sdk": "0.10.14-alpha.2",
79
+ "@100mslive/hms-virtual-background": "1.13.14-alpha.4",
80
+ "@100mslive/hms-whiteboard": "0.0.4-alpha.4",
81
+ "@100mslive/react-icons": "0.10.14-alpha.4",
82
+ "@100mslive/react-sdk": "0.10.14-alpha.4",
83
83
  "@100mslive/types-prebuilt": "0.12.9",
84
84
  "@emoji-mart/data": "^1.0.6",
85
85
  "@emoji-mart/react": "^1.0.1",
@@ -115,5 +115,5 @@
115
115
  "uuid": "^8.3.2",
116
116
  "worker-timers": "^7.0.40"
117
117
  },
118
- "gitHead": "3ef383402ec24ac3a20df2a932179c29cd1c834b"
118
+ "gitHead": "870d07094ed80ee2fefe344a743b4c463b046ccb"
119
119
  }
@@ -0,0 +1,134 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { parsedUserAgent } from '@100mslive/react-sdk';
3
+ import { TestContainer, TestFooter } from './components';
4
+ import { Box, Flex } from '../Layout';
5
+ import { Text } from '../Text';
6
+ import { hmsDiagnostics } from './hms';
7
+
8
+ const CMS_MEDIA_SERVER = 'https://storage.googleapis.com/100ms-cms-prod/';
9
+
10
+ export const operatingSystemIconInfo = {
11
+ tizen: {
12
+ key: 'tizen',
13
+ val: 'Tizen',
14
+ icon: `${CMS_MEDIA_SERVER}cms/Tizen_b99350214e/Tizen_b99350214e.svg`,
15
+ },
16
+ 'mac os': {
17
+ key: 'macos',
18
+ val: 'Mac OS',
19
+ icon: `${CMS_MEDIA_SERVER}cms/mac_OS_804456afd8/mac_OS_804456afd8.png`,
20
+ },
21
+ windows: {
22
+ key: 'windows',
23
+ val: 'Windows',
24
+ icon: `${CMS_MEDIA_SERVER}cms/Windows_fdfe6749b6/Windows_fdfe6749b6.svg`,
25
+ },
26
+ linux: {
27
+ key: 'linux',
28
+ val: 'Linux',
29
+ icon: `${CMS_MEDIA_SERVER}cms/Linux_31f8353a2e/Linux_31f8353a2e.svg`,
30
+ },
31
+ chromium: {
32
+ key: 'chromium',
33
+ val: 'Chromium',
34
+ icon: `${CMS_MEDIA_SERVER}cms/Chromium_3df17710bd/Chromium_3df17710bd.svg`,
35
+ },
36
+ ubuntu: {
37
+ key: 'ubuntu',
38
+ val: 'Ubuntu',
39
+ icon: `${CMS_MEDIA_SERVER}cms/Ubuntu_966dd923c5/Ubuntu_966dd923c5.svg`,
40
+ },
41
+ ios: {
42
+ key: 'ios',
43
+ val: 'iOS',
44
+ icon: `${CMS_MEDIA_SERVER}cms/i_OS_3cdc9d9b71/i_OS_3cdc9d9b71.svg`,
45
+ },
46
+ android: {
47
+ key: 'android',
48
+ val: 'Android',
49
+ icon: `${CMS_MEDIA_SERVER}cms/Android_49dcfdc934/Android_49dcfdc934.svg`,
50
+ },
51
+ };
52
+
53
+ export const browserTypeIconInfo = {
54
+ brave: {
55
+ key: 'brave',
56
+ val: 'Brave',
57
+ icon: `${CMS_MEDIA_SERVER}cms/Brave_7e66131f09/Brave_7e66131f09.svg`,
58
+ },
59
+ chrome: {
60
+ key: 'chrome',
61
+ val: 'Chrome',
62
+ icon: `${CMS_MEDIA_SERVER}cms/Chrome_7bf77fbdd7/Chrome_7bf77fbdd7.svg`,
63
+ },
64
+ firefox: {
65
+ key: 'firefox',
66
+ val: 'Firefox',
67
+ icon: `${CMS_MEDIA_SERVER}cms/Firefox_30f3976fb8/Firefox_30f3976fb8.svg`,
68
+ },
69
+ safari: {
70
+ key: 'safari',
71
+ val: 'Safari',
72
+ icon: `${CMS_MEDIA_SERVER}cms/Safari_254e74ed94/Safari_254e74ed94.svg`,
73
+ },
74
+ edge: {
75
+ key: 'edge',
76
+ val: 'Edge',
77
+ icon: `${CMS_MEDIA_SERVER}cms/Edge_23add4a83f/Edge_23add4a83f.svg`,
78
+ },
79
+ opera: {
80
+ key: 'opera',
81
+ val: 'Opera',
82
+ icon: `${CMS_MEDIA_SERVER}cms/Opera_0f3bf4eb19/Opera_0f3bf4eb19.svg`,
83
+ },
84
+ };
85
+
86
+ const CheckDetails = ({ title, value, iconURL }: { title: string; value: string; iconURL?: string }) => (
87
+ <Box css={{ w: '100%', my: '$10', p: '$10', r: '$1', bg: '$surface_default', '@lg': { w: 'auto' } }}>
88
+ <Text css={{ c: '$on_primary_medium', mb: '$6' }}>{title}</Text>
89
+ <Flex align="center">
90
+ {iconURL && (
91
+ <Box css={{ size: '2rem', r: '$round', bg: '$surface_brighter' }}>
92
+ <img style={{ objectFit: 'contain', width: '2rem' }} src={iconURL} alt={value} />
93
+ </Box>
94
+ )}
95
+ <Text css={{ ml: '$4' }}>{value}</Text>
96
+ </Flex>
97
+ </Box>
98
+ );
99
+
100
+ export const BrowserTest = () => {
101
+ const [error, setError] = useState<Error | undefined>();
102
+ useEffect(() => {
103
+ try {
104
+ hmsDiagnostics.checkBrowserSupport();
105
+ } catch (err) {
106
+ setError(err as Error);
107
+ }
108
+ }, []);
109
+ return (
110
+ <>
111
+ <TestContainer css={{ display: 'flex', gap: '$8', '@lg': { display: 'block' } }}>
112
+ <CheckDetails
113
+ title="Browser"
114
+ iconURL={
115
+ parsedUserAgent.getBrowser().name &&
116
+ browserTypeIconInfo[parsedUserAgent.getBrowser().name?.toLowerCase() as keyof typeof browserTypeIconInfo]
117
+ .icon
118
+ }
119
+ value={`${parsedUserAgent.getBrowser().name} ${parsedUserAgent.getBrowser().version}`}
120
+ />
121
+ <CheckDetails
122
+ title="Operating system"
123
+ iconURL={
124
+ parsedUserAgent.getOS().name &&
125
+ operatingSystemIconInfo[parsedUserAgent.getOS().name?.toLowerCase() as keyof typeof operatingSystemIconInfo]
126
+ .icon
127
+ }
128
+ value={`${parsedUserAgent.getOS().name} ${parsedUserAgent.getOS().version}`}
129
+ />
130
+ </TestContainer>
131
+ <TestFooter error={error} ctaText="Is your device information correct?" />
132
+ </>
133
+ );
134
+ };
@@ -218,6 +218,8 @@ const ConnectivityTestReport = ({
218
218
  }
219
219
 
220
220
  if (result) {
221
+ // for debugging and quick view of results
222
+ console.log(result);
221
223
  return (
222
224
  <>
223
225
  <TestContainer>
@@ -232,7 +234,7 @@ const ConnectivityTestReport = ({
232
234
  );
233
235
  }
234
236
 
235
- if (progress) {
237
+ if (progress !== undefined) {
236
238
  return (
237
239
  <TestContainer css={{ textAlign: 'center' }}>
238
240
  <Text css={{ c: '$primary_bright' }}>
@@ -315,7 +317,6 @@ export const ConnectivityTest = () => {
315
317
 
316
318
  const startTest = () => {
317
319
  setError(undefined);
318
- setProgress(ConnectivityState.STARTING);
319
320
  setResult(undefined);
320
321
  hmsDiagnostics
321
322
  .startConnectivityCheck(
@@ -337,7 +338,7 @@ export const ConnectivityTest = () => {
337
338
  <RegionSelector
338
339
  region={region}
339
340
  setRegion={setRegion}
340
- startTest={!progress || progress === ConnectivityState.COMPLETED ? startTest : undefined}
341
+ startTest={progress === undefined || progress === ConnectivityState.COMPLETED ? startTest : undefined}
341
342
  />
342
343
  <ConnectivityTestReport error={error} result={result} progress={progress} startTest={startTest} />
343
344
  </>
@@ -1,11 +1,12 @@
1
1
  import React, { useContext } from 'react';
2
2
  import { HMSRoomProvider } from '@100mslive/react-sdk';
3
- import { ConnectivityIcon, GlobeIcon, MicOnIcon, VideoOnIcon } from '@100mslive/react-icons';
3
+ import { CheckCircleIcon, ConnectivityIcon, GlobeIcon, MicOnIcon, VideoOnIcon } from '@100mslive/react-icons';
4
4
  import { DiagnosticsContext, DiagnosticsSteps } from './components';
5
5
  import { Box, Flex } from '../Layout';
6
6
  import { Text } from '../Text';
7
7
  import { HMSThemeProvider } from '../Theme';
8
8
  import { AudioTest } from './AudioTest';
9
+ import { BrowserTest } from './BrowserTest';
9
10
  import { ConnectivityTest } from './ConnectivityTest';
10
11
  import { hmsActions, hmsNotifications, hmsStats, hmsStore } from './hms';
11
12
  import { VideoTest } from './VideoTest';
@@ -45,6 +46,8 @@ const DiagnosticsStepTest = () => {
45
46
  TestComponent = AudioTest;
46
47
  } else if (activeStep === 'video') {
47
48
  TestComponent = VideoTest;
49
+ } else if (activeStep === 'browser') {
50
+ TestComponent = BrowserTest;
48
51
  } else if (activeStep === 'connectivity') {
49
52
  TestComponent = ConnectivityTest;
50
53
  }
@@ -66,7 +69,9 @@ const DiagnosticsStep = () => {
66
69
  return (
67
70
  <Box css={{ border: '1px solid $border_default', r: '$1', w: '75%', '@lg': { w: '100%' } }}>
68
71
  <DiagnosticsStepHeader />
69
- <DiagnosticsStepTest />
72
+ <Box css={{ maxHeight: '55vh', overflowY: 'auto' }}>
73
+ <DiagnosticsStepTest />
74
+ </Box>
70
75
  </Box>
71
76
  );
72
77
  };
@@ -76,15 +81,31 @@ const DiagnosticsStepsList = () => {
76
81
 
77
82
  return (
78
83
  <Box css={{ w: '25%', '@lg': { display: 'none' } }}>
79
- <ul>
80
- {Object.keys(DiagnosticsSteps).map(key => (
81
- <li key={key}>
82
- <Text variant="md" css={{ mb: '$10', c: activeStep === key ? '$on_primary_high' : '$on_primary_low' }}>
83
- {DiagnosticsSteps[key]}
84
- </Text>
85
- </li>
86
- ))}
87
- </ul>
84
+ {Object.keys(DiagnosticsSteps).map(key => {
85
+ const keys = Object.keys(DiagnosticsSteps);
86
+ const activeStepIndex = keys.indexOf(activeStep);
87
+ const keyIndex = keys.indexOf(key);
88
+ const isStepCompleted = activeStepIndex > keyIndex;
89
+
90
+ let color = '$on_primary_low';
91
+ if (isStepCompleted) {
92
+ color = '$primary_bright';
93
+ }
94
+ if (activeStep === key) {
95
+ color = '$on_primary_high';
96
+ }
97
+
98
+ return (
99
+ <Flex css={{ mb: '$10', c: color, gap: '$4', alignItems: 'center' }}>
100
+ {isStepCompleted ? (
101
+ <CheckCircleIcon width="1rem" height="1rem" />
102
+ ) : (
103
+ <Text css={{ c: color, fontSize: '1.75rem' }}>&bull;</Text>
104
+ )}
105
+ <Text css={{ c: color }}>{DiagnosticsSteps[key]}</Text>
106
+ </Flex>
107
+ );
108
+ })}
88
109
  </Box>
89
110
  );
90
111
  };
@@ -6,9 +6,9 @@ import { CSS } from '../Theme';
6
6
  import { hmsDiagnostics } from './hms';
7
7
 
8
8
  export const DiagnosticsSteps: Record<string, string> = {
9
+ browser: 'Browser Support',
9
10
  video: 'Test Video',
10
11
  audio: 'Test Audio',
11
- // browser: 'Browser Support',
12
12
  connectivity: 'Connection Quality',
13
13
  };
14
14
 
@@ -15,6 +15,7 @@ import {
15
15
  CrossIcon,
16
16
  HeadphonesIcon,
17
17
  SpeakerIcon,
18
+ TelePhoneIcon,
18
19
  } from '@100mslive/react-icons';
19
20
  import { HorizontalDivider } from '../../../Divider';
20
21
  import { Label } from '../../../Label';
@@ -82,6 +83,8 @@ export const AudioActions = () => {
82
83
  AudioIcon = <BluetoothIcon />;
83
84
  } else if (currentSelection && currentSelection.label.toLowerCase().includes('wired')) {
84
85
  AudioIcon = <HeadphonesIcon />;
86
+ } else if (currentSelection && currentSelection.label.toLowerCase().includes('earpiece')) {
87
+ AudioIcon = <TelePhoneIcon />;
85
88
  }
86
89
  return (
87
90
  <AudioSelectionSheet