feat: text reactions

Closes #180
This commit is contained in:
Arjun Patel
2026-04-29 07:44:26 -07:00
parent eb1e77b4c1
commit aacea01c1f
4 changed files with 213 additions and 23 deletions
+9 -3
View File
@@ -8,17 +8,19 @@ interface UseStreamActionKeysOptions {
onOpenHuddle: () => void;
onToggleRecordingMode: () => void;
onToggleKeybindings: () => void;
onOpenTextReaction: () => void;
}
/**
* Reactions 17, `h` huddle, `v` toggle recording mode, `?` toggle
* keybindings overlay. Skipped while playback is paused for any reason.
* Reactions 17, `r` quick text reply, `h` huddle, `v` toggle recording mode,
* `?` toggle keybindings overlay. Skipped while playback is paused for any reason.
*/
export function useStreamActionKeys({
onToggleReaction,
onOpenHuddle,
onToggleRecordingMode,
onToggleKeybindings,
onOpenTextReaction,
}: UseStreamActionKeysOptions) {
useEffect(() => {
const onKeyDown = (e: KeyboardEvent) => {
@@ -34,6 +36,10 @@ export function useStreamActionKeys({
e.preventDefault();
onToggleRecordingMode();
break;
case "r":
e.preventDefault();
onOpenTextReaction();
break;
case "?":
e.preventDefault();
onToggleKeybindings();
@@ -53,5 +59,5 @@ export function useStreamActionKeys({
window.addEventListener("keydown", onKeyDown);
return () => window.removeEventListener("keydown", onKeyDown);
}, [onToggleReaction, onOpenHuddle, onToggleRecordingMode, onToggleKeybindings]);
}, [onToggleReaction, onOpenHuddle, onToggleRecordingMode, onToggleKeybindings, onOpenTextReaction]);
}