diff --git a/src/food-market.web/src/lib/useShortcuts.ts b/src/food-market.web/src/lib/useShortcuts.ts index fd14a74..88eed5e 100644 --- a/src/food-market.web/src/lib/useShortcuts.ts +++ b/src/food-market.web/src/lib/useShortcuts.ts @@ -40,6 +40,14 @@ const matches = (e: KeyboardEvent, spec: string): boolean => { const wantShift = parts.includes('shift') const wantAlt = parts.includes('alt') const key = parts[parts.length - 1] + const isBare = parts.length === 1 + + // Бэр-ключи ('?', '/', 'n', 'Escape') — не зависим от модификаторов: + // некоторые символы требуют shift на ряде раскладок ('?'), и мы хотим + // чтобы ловилось при любом состоянии. Esc сам не использует модификаторы. + if (isBare) { + return e.key.toLowerCase() === key + } const ctrlOrMeta = e.ctrlKey || e.metaKey if (wantMod !== ctrlOrMeta) return false