feat: 升级至 v0.3.16 — 工单修复 51 项 + 审查修复 30 项(安全加固/适配器/工具系统/数据层/前端)

This commit is contained in:
2026-07-22 10:31:13 +08:00
parent 516d8a728f
commit 2c2ca4a692
43 changed files with 1454 additions and 301 deletions
+16
View File
@@ -36,6 +36,16 @@ function matchModifier(event: KeyboardEvent, ctrl?: boolean, shift?: boolean): b
return true;
}
/**
* #39 修复: 检测键盘事件目标是否为输入框(input/textarea/contentEditable
* 用于在输入框聚焦时屏蔽单字符快捷键,避免拦截用户正常输入
*/
function isInputTarget(e: KeyboardEvent): boolean {
const target = e.target as HTMLElement | null;
if (!target) return false;
return ['INPUT', 'TEXTAREA'].includes(target.tagName) || target.isContentEditable;
}
/**
* 全局快捷键 Hook
*
@@ -46,6 +56,12 @@ export function useKeyboardShortcuts(): void {
const handleKeyDown = (e: KeyboardEvent): void => {
const key = e.key.toLowerCase();
// #39 修复: 输入框聚焦时,单字符无修饰键直接放行,避免拦截用户输入
// Ctrl/Cmd 组合键不受影响(如 Ctrl+N/L/D 等仍可触发)
if (isInputTarget(e) && e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {
return;
}
// Esc — 关闭弹窗
if (key === 'escape') {
const { settingsOpen, closeSettings } = useUIStore.getState();