fix: ignore Ctrl/Alt/Meta in keyboard shortcuts

This commit is contained in:
N1C4T
2025-12-31 14:04:15 +04:00
parent 2a74cf9a39
commit 683943a180
5 changed files with 15 additions and 0 deletions

View File

@@ -71,6 +71,9 @@ export default function Home() {
// Skip if already in input
if (e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement) return;
// Skip if modifier keys are pressed (prevents conflicts with browser shortcuts)
if (e.ctrlKey || e.altKey || e.metaKey) return;
if (e.key === '/') {
e.preventDefault();
searchInputRef.current?.focus();

View File

@@ -38,6 +38,9 @@ export function AurPanel({
useEffect(() => {
const handleKeyDown = (e: KeyboardEvent) => {
if (e.target instanceof HTMLInputElement) return;
// Skip if modifier keys are pressed (prevents conflicts with browser shortcuts)
if (e.ctrlKey || e.altKey || e.metaKey) return;
if (e.key === '1') setSelectedHelper('yay');
if (e.key === '2') setSelectedHelper('paru');
};

View File

@@ -95,6 +95,9 @@ export function CommandFooter({
return;
}
// Ignore if modifier keys are pressed (prevents conflicts with browser shortcuts like Ctrl+D)
if (e.ctrlKey || e.altKey || e.metaKey) return;
// These shortcuts always work
const alwaysEnabled = ['t', 'c'];
if (selectedCount === 0 && !alwaysEnabled.includes(e.key)) return;

View File

@@ -43,6 +43,9 @@ export function HowItWorks() {
// Ignore if typing in input
if (e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement) return;
// Skip if Ctrl/Alt/Meta are pressed (Shift is allowed for ?)
if (e.ctrlKey || e.altKey || e.metaKey) return;
if (e.key === '?' || (e.shiftKey && e.key === '/')) {
e.preventDefault();
if (isOpen) {

View File

@@ -77,6 +77,9 @@ export function useKeyboardNavigation(
// Skip if typing in input
if (e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement) return;
// Skip if modifier keys are pressed (prevents conflicts with browser shortcuts like Ctrl+D)
if (e.ctrlKey || e.altKey || e.metaKey) return;
const key = e.key;
// Space to toggle