From 6f06ed0de4bbe7416b73ced077da8ca45121ea33 Mon Sep 17 00:00:00 2001 From: yuruo Date: Sun, 9 Jun 2024 07:36:13 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E4=BF=AE=E5=A4=8D(shortCut.ts)?= =?UTF-8?q?=EF=BC=9A=E4=BF=AE=E5=A4=8D=E5=BF=AB=E6=8D=B7=E9=94=AE=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E5=89=8D=E5=90=8E=E7=9A=84=E5=80=BC=E4=B8=8D=E4=B8=80?= =?UTF-8?q?=E8=87=B4bug=20=F0=9F=93=9D=20=E6=9B=B4=E6=96=B0(components/Err?= =?UTF-8?q?or.tsx)=EF=BC=9A=E6=9B=B4=E6=96=B0Error=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E4=BB=A5=E6=B8=85=E9=99=A4=E9=94=99=E8=AF=AF=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E7=9A=84=E6=95=88=E6=9E=9C=20=E2=99=BB=EF=B8=8F=20=E9=87=8D?= =?UTF-8?q?=E6=9E=84(hooks/useShortCut.ts)=EF=BC=9A=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E5=BF=AB=E6=8D=B7=E9=94=AE=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BB=A5=E4=BD=BF=E7=94=A8=E6=96=B0=E7=9A=84useStore=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/autoMate/src/main/code/shortCut.ts | 6 ++++-- ui/autoMate/src/renderer/src/components/Error.tsx | 8 +++++++- ui/autoMate/src/renderer/src/hooks/useShortCut.ts | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ui/autoMate/src/main/code/shortCut.ts b/ui/autoMate/src/main/code/shortCut.ts index 9e6ba57..dd1427b 100644 --- a/ui/autoMate/src/main/code/shortCut.ts +++ b/ui/autoMate/src/main/code/shortCut.ts @@ -8,8 +8,9 @@ const config = { export const registerShortCut = (win: BrowserWindow) => { ipcMain.handle("shortCut", (_event: IpcMainInvokeEvent, type: 'search', shortCut: string) => { - // react 严格模式会执行两次,可能会导致快捷键重复注册,这里在注册前会删除旧快捷键 + // react 严格模式会执行两次,可能会导致快捷键重复注册,这里在注册前会删除旧快捷键,也用户注册过快捷键想修改成其他快捷键 if (config.search) globalShortcut.unregister(config.search) + config.search = shortCut switch(type){ case 'search': return registerSearchShortCut(shortCut, win) @@ -18,9 +19,10 @@ export const registerShortCut = (win: BrowserWindow) => { } function registerSearchShortCut(shortCut: string, win: BrowserWindow){ - return globalShortcut.register(shortCut, () => { + const res = globalShortcut.register(shortCut, () => { win.isVisible() ? win.hide() : win.show() }) + return res } app.on('will-quit', () => { // Unregister all shortcuts. diff --git a/ui/autoMate/src/renderer/src/components/Error.tsx b/ui/autoMate/src/renderer/src/components/Error.tsx index 25a40db..15b1194 100644 --- a/ui/autoMate/src/renderer/src/components/Error.tsx +++ b/ui/autoMate/src/renderer/src/components/Error.tsx @@ -1,7 +1,13 @@ import { useStore } from "@renderer/store/useStore" +import { useEffect } from "react" function Error(){ - const {error} = useStore() + const error = useStore(state => state.error) + const setError = useStore(state => state.setError) + useEffect(() => { + const id = setTimeout(() => setError(""), 2000) + return () => clearTimeout(id) + }, [error]) if (!error) return <> return <>
{error}
} diff --git a/ui/autoMate/src/renderer/src/hooks/useShortCut.ts b/ui/autoMate/src/renderer/src/hooks/useShortCut.ts index 894b5c1..496483a 100644 --- a/ui/autoMate/src/renderer/src/hooks/useShortCut.ts +++ b/ui/autoMate/src/renderer/src/hooks/useShortCut.ts @@ -1,7 +1,7 @@ import { useStore } from "@renderer/store/useStore" export default() => { - const {setError} = useStore() + const setError = useStore(state => state.setError) const register = async (type: 'search', shortCut: string)=>{ const ret = await window.api.shortCut(type, shortCut) ret || setError("注册失败")