@100mslive/roomkit-react 0.3.14-alpha.1 → 0.3.14-alpha.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. package/dist/Diagnostics/BrowserTest.d.ts +81 -0
  2. package/dist/Diagnostics/components.d.ts +2 -0
  3. package/dist/{HLSView-VSU7IPCJ.js → HLSView-72D4HXOZ.js} +2 -2
  4. package/dist/{HLSView-772PCEEZ.css → HLSView-X4TA7M5M.css} +3 -3
  5. package/dist/{HLSView-772PCEEZ.css.map → HLSView-X4TA7M5M.css.map} +1 -1
  6. package/dist/Prebuilt/App.d.ts +1 -2
  7. package/dist/Prebuilt/components/Notifications/PermissionErrorModal.d.ts +5 -1
  8. package/dist/{chunk-VE34B77C.js → chunk-OZVDS5TG.js} +1254 -1039
  9. package/dist/chunk-OZVDS5TG.js.map +7 -0
  10. package/dist/index.cjs.css +2 -2
  11. package/dist/index.cjs.css.map +1 -1
  12. package/dist/index.cjs.js +1302 -1080
  13. package/dist/index.cjs.js.map +4 -4
  14. package/dist/index.css +2 -2
  15. package/dist/index.css.map +1 -1
  16. package/dist/index.js +1 -1
  17. package/dist/meta.cjs.json +101 -32
  18. package/dist/meta.esbuild.json +113 -44
  19. package/package.json +7 -7
  20. package/src/Diagnostics/AudioTest.tsx +80 -57
  21. package/src/Diagnostics/BrowserTest.tsx +139 -0
  22. package/src/Diagnostics/ConnectivityTest.tsx +10 -6
  23. package/src/Diagnostics/Diagnostics.tsx +38 -16
  24. package/src/Diagnostics/VideoTest.tsx +13 -5
  25. package/src/Diagnostics/components.tsx +13 -1
  26. package/src/Prebuilt/App.tsx +1 -9
  27. package/src/Prebuilt/components/Chat/ChatFooter.tsx +4 -1
  28. package/src/Prebuilt/components/Header/common.jsx +3 -0
  29. package/src/Prebuilt/components/Notifications/Notifications.tsx +2 -2
  30. package/src/Prebuilt/components/Notifications/PermissionErrorModal.tsx +13 -11
  31. package/dist/chunk-VE34B77C.js.map +0 -7
  32. /package/dist/{HLSView-VSU7IPCJ.js.map → HLSView-72D4HXOZ.js.map} +0 -0
@@ -4951,7 +4951,7 @@
4951
4951
  "format": "cjs"
4952
4952
  },
