Skip to content

Commit 248e2ad

Browse files
committed
✨(frontend) re-focus toolbar on shortcut when already open
allow keyboard shortcut to return focus to the emoji toolbar without closing it
1 parent 2c7b4be commit 248e2ad

5 files changed

Lines changed: 26 additions & 1 deletion

File tree

src/frontend/src/features/rooms/livekit/components/controls/Device/ToggleDevice.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { ToggleButton } from '@/primitives'
22
import { useRegisterKeyboardShortcut } from '@/features/shortcuts/useRegisterKeyboardShortcut'
3+
import { useScreenReaderAnnounce } from '@/hooks/useScreenReaderAnnounce'
34
import { useMemo, useState } from 'react'
45
import { appendShortcutLabel } from '@/features/shortcuts/utils'
56
import { useTranslation } from 'react-i18next'
@@ -87,10 +88,18 @@ export const ToggleDevice = <T extends ToggleSource>({
8788
const deviceIcons = useDeviceIcons(kind)
8889
const cannotUseDevice = useCannotUseDevice(kind)
8990
const deviceShortcut = useDeviceShortcut(kind)
91+
const announce = useScreenReaderAnnounce()
9092

9193
useRegisterKeyboardShortcut({
9294
id: deviceShortcut?.id,
93-
handler: async () => await toggle(),
95+
handler: async () => {
96+
await toggle()
97+
const newState = !enabled
98+
const message = t(newState ? 'turnedOn' : 'turnedOff', {
99+
keyPrefix: `selectDevice.${kind}`,
100+
})
101+
announce(message, 'assertive')
102+
},
94103
isDisabled: cannotUseDevice,
95104
})
96105

src/frontend/src/locales/de/rooms.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
"permissionsNeeded": "Kamera auswählen - genehmigung erforderlich",
2323
"disable": "Kamera deaktivieren",
2424
"enable": "Kamera aktivieren",
25+
"turnedOff": "Kamera deaktiviert",
26+
"turnedOn": "Kamera aktiviert",
2527
"label": "Kamera",
2628
"placeholder": "Kamera aktivieren, um die Vorschau zu sehen"
2729
},
@@ -30,6 +32,8 @@
3032
"permissionsNeeded": "Mikrofon auswählen - genehmigung erforderlich",
3133
"disable": "Mikrofon deaktivieren",
3234
"enable": "Mikrofon aktivieren",
35+
"turnedOff": "Mikrofon deaktiviert",
36+
"turnedOn": "Mikrofon aktiviert",
3337
"label": "Mikrofon"
3438
},
3539
"audiooutput": {

src/frontend/src/locales/en/rooms.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
"permissionsNeeded": "Select camera - permission needed",
2323
"disable": "Disable camera",
2424
"enable": "Enable camera",
25+
"turnedOff": "Camera turned off",
26+
"turnedOn": "Camera turned on",
2527
"label": "Camera",
2628
"placeholder": "Enable camera to see the preview"
2729
},
@@ -30,6 +32,8 @@
3032
"permissionsNeeded": "Select microphone - permission needed",
3133
"disable": "Disable microphone",
3234
"enable": "Enable microphone",
35+
"turnedOff": "Microphone turned off",
36+
"turnedOn": "Microphone turned on",
3337
"label": "Microphone"
3438
},
3539
"audiooutput": {

src/frontend/src/locales/fr/rooms.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
"permissionsNeeded": "Choisir la webcam - autorisations nécessaires",
2323
"disable": "Désactiver la webcam",
2424
"enable": "Activer la webcam",
25+
"turnedOff": "Webcam désactivée",
26+
"turnedOn": "Webcam activée",
2527
"label": "Webcam",
2628
"placeholder": "Activez la webcam pour prévisualiser l'affichage"
2729
},
@@ -30,6 +32,8 @@
3032
"permissionsNeeded": "Choisir le micro - autorisations nécessaires",
3133
"disable": "Désactiver le micro",
3234
"enable": "Activer le micro",
35+
"turnedOff": "Micro désactivé",
36+
"turnedOn": "Micro activé",
3337
"label": "Microphone"
3438
},
3539
"audiooutput": {

src/frontend/src/locales/nl/rooms.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
"permissionsNeeded": "Selecteer camera - Toestemming vereist",
2323
"disable": "Camera uitschakelen",
2424
"enable": "Camera inschakelen",
25+
"turnedOff": "Camera uitgeschakeld",
26+
"turnedOn": "Camera ingeschakeld",
2527
"label": "Camera",
2628
"placeholder": "Schakel de camera in om de preview te zien"
2729
},
@@ -30,6 +32,8 @@
3032
"permissionsNeeded": "Selecteer microfoon - Toestemming vereist",
3133
"disable": "Microfoon dempen",
3234
"enable": "Microfoon dempen opheffen",
35+
"turnedOff": "Microfoon uitgeschakeld",
36+
"turnedOn": "Microfoon ingeschakeld",
3337
"label": "Microfoon"
3438
},
3539
"audiooutput": {

0 commit comments

Comments
 (0)