fix: 右键菜单 srcUrl 误判、pre-push 变更文件检测、generating 状态不可见 (#64)

* fix: 修复右键菜单 srcUrl 误判、pre-push 全量扫描、generating 状态不可见问题

- contextMenu: srcUrl 检查限定为 qrCode-image 菜单项,避免其他菜单误返回图片 URL
- pre-push: eslint 改为只检查变更文件(git diff 过滤),tsc 保留全项目检查
- useQrCode: confirmGenerate 用 setTimeout 延迟生成,让 loading 状态先被 React 渲染
- tests: 生成相关测试改为 async + waitFor 适配异步 confirmGenerate

* fix(hooks): pre-push 无 upstream 时回退到 origin/main 对比

* fix(hooks): 用 merge-base 替代 rev-parse 修复 pre-push 变更文件检测
This commit is contained in:
LingandRX
2026-06-05 13:10:44 +08:00
committed by GitHub
parent 359326c6da
commit 58af2af37b
+6 -4
View File
@@ -4,8 +4,10 @@ npx tsc --noEmit
# ESLint 严格检查(仅检查本次推送的变更文件,不阻塞不相关的旧代码)
# 新分支无 upstream 时,回退到与 origin/main 对比
BASE=$(git rev-parse --verify @{upstream} 2>/dev/null && echo "@{upstream}" || echo "origin/main")
CHANGED_FILES=$(git diff --name-only --diff-filter=d "$BASE"...HEAD -- '*.ts' '*.tsx' '*.js' '*.jsx' '*.mjs')
if [ -n "$CHANGED_FILES" ]; then
echo "$CHANGED_FILES" | xargs npx eslint --max-warnings=0
MERGE_BASE=$(git merge-base HEAD @{upstream} 2>/dev/null || git merge-base HEAD origin/main 2>/dev/null)
if [ -n "$MERGE_BASE" ]; then
CHANGED_FILES=$(git diff --name-only --diff-filter=d "$MERGE_BASE" HEAD -- '*.ts' '*.tsx' '*.js' '*.jsx' '*.mjs')
if [ -n "$CHANGED_FILES" ]; then
echo "$CHANGED_FILES" | xargs npx eslint --max-warnings=0
fi
fi