init
This commit is contained in:
1
frontend/src/hooks/index.ts
Normal file
1
frontend/src/hooks/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export * from "./useGlobalEvents";
|
||||
65
frontend/src/hooks/useGlobalEvents.tsx
Normal file
65
frontend/src/hooks/useGlobalEvents.tsx
Normal 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");
|
||||
};
|
||||
}, []);
|
||||
}
|
||||
Reference in New Issue
Block a user