4953
4953
  "../hms-video-store/dist/index.js": {
4954
- "bytes": 354737,
4954
+ "bytes": 356181,
4955
4955
  "imports": [
4956
4956
  {
4957
4957
  "path": "../../node_modules/reselect/es/index.js",
@@ -8548,7 +8548,7 @@
8548
8548
  "format": "esm"
8549
8549
  },
8550
8550
  "src/Prebuilt/components/Chat/ChatFooter.tsx": {
8551
- "bytes": 11514,
8551
+ "bytes": 11557,
8552
8552
  "imports": [
8553
8553
  {
8554
8554
  "path": "react",
@@ -10974,7 +10974,7 @@
10974
10974
  ],
10975
10975
  "format": "esm"
10976
10976
  },
10977
- "../../../../../../../tmp/tmp-2768-rJR1JlrZ8Kgf/1902b197fe32/tldraw.css": {
10977
+ "../../../../../../../tmp/tmp-2852-lMQaN4skKTxh/1904eee201f2/tldraw.css": {
10978
10978
  "bytes": 80111,
10979
10979
  "imports": [
10980
10980
  {
@@ -11024,7 +11024,7 @@
11024
11024
  }
11025
11025
  ]
11026
11026
  },
11027
- "../../../../../../../tmp/tmp-2768-rJR1JlrZ8Kgf/1902b197f7e0/index.css": {
11027
+ "../../../../../../../tmp/tmp-2852-lMQaN4skKTxh/1904eee1fb00/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-2768-rJR1JlrZ8Kgf/1902b197fe32/tldraw.css",
11036
+ "path": "../../../../../../../tmp/tmp-2852-lMQaN4skKTxh/1904eee201f2/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-2768-rJR1JlrZ8Kgf/1902b197f7e0/index.css",
11111
+ "path": "../../../../../../../tmp/tmp-2852-lMQaN4skKTxh/1904eee1fb00/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",
@@ -13195,7 +13195,7 @@
13195
13195
  "imports": []
13196
13196
  },
13197
13197
  "src/Prebuilt/components/Notifications/PermissionErrorModal.tsx": {
13198
- "bytes": 4888,
13198
+ "bytes": 4913,
13199
13199
  "imports": [
13200
13200
  {
13201
13201
  "path": "react",
@@ -13406,7 +13406,7 @@
13406
13406
  "format": "esm"
13407
13407
  },
13408
13408
  "src/Prebuilt/components/Notifications/Notifications.tsx": {
13409
- "bytes": 8034,
13409
+ "bytes": 8058,
13410
13410
  "imports": [
13411
13411
  {
13412
13412
  "path": "react",
@@ -13891,7 +13891,7 @@
13891
13891
  "format": "esm"
13892
13892
  },
13893
13893
  "src/Prebuilt/App.tsx": {
13894
- "bytes": 10909,
13894
+ "bytes": 10754,
13895
13895
  "imports": [
13896
13896
  {
13897
13897
  "path": "react",
@@ -14147,7 +14147,7 @@
14147
14147
  "format": "esm"
14148
14148
  },
14149
14149
  "src/Diagnostics/components.tsx": {
14150
- "bytes": 2320,
14150
+ "bytes": 2686,
14151
14151
  "imports": [
14152
14152
  {
14153
14153
  "path": "react",
@@ -14409,7 +14409,7 @@
14409
14409
  "format": "esm"
14410
14410
  },
14411
14411
  "src/Diagnostics/AudioTest.tsx": {
14412
- "bytes": 4763,
14412
+ "bytes": 5792,
14413
14413
  "imports": [
14414
14414
  {
14415
14415
  "path": "react",
@@ -14426,6 +14426,11 @@
14426
14426
  "kind": "import-statement",
14427
14427
  "external": true
14428
14428
  },
14429
+ {
14430
+ "path": "src/Prebuilt/components/Notifications/PermissionErrorModal.tsx",
14431
+ "kind": "import-statement",
14432
+ "original": "../Prebuilt/components/Notifications/PermissionErrorModal"
14433
+ },
14429
14434
  {
14430
14435
  "path": "src/Diagnostics/components.tsx",
14431
14436
  "kind": "import-statement",
@@ -14479,8 +14484,49 @@
14479
14484
  ],
14480
14485
  "format": "esm"
14481
14486
  },
14487
+ "src/Diagnostics/BrowserTest.tsx": {
14488
+ "bytes": 4184,
14489
+ "imports": [
14490
+ {
14491
+ "path": "react",
14492
+ "kind": "import-statement",
14493
+ "external": true
14494
+ },
14495
+ {
14496
+ "path": "@100mslive/react-sdk",
14497
+ "kind": "import-statement",
14498
+ "external": true
14499
+ },
14500
+ {
14501
+ "path": "src/Diagnostics/components.tsx",
14502
+ "kind": "import-statement",
14503
+ "original": "./components"
14504
+ },
14505
+ {
14506
+ "path": "src/Layout/index.tsx",
14507
+ "kind": "import-statement",
14508
+ "original": "../Layout"
14509
+ },
14510
+ {
14511
+ "path": "src/Text/index.tsx",
14512
+ "kind": "import-statement",
14513
+ "original": "../Text"
14514
+ },
14515
+ {
14516
+ "path": "src/Diagnostics/hms.ts",
14517
+ "kind": "import-statement",
14518
+ "original": "./hms"
14519
+ },
14520
+ {
14521
+ "path": "<define:process.env>",
14522
+ "kind": "import-statement",
14523
+ "external": true
14524
+ }
14525
+ ],
14526
+ "format": "esm"
14527
+ },
14482
14528
  "src/Diagnostics/ConnectivityTest.tsx": {
14483
- "bytes": 11095,
14529
+ "bytes": 11343,
14484
14530
  "imports": [
14485
14531
  {
14486
14532
  "path": "react",
@@ -14541,7 +14587,7 @@
14541
14587
  "format": "esm"
14542
14588
  },
14543
14589
  "src/Diagnostics/VideoTest.tsx": {
14544
- "bytes": 2316,
14590
+ "bytes": 2521,
14545
14591
  "imports": [
14546
14592
  {
14547
14593
  "path": "react",
@@ -14558,6 +14604,11 @@
14558
14604
  "kind": "import-statement",
14559
14605
  "external": true
14560
14606
  },
14607
+ {
14608
+ "path": "src/Prebuilt/components/Notifications/PermissionErrorModal.tsx",
14609
+ "kind": "import-statement",
14610
+ "original": "../Prebuilt/components/Notifications/PermissionErrorModal"
14611
+ },
14561
14612
  {
14562
14613
  "path": "src/Diagnostics/components.tsx",
14563
14614
  "kind": "import-statement",
@@ -14607,7 +14658,7 @@
14607
14658
  "format": "esm"
14608
14659
  },
14609
14660
  "src/Diagnostics/Diagnostics.tsx": {
14610
- "bytes": 3662,
14661
+ "bytes": 4666,
14611
14662
  "imports": [
14612
14663
  {
14613
14664
  "path": "react",
@@ -14649,6 +14700,11 @@
14649
14700
  "kind": "import-statement",
14650
14701
  "original": "./AudioTest"
14651
14702
  },
14703
+ {
14704
+ "path": "src/Diagnostics/BrowserTest.tsx",
14705
+ "kind": "import-statement",
14706
+ "original": "./BrowserTest"
14707
+ },
14652
14708
  {
14653
14709
  "path": "src/Diagnostics/ConnectivityTest.tsx",
14654
14710
  "kind": "import-statement",
@@ -14915,7 +14971,7 @@
14915
14971
  "dist/index.js": {
14916
14972
  "imports": [
14917
14973
  {
14918
- "path": "dist/chunk-VE34B77C.js",
14974
+ "path": "dist/chunk-OZVDS5TG.js",
14919
14975
  "kind": "import-statement"
14920
14976
  }
14921
14977
  ],
@@ -14991,16 +15047,16 @@
14991
15047
  "inputs": {},
14992
15048
  "bytes": 1882
14993
15049
  },
14994
- "dist/HLSView-VSU7IPCJ.js.map": {
15050
+ "dist/HLSView-72D4HXOZ.js.map": {
14995
15051
  "imports": [],
14996
15052
  "exports": [],
14997
15053
  "inputs": {},
14998
15054
  "bytes": 100275
14999
15055
  },
15000
- "dist/HLSView-VSU7IPCJ.js": {
15056
+ "dist/HLSView-72D4HXOZ.js": {
15001
15057
  "imports": [
15002
15058
  {
15003
- "path": "dist/chunk-VE34B77C.js",
15059
+ "path": "dist/chunk-OZVDS5TG.js",
15004
15060
  "kind": "import-statement"
15005
15061
  },
15006
15062
  {
@@ -15178,7 +15234,7 @@
15178
15234
  "default"
15179
15235
  ],
15180
15236
  "entryPoint": "src/Prebuilt/layouts/HLSView.jsx",
15181
- "cssBundle": "dist/HLSView-772PCEEZ.css",
15237
+ "cssBundle": "dist/HLSView-X4TA7M5M.css",
15182
15238
  "inputs": {
15183
15239
  "src/Prebuilt/layouts/HLSView.jsx": {
15184
15240
  "bytesInOutput": 27671
@@ -15237,13 +15293,13 @@
15237
15293
  },
15238
15294
  "bytes": 61702
15239
15295
  },
15240
- "dist/chunk-VE34B77C.js.map": {
15296
+ "dist/chunk-OZVDS5TG.js.map": {
15241
15297
  "imports": [],
15242
15298
  "exports": [],
15243
15299
  "inputs": {},
15244
- "bytes": 3878846
15300
+ "bytes": 3899205
15245
15301
  },
15246
- "dist/chunk-VE34B77C.js": {
15302
+ "dist/chunk-OZVDS5TG.js": {
15247
15303
  "imports": [
15248
15304
  {
15249
15305
  "path": "react",
@@ -17726,7 +17782,7 @@
17726
17782
  "external": true
17727
17783
  },
17728
17784
  {
17729
- "path": "dist/HLSView-VSU7IPCJ.js",
17785
+ "path": "dist/HLSView-72D4HXOZ.js",
17730
17786
  "kind": "dynamic-import"
17731
17787
  },
17732
17788
  {
@@ -18184,6 +18240,16 @@
18184
18240
  "kind": "import-statement",
18185
18241
  "external": true
18186
18242
  },
18243
+ {
18244
+ "path": "react",
18245
+ "kind": "import-statement",
18246
+ "external": true
18247
+ },
18248
+ {
18249
+ "path": "@100mslive/react-sdk",
18250
+ "kind": "import-statement",
18251
+ "external": true
18252
+ },
18187
18253
  {
18188
18254
  "path": "@100mslive/react-icons",
18189
18255
  "kind": "import-statement",
@@ -18300,7 +18366,7 @@
18300
18366
  ],
18301
18367
  "inputs": {
18302
18368
  "<define:process.env>": {
18303
- "bytesInOutput": 17868
18369
+ "bytesInOutput": 17873
18304
18370
  },
18305
18371
  "../../node_modules/lodash/lodash.js": {
18306
18372
  "bytesInOutput": 224414
@@ -18585,7 +18651,7 @@
18585
18651
  "bytesInOutput": 887
18586
18652
  },
18587
18653
  "src/Prebuilt/App.tsx": {
18588
- "bytesInOutput": 8043
18654
+ "bytesInOutput": 7946
18589
18655
  },
18590
18656
  "src/Prebuilt/components/AppData/AppData.tsx": {
18591
18657
  "bytesInOutput": 6013
@@ -18783,7 +18849,7 @@
18783
18849
  "bytesInOutput": 9484
18784
18850
  },
18785
18851
  "../hms-video-store/dist/index.js": {
18786
- "bytesInOutput": 457165
18852
+ "bytesInOutput": 459039
18787
18853
  },
18788
18854
  "../../node_modules/reselect/es/index.js": {
18789
18855
  "bytesInOutput": 2550
@@ -19050,7 +19116,7 @@
19050
19116
  "bytesInOutput": 710
19051
19117
  },
19052
19118
  "src/Prebuilt/components/Chat/ChatFooter.tsx": {
19053
- "bytesInOutput": 10862
19119
+ "bytesInOutput": 10904
19054
19120
  },
19055
19121
  "src/Prebuilt/components/Chat/ChatSelectorContainer.tsx": {
19056
19122
  "bytesInOutput": 5318
@@ -19181,7 +19247,7 @@
19181
19247
  "src/Prebuilt/components/VideoLayouts/WhiteboardLayout.tsx": {
19182
19248
  "bytesInOutput": 2797
19183
19249
  },
19184
- "../../../../../../../tmp/tmp-2768-rJR1JlrZ8Kgf/1902b197f7e0/index.css": {
19250
+ "../../../../../../../tmp/tmp-2852-lMQaN4skKTxh/1904eee1fb00/index.css": {
19185
19251
  "bytesInOutput": 0
19186
19252
  },
19187
19253
  "src/Prebuilt/common/PeersSorter.ts": {
@@ -19209,7 +19275,7 @@
19209
19275
  "bytesInOutput": 1607
19210
19276
  },
19211
19277
  "src/Prebuilt/components/Header/common.jsx": {
19212
- "bytesInOutput": 6077
19278
+ "bytesInOutput": 6265
19213
19279
  },
19214
19280
  "src/Prebuilt/components/PreviousRoleInMetadata.tsx": {
19215
19281
  "bytesInOutput": 754
@@ -19242,7 +19308,7 @@
19242
19308
  "bytesInOutput": 27
19243
19309
  },
19244
19310
  "src/Prebuilt/components/Notifications/Notifications.tsx": {
19245
- "bytesInOutput": 8116
19311
+ "bytesInOutput": 8128
19246
19312
  },
19247
19313
  "src/Prebuilt/components/Notifications/AutoplayBlockedModal.tsx": {
19248
19314
  "bytesInOutput": 1053
@@ -19266,7 +19332,7 @@
19266
19332
  "bytesInOutput": 1428
19267
19333
  },
19268
19334
  "src/Prebuilt/components/Notifications/PermissionErrorModal.tsx": {
19269
- "bytesInOutput": 4537
19335
+ "bytesInOutput": 4527
19270
19336
  },
19271
19337
  "src/Prebuilt/images/android-perm-1.png": {
19272
19338
  "bytesInOutput": 10443
@@ -19326,28 +19392,31 @@
19326
19392
  "bytesInOutput": 27
19327
19393
  },
19328
19394
  "src/Diagnostics/Diagnostics.tsx": {
19329
- "bytesInOutput": 3946
19395
+ "bytesInOutput": 4900
19330
19396
  },
19331
19397
  "src/Diagnostics/components.tsx": {
19332
- "bytesInOutput": 2112
19398
+ "bytesInOutput": 2375
19333
19399
  },
19334
19400
  "src/Diagnostics/hms.ts": {
19335
19401
  "bytesInOutput": 237
19336
19402
  },
19337
19403
  "src/Diagnostics/AudioTest.tsx": {
19338
- "bytesInOutput": 4847
19404
+ "bytesInOutput": 5835
19339
19405
  },
19340
19406
  "src/Diagnostics/DeviceSelector.jsx": {
19341
19407
  "bytesInOutput": 2155
19342
19408
  },
19409
+ "src/Diagnostics/BrowserTest.tsx": {
19410
+ "bytesInOutput": 4243
19411
+ },
19343
19412
  "src/Diagnostics/ConnectivityTest.tsx": {
19344
- "bytesInOutput": 12446
19413
+ "bytesInOutput": 12635
19345
19414
  },
19346
19415
  "src/Diagnostics/VideoTest.tsx": {
19347
- "bytesInOutput": 2265
19416
+ "bytesInOutput": 2376
19348
19417
  }
19349
19418
  },
19350
- "bytes": 1843012
19419
+ "bytes": 1851810
19351
19420
  },
19352
19421
  "dist/index.css.map": {
19353
19422
  "imports": [],
@@ -19409,22 +19478,22 @@
19409
19478
  }
19410
19479
  ],
19411
19480
  "inputs": {
19412
- "../../../../../../../tmp/tmp-2768-rJR1JlrZ8Kgf/1902b197fe32/tldraw.css": {
19481
+ "../../../../../../../tmp/tmp-2852-lMQaN4skKTxh/1904eee201f2/tldraw.css": {
19413
19482
  "bytesInOutput": 75223
19414
19483
  },
19415
- "../../../../../../../tmp/tmp-2768-rJR1JlrZ8Kgf/1902b197f7e0/index.css": {
19484
+ "../../../../../../../tmp/tmp-2852-lMQaN4skKTxh/1904eee1fb00/index.css": {
19416
19485
  "bytesInOutput": 401
19417
19486
  }
19418
19487
  },
19419
19488
  "bytes": 75901
19420
19489
  },
19421
- "dist/HLSView-772PCEEZ.css.map": {
19490
+ "dist/HLSView-X4TA7M5M.css.map": {
19422
19491
  "imports": [],
19423
19492
  "exports": [],
19424
19493
  "inputs": {},
19425
19494
  "bytes": 122402
19426
19495
  },
19427
- "dist/HLSView-772PCEEZ.css": {
19496
+ "dist/HLSView-X4TA7M5M.css": {
19428
19497
  "imports": [
19429
19498
  {
19430
19499
  "path": "https://fonts.googleapis.com/css2?family=Inter:wght@400;500&display=swap",
@@ -19478,10 +19547,10 @@
19478
19547
  }
19479
19548
  ],
19480
19549
  "inputs": {
19481
- "../../../../../../../tmp/tmp-2768-rJR1JlrZ8Kgf/1902b197fe32/tldraw.css": {
19550
+ "../../../../../../../tmp/tmp-2852-lMQaN4skKTxh/1904eee201f2/tldraw.css": {
19482
19551
  "bytesInOutput": 75223
19483
19552
  },
19484
- "../../../../../../../tmp/tmp-2768-rJR1JlrZ8Kgf/1902b197f7e0/index.css": {
19553
+ "../../../../../../../tmp/tmp-2852-lMQaN4skKTxh/1904eee1fb00/index.css": {
19485
19554
  "bytesInOutput": 401
19486
19555
  }
19487
19556
  },
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "prebuilt",
11
11
  "roomkit"
12
12
  ],
13
- "version": "0.3.14-alpha.1",
13
+ "version": "0.3.14-alpha.11",
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.1",
77
+ "@100mslive/hls-player": "0.3.14-alpha.11",
78
78
  "@100mslive/hms-noise-cancellation": "0.0.1",
79
- "@100mslive/hms-virtual-background": "1.13.14-alpha.1",
80
- "@100mslive/hms-whiteboard": "0.0.4-alpha.1",
81
- "@100mslive/react-icons": "0.10.14-alpha.1",
82
- "@100mslive/react-sdk": "0.10.14-alpha.1",
79
+ "@100mslive/hms-virtual-background": "1.13.14-alpha.11",
80
+ "@100mslive/hms-whiteboard": "0.0.4-alpha.11",
81
+ "@100mslive/react-icons": "0.10.14-alpha.11",
82
+ "@100mslive/react-sdk": "0.10.14-alpha.11",
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": "92efc31642f74553fa513d53112e9e680c88bc8b"
118
+ "gitHead": "f1a483cba1ff7bfacde92aaf3a37a04cb665c7ad"
119
119
  }
@@ -1,6 +1,7 @@
1
1
  /* eslint-disable react/prop-types */
2
2
  import React, { useEffect, useState } from 'react';
3
3
  import {
4
+ HMSException,
4
5
  selectDevices,
5
6
  selectLocalAudioTrackID,
6
7
  selectLocalMediaSettings,
@@ -8,7 +9,8 @@ import {
8
9
  useHMSActions,
9
10
  useHMSStore,
10
11
  } from '@100mslive/react-sdk';
11
- import { MicOnIcon, SpeakerIcon } from '@100mslive/react-icons';
12
+ import { MicOnIcon, SpeakerIcon, StopIcon } from '@100mslive/react-icons';
13
+ import { PermissionErrorModal } from '../Prebuilt/components/Notifications/PermissionErrorModal';
12
14
  import { TestContainer, TestFooter } from './components';
13
15
  import { Button } from '../Button';
14
16
  import { Box, Flex } from '../Layout';
@@ -21,60 +23,94 @@ import { useAudioOutputTest } from '../Prebuilt/components/hooks/useAudioOutputT
21
23
  import { TEST_AUDIO_URL } from '../Prebuilt/common/constants';
22
24
 
23
25
  const SelectContainer = ({ children }: { children: React.ReactNode }) => (
24
- <Box css={{ w: '50%', '@lg': { w: '100%' } }}>{children}</Box>
26
+ <Box css={{ w: 'calc(50% - 0.75rem)', '@lg': { w: '100%' } }}>{children}</Box>
25
27
  );
26
28
 
27
- const MicTest = () => {
29
+ const MicTest = ({ setError }: { setError: React.Dispatch<React.SetStateAction<Error | undefined>> }) => {
28
30
  const devices = useHMSStore(selectDevices);
29
31
  const [isRecording, setIsRecording] = useState(false);
30
- const { audioInputDeviceId } = useHMSStore(selectLocalMediaSettings);
31
- const [selectedMic, setSelectedMic] = useState(audioInputDeviceId || 'default');
32
+ const [selectedMic, setSelectedMic] = useState(devices.audioInput[0]?.deviceId || 'default');
32
33
  const trackID = useHMSStore(selectLocalAudioTrackID);
33
34
  const audioLevel = useHMSStore(selectTrackAudioByID(trackID));
35
+ const { audioOutputDeviceId } = useHMSStore(selectLocalMediaSettings);
36
+ const { playing, setPlaying, audioRef } = useAudioOutputTest({
37
+ deviceId: audioOutputDeviceId || devices.audioOutput[0]?.deviceId,
38
+ });
34
39
 
35
40
  return (
36
41
  <SelectContainer>
37
42
  <DeviceSelector
38
- title="Microphone(Input)"
43
+ title="Microphone (Input)"
39
44
  devices={devices.audioInput}
40
45
  selection={selectedMic}
41
46
  icon={<MicOnIcon />}
42
47
  onChange={(deviceId: string) => {
43
48
  setSelectedMic(deviceId);
44
49
  hmsDiagnostics.stopMicCheck();
45
- setIsRecording(false);
46
50
  }}
47
51
  />
48
52
  <Flex css={{ gap: '$6', alignItems: 'center' }}>
49
53
  <Button
50
- onClick={() =>
51
- hmsDiagnostics
52
- .startMicCheck(selectedMic, () => {
53
- setIsRecording(false);
54
- })
55
- .then(() => {
56
- setIsRecording(true);
57
- })
58
- }
59
- disabled={isRecording}
54
+ variant="standard"
55
+ icon
56
+ onClick={() => {
57
+ isRecording
58
+ ? hmsDiagnostics.stopMicCheck()
59
+ : hmsDiagnostics
60
+ .startMicCheck({
61
+ inputDevice: selectedMic,
62
+ onError: (err: Error) => {
63
+ setError(err);
64
+ },
65
+ onStop: () => {
66
+ setIsRecording(false);
67
+ },
68
+ })
69
+ .then(() => {
70
+ setIsRecording(true);
71
+ });
72
+ }}
73
+ disabled={devices.audioInput.length === 0 || playing}
74
+ >
75
+ {isRecording ? <StopIcon /> : <MicOnIcon />}
76
+ {isRecording ? 'Stop Recording' : 'Record'}
77
+ </Button>
78
+
79
+ <Button
80
+ icon
81
+ variant="standard"
82
+ outlined={hmsDiagnostics.getRecordedAudio() === TEST_AUDIO_URL}
83
+ onClick={() => {
84
+ if (audioRef.current) {
85
+ audioRef.current.src = hmsDiagnostics.getRecordedAudio() || '';
86
+ audioRef.current.play();
87
+ }
88
+ }}
89
+ disabled={playing || hmsDiagnostics.getRecordedAudio() === TEST_AUDIO_URL}
60
90
  >
61
- {isRecording ? 'Recording...' : 'Record'}
91
+ <SpeakerIcon />
92
+ {playing ? 'Playing...' : 'Playback'}
62
93
  </Button>
63
- {isRecording && (
64
- <>
65
- <Text>
66
- <MicOnIcon />
67
- </Text>
68
- <Progress.Root value={audioLevel} css={{ h: '$2' }}>
69
- <Progress.Content
70
- style={{
71
- transform: `translateX(-${100 - audioLevel}%)`,
72
- transition: 'transform 0.3s',
73
- }}
74
- />
75
- </Progress.Root>
76
- </>
77
- )}
94
+ <audio
95
+ ref={audioRef}
96
+ onEnded={() => setPlaying(false)}
97
+ onPlay={() => setPlaying(true)}
98
+ style={{ display: 'none' }}
99
+ />
100
+ </Flex>
101
+
102
+ <Flex align="center" css={{ mt: '$4', maxWidth: '10rem', opacity: isRecording ? '1' : '0', gap: '$4' }}>
103
+ <Text>
104
+ <MicOnIcon />
105
+ </Text>
106
+ <Progress.Root value={audioLevel} css={{ h: '$2' }}>
107
+ <Progress.Content
108
+ style={{
109
+ transform: `translateX(-${100 - audioLevel}%)`,
110
+ transition: 'transform 0.3s',
111
+ }}
112
+ />
113
+ </Progress.Root>
78
114
  </Flex>
79
115
  </SelectContainer>
80
116
  );
@@ -84,37 +120,22 @@ const SpeakerTest = () => {
84
120
  const actions = useHMSActions();
85
121
  const devices = useHMSStore(selectDevices);
86
122
  const { audioOutputDeviceId } = useHMSStore(selectLocalMediaSettings);
87
- const { playing, setPlaying, audioRef } = useAudioOutputTest({ deviceId: audioOutputDeviceId || 'default' });
123
+
124
+ if (devices.audioOutput.length === 0) {
125
+ return <></>;
126
+ }
88
127
 
89
128
  return (
90
129
  <SelectContainer>
91
130
  <DeviceSelector
92
- title="Speaker(output)"
131
+ title="Speaker (Output)"
93
132
  devices={devices.audioOutput}
94
- selection={audioOutputDeviceId || 'default'}
133
+ selection={audioOutputDeviceId || devices.audioOutput[0]?.deviceId}
95
134
  icon={<SpeakerIcon />}
96
135
  onChange={(deviceId: string) => {
97
136
  actions.setAudioOutputDevice(deviceId);
98
137
  }}
99
138
  />
100
- <Button
101
- onClick={() => {
102
- if (audioRef.current) {
103
- audioRef.current.src = hmsDiagnostics.getRecordedAudio() || TEST_AUDIO_URL;
104
- audioRef.current.play();
105
- }
106
- }}
107
- disabled={playing}
108
- >
109
- <SpeakerIcon />
110
- <Text css={{ ml: '$4' }}>{playing ? 'Playing' : 'Playback'}</Text>
111
- </Button>
112
- <audio
113
- ref={audioRef}
114
- onEnded={() => setPlaying(false)}
115
- onPlay={() => setPlaying(true)}
116
- style={{ display: 'none' }}
117
- />
118
139
  </SelectContainer>
119
140
  );
120
141
  };
@@ -129,8 +150,9 @@ export const AudioTest = () => {
129
150
  <>
130
151
  <TestContainer>
131
152
  <Text variant="body2" css={{ c: '$on_primary_medium' }}>
132
- Record an audio clip and play it back to check that your microphone and speaker are working. If they aren't,
133
- make sure your volume is turned up, try a different speaker or microphone, or check your bluetooth settings.
153
+ Record a 10 second audio clip and play it back to check that your microphone and speaker are working. If they
154
+ aren't, make sure your volume is turned up, try a different speaker or microphone, or check your bluetooth
155
+ settings.
134
156
  </Text>
135
157
 
136
158
  <Flex
@@ -143,11 +165,12 @@ export const AudioTest = () => {
143
165
  },
144
166
  }}
145
167
  >
146
- {!error && <MicTest />}
168
+ <MicTest setError={setError} />
147
169
  <SpeakerTest />
148
170
  </Flex>
149
171
  </TestContainer>
150
172
  <TestFooter error={error} ctaText="Does your audio sound good?" />
173
+ <PermissionErrorModal error={error as HMSException} />
151
174
  </>
152
175
  );
153
176
  };