♻️(frontend) refactor device select for controlled behavior

Major refactor of device select component with several key improvements:

* Set permission=true for Firefox compatibility - without this flag,
  device list returns empty on Firefox
* Implement controlled component pattern for active device selection,
  ensuring sync with preview track state
* Remove default device handling as controlled behavior eliminates need
* Render selectors only after permissions granted to prevent double
  permission prompts (separate for mic/camera)

Ensures usePreviewTrack handles initial permission request, then
selectors allow specific device choice once access is granted.
This commit is contained in:
lebaudantoine
2025-08-11 16:16:57 +02:00
committed by aleb_the_flash
parent 7c6182cc4e
commit cb8b415ef9
5 changed files with 83 additions and 27 deletions

View File

@@ -9,10 +9,12 @@
},
"join": {
"selectDevice": {
"loading": "Bezig met laden…"
"loading": "Bezig met laden…",
"permissionNeeded": "Toestemming vereist"
},
"videoinput": {
"choose": "Selecteer camera",
"permissionNeeded": "Selecteer camera - Toestemming vereist",
"disable": "Camera uitschakelen",
"enable": "Camera inschakelen",
"label": "Camera",
@@ -20,6 +22,7 @@
},
"audioinput": {
"choose": "Selecteer microfoon",
"permissionNeeded": "Selecteer microfoon - Toestemming vereist",
"disable": "Microfoon dempen",
"enable": "Microfoon dempen opheffen",
"label": "Microfoon"