chore: update

This commit is contained in:
huzibaca
2024-09-25 21:07:01 +08:00
parent ec2bf37ad4
commit 2aa3c8cfe1
3 changed files with 44 additions and 5 deletions

34
src/hooks/use-listen.ts Normal file
View File

@@ -0,0 +1,34 @@
import { listen, UnlistenFn, EventCallback } from "@tauri-apps/api/event";
import { event } from "@tauri-apps/api";
export const useListen = () => {
let unlistenFns: UnlistenFn[] = [];
const addListener = async function <T>(
eventName: string,
handler: EventCallback<T>
) {
const unlisten = await listen(eventName, handler);
unlistenFns.push(unlisten);
return unlisten;
};
const removeAllListeners = async function () {
for (const unlisten of unlistenFns) {
Promise.resolve(unlisten()).catch(console.error);
}
unlistenFns = [];
};
const setupCloseListener = async function () {
await event.once("tauri://close-requested", async () => {
console.log("Window close requested.");
await removeAllListeners();
});
};
return {
addListener,
removeAllListeners,
setupCloseListener,
};
};