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
This commit is contained in:
@@ -165,27 +165,31 @@ export function useQrCode(): QrCodeContextValue {
|
||||
return;
|
||||
}
|
||||
|
||||
// 先设置 loading 状态,让 React 渲染加载动画
|
||||
setGeneratorState((prev) => ({ ...prev, generating: true, inputError: '' }));
|
||||
|
||||
const qrCodeDataUrl = generateQrCodeDataUrl(text);
|
||||
// 延迟到下一帧生成,确保 loading 状态先被渲染显示
|
||||
setTimeout(() => {
|
||||
const qrCodeDataUrl = generateQrCodeDataUrl(text);
|
||||
|
||||
if (!qrCodeDataUrl) {
|
||||
setGeneratorState((prev) => ({
|
||||
...prev,
|
||||
generating: false,
|
||||
inputError: t('qrCode:generateError'),
|
||||
}));
|
||||
toast.error(t('qrCode:generateError'));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!qrCodeDataUrl) {
|
||||
setGeneratorState((prev) => ({
|
||||
...prev,
|
||||
step: 'preview',
|
||||
savedText: text,
|
||||
qrCodeDataUrl,
|
||||
generating: false,
|
||||
inputError: t('qrCode:generateError'),
|
||||
}));
|
||||
toast.error(t('qrCode:generateError'));
|
||||
return;
|
||||
}
|
||||
|
||||
setGeneratorState((prev) => ({
|
||||
...prev,
|
||||
step: 'preview',
|
||||
savedText: text,
|
||||
qrCodeDataUrl,
|
||||
generating: false,
|
||||
}));
|
||||
}, 0);
|
||||
}, [generatorState.textToEncode, t]);
|
||||
|
||||
/** 返回编辑态,保留上次输入内容 */
|
||||
|
||||
Reference in New Issue
Block a user