System-Tray: Quick-Access-Menü, Hide-on-Close, Cmd+Q beendet

Tray-Icon in der macOS-Menüleiste mit Linksklick zum Fokussieren und
Rechtsklick-Menü: Rapport öffnen, Dashboard, Zeiterfassung, Projekte,
Buchhaltung, Einstellungen, Beenden. Menü-Klicks senden ein
rapport:navigate-Event ans Frontend.

Der rote Schliessen-Button versteckt nur — die App läuft im Hintergrund
weiter. Cmd+Q (RunEvent::ExitRequested) und der Tray-Quit-Eintrag
setzen ein is_quitting-Flag und beenden die App wirklich.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-16 01:29:49 +02:00
parent a5997cb52b
commit 22eb0f3e48
3 changed files with 117 additions and 16 deletions
+16
View File
@@ -277,6 +277,22 @@ export default function App() {
return () => window.removeEventListener("openProtokoll", handler);
}, []);
// Tray-Menü: „Zeiterfassung", „Projekte" usw. springen zur passenden View
useEffect(() => {
if (!window.__TAURI_INTERNALS__) return;
let unlisten = null;
import("@tauri-apps/api/event").then(({ listen }) => {
listen("rapport:navigate", (event) => {
const target = event.payload;
if (typeof target === "string") {
navigate(target);
setSelectedProjectId(null);
}
}).then((fn) => { unlisten = fn; });
});
return () => { if (unlisten) unlisten(); };
}, []);
// Auto-expand parent when navigating to a child
useEffect(() => {
NAV_ITEMS.forEach(item => {