From ae2650226ec957c02df7540ac5d8a57b45ab113c Mon Sep 17 00:00:00 2001 From: rektdeckard Date: Fri, 23 May 2025 10:18:53 -0600 Subject: [PATCH] chore: rename discriminator -> guard --- lib/KeyboardShortcuts.tsx | 8 ++++---- lib/keybindings.ts | 22 +++++++++++----------- lib/types.ts | 2 +- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/lib/KeyboardShortcuts.tsx b/lib/KeyboardShortcuts.tsx index 9820a6f..10075c4 100644 --- a/lib/KeyboardShortcuts.tsx +++ b/lib/KeyboardShortcuts.tsx @@ -24,7 +24,7 @@ export function KeyboardShortcuts() { if (!t) return null; const on = async (event: KeyboardEvent) => { - if (enable.discriminator(event)) { + if (enable.guard(event)) { event.preventDefault(); if (!isMicrophoneEnabled) { pttHeldRef.current = true; @@ -34,7 +34,7 @@ export function KeyboardShortcuts() { }; const off = async (event: KeyboardEvent) => { - if (disable.discriminator(event)) { + if (disable.guard(event)) { event.preventDefault(); if (pttHeldRef.current && isMicrophoneEnabled) { pttHeldRef.current = false; @@ -55,7 +55,7 @@ export function KeyboardShortcuts() { if (!t) return null; const handler = async (event: KeyboardEvent) => { - if (binding.discriminator(event) && !pendingMicChange) { + if (binding.guard(event) && !pendingMicChange) { event.preventDefault(); toggleMic?.().catch(console.error); } @@ -69,7 +69,7 @@ export function KeyboardShortcuts() { if (!t) return null; const handler = async (event: KeyboardEvent) => { - if (binding.discriminator(event) && !pendingCameraChange) { + if (binding.guard(event) && !pendingCameraChange) { event.preventDefault(); toggleCamera?.().catch(console.error); } diff --git a/lib/keybindings.ts b/lib/keybindings.ts index 52b8e24..f5e0007 100644 --- a/lib/keybindings.ts +++ b/lib/keybindings.ts @@ -1,6 +1,6 @@ import { type KeyBinding, KeyBindings, KeyCommand } from './types'; -export function isControlElement(event: Event) { +export function isInteractiveElement(event: Event) { return ( event.target instanceof HTMLButtonElement || event.target instanceof HTMLInputElement || @@ -23,44 +23,44 @@ export const commonKeyBindings: Record< spacebar: [ { eventName: 'keydown', - discriminator: (event) => { - return event.code === 'Space' && !isControlElement(event); + guard: (event) => { + return event.code === 'Space' && !isInteractiveElement(event); }, }, { eventName: 'keyup', - discriminator: (event) => event.code === 'Space', + guard: (event) => event.code === 'Space', }, ], leftMouse: [ { eventName: 'mousedown', - discriminator: (event) => { - return isMouseButton(0, event) && !isControlElement(event); + guard: (event) => { + return isMouseButton(0, event) && !isInteractiveElement(event); }, }, { eventName: 'mouseup', - discriminator: (event) => isMouseButton(0, event), + guard: (event) => isMouseButton(0, event), }, ], middleMouse: [ { eventName: 'mousedown', - discriminator: (event) => isMouseButton(1, event), + guard: (event) => isMouseButton(1, event), }, { eventName: 'mouseup', - discriminator: (event) => isMouseButton(1, event), + guard: (event) => isMouseButton(1, event), }, ], metaShiftA: { eventName: 'keydown', - discriminator: (event) => event.key === 'A' && (event.ctrlKey || event.metaKey), + guard: (event) => event.key === 'A' && (event.ctrlKey || event.metaKey), }, metaShiftV: { eventName: 'keydown', - discriminator: (event) => event.key === 'V' && (event.ctrlKey || event.metaKey), + guard: (event) => event.key === 'V' && (event.ctrlKey || event.metaKey), }, } as const; diff --git a/lib/types.ts b/lib/types.ts index 45f1ab4..6eb3312 100644 --- a/lib/types.ts +++ b/lib/types.ts @@ -30,7 +30,7 @@ export type ConnectionDetails = { export type KeyBinding = { eventName: keyof GlobalEventHandlersEventMap; - discriminator: (event: KeyboardEvent) => boolean; + guard: (event: KeyboardEvent) => boolean; target?: Window | Document | HTMLElement | string; };