import { appWindow } from "@tauri-apps/api/window"; import { register, unregisterAll, isRegistered } from "@tauri-apps/api/globalShortcut"; import { invoke } from "@tauri-apps/api/tauri"; import { useEffect, useRef } from "react"; import { store } from "@store"; export const GlobalHotKeyController = () => { const is_initialized = useRef(false); useEffect(() => { if (is_initialized.current) return; const registerShortcuts = async () => { const shortcut = "Alt+Y"; const is_already_registered = await isRegistered(shortcut); if (is_already_registered) return; await register(shortcut, async () => { const activeWindowTitle = await invoke("get_active_window_title"); if (activeWindowTitle.includes("VRChat")) { console.log("Shortcut triggered, setFocus"); appWindow.unminimize(); await appWindow.setFocus(); store.text_area_ref.current?.focus(); } else { console.log("Active window is not VRChat."); } }); }; registerShortcuts(); is_initialized.current = true; return () => { unregisterAll().catch((error) => { console.error("Failed to unregister shortcuts:", error); }); }; }, []); return null; };