This commit is contained in:
2025-07-08 14:54:41 +07:00
commit 644a6f9803
86 changed files with 12422 additions and 0 deletions

View File

@@ -0,0 +1 @@
export * from "./useGlobalEvents";

View File

@@ -0,0 +1,65 @@
// useGlobalEvents.ts
import { useEffect } from "react";
import { Events } from "@wailsio/runtime";
export function useGlobalEvents({
setGameRunning,
setServerRunning,
setProxyRunning,
setProgressUpdate,
setMaxProgressUpdate,
setProgressDownload,
setDownloadSpeed,
setMessageUpdate,
}: {
setGameRunning: (v: boolean) => void;
setServerRunning: (v: boolean) => void;
setProxyRunning: (v: boolean) => void;
setProgressUpdate: (v: number) => void;
setMaxProgressUpdate: (v: number) => void;
setProgressDownload: (v: number) => void;
setDownloadSpeed: (v: number) => void;
setMessageUpdate: (v: string) => void;
}) {
useEffect(() => {
const onGameExit = () => setGameRunning(false);
const onServerExit = () => setServerRunning(false);
const onProxyExit = () => setProxyRunning(false);
const onDownload = (event: any) => {
const { percent, speed } = event.data[0];
setProgressDownload(Number(percent));
setDownloadSpeed(Number(speed));
};
const onUpdateProgress = (event: any) => {
const { progress, maxProgress } = event.data[0];
setProgressUpdate(Number(progress));
setMaxProgressUpdate(Number(maxProgress));
};
const onMessageUpdate = (event: any) => {
const { message } = event.data[0];
setMessageUpdate(message);
};
Events.On("download:server", onDownload);
Events.On("download:proxy", onDownload);
Events.On("game:exit", onGameExit);
Events.On("server:exit", onServerExit);
Events.On("proxy:exit", onProxyExit);
Events.On("hdiffz:progress", onUpdateProgress);
Events.On("hdiffz:message", onMessageUpdate);
return () => {
Events.Off("download:server");
Events.Off("download:proxy");
Events.Off("game:exit");
Events.Off("server:exit");
Events.Off("proxy:exit");
Events.Off("hdiffz:progress");
Events.Off("hdiffz:message");
};
}, []);
}