From ef6599445d64c5f75a63aff7f78323a7593a24fe Mon Sep 17 00:00:00 2001 From: mozzie Date: Mon, 2 Sep 2024 09:41:19 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20dcm=20hash=E5=8E=BB=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/desktop/electron/preload.ts | 4 +++ apps/desktop/src/pages/Datasource/index.tsx | 29 +++++++++------------ 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/apps/desktop/electron/preload.ts b/apps/desktop/electron/preload.ts index ee7474c..e2d8438 100644 --- a/apps/desktop/electron/preload.ts +++ b/apps/desktop/electron/preload.ts @@ -20,4 +20,8 @@ contextBridge.exposeInMainWorld("ipcRenderer", { const [channel, ...omit] = args; return ipcRenderer.invoke(channel, ...omit); }, + once: (...args: Parameters) => { + const [channel, ...omit] = args; + return ipcRenderer.once(channel, ...omit); + }, }); diff --git a/apps/desktop/src/pages/Datasource/index.tsx b/apps/desktop/src/pages/Datasource/index.tsx index 9b559cf..1f8ffd5 100644 --- a/apps/desktop/src/pages/Datasource/index.tsx +++ b/apps/desktop/src/pages/Datasource/index.tsx @@ -2,37 +2,34 @@ import { Button } from "@/components/ui/button"; import { useEffect, useState } from "react"; interface ScanProgress { - percentage: number + percentage: number; } export const Datasource = () => { - const [progress, setProgress] = useState() - const [result, setResult] = useState() + const [progress, setProgress] = useState(); + const [result, setResult] = useState(); useEffect(() => { - window.ipcRenderer.on('scan-progress', (event, data) => { - setProgress(data) + const handleScanProgress = (event, data) => { + setProgress(data); if (data.error) return; - }); - + }; + window.ipcRenderer.on("scan-progress", handleScanProgress); return () => { - window.ipcRenderer.off('scan-progress', () => { }); + window.ipcRenderer.off("scan-progress", handleScanProgress); }; }, []); useEffect(() => { - window.ipcRenderer.on('scan-progress-done', (event, data) => { - console.log('%capps\desktop\src\pages\Datasource\index.tsx:25 data', 'color: #007acc;', data); - setResult(data) + console.log(1111); + const handleScanFinished = (event, data) => { + console.log(data); + setResult(data); if (data.error) return; - }); - - return () => { - window.ipcRenderer.off('scan-progress-done', () => { }); }; + window.ipcRenderer.once("scan-progress-done", handleScanFinished); }, []); - return (