Fix keyboard focus on Sound cards

This commit is contained in:
Jef Roelandt 2024-04-21 16:24:08 +02:00
parent 4f4ffe3e3a
commit 8669489747

View file

@ -65,20 +65,34 @@ export function Sound({
}, [unselect, setVolume, id]); }, [unselect, setVolume, id]);
const toggle = useCallback(() => { const toggle = useCallback(() => {
if (isSelected) return _unselect(); if (isSelected) _unselect();
else _select();
}, [isSelected, _select, _unselect]);
_select(); const handleClick = useCallback(() => {
}, [isSelected, _unselect, _select]); toggle();
}, [toggle]);
const handleKeyDown = useCallback(
(event: React.KeyboardEvent<HTMLDivElement>) => {
if (event.key === 'Enter') {
toggle();
}
},
[toggle],
);
return ( return (
<div <div
role="button"
tabIndex={0}
className={cn( className={cn(
styles.sound, styles.sound,
isSelected && styles.selected, isSelected && styles.selected,
hidden && styles.hidden, hidden && styles.hidden,
)} )}
onClick={toggle} onClick={handleClick}
onKeyDown={toggle} onKeyDown={handleKeyDown}
> >
<Favorite id={id} /> <Favorite id={id} />
<div className={styles.icon}> <div className={styles.icon}>