chore: rename discriminator -> guard

This commit is contained in:
rektdeckard 2025-05-23 10:18:53 -06:00
parent 782ee01481
commit ae2650226e
3 changed files with 16 additions and 16 deletions

View File

@ -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);
}

View File

@ -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;

View File

@ -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;
};