Files
claude-live-dashboard/src/preload.js
T
Winkler, Stefan f8a286f219 Kaputte Links im Info-Dialog beheben, Lizenz-Menüpunkt ergaenzen
Klicks auf Links im gerenderten Markdown (z. B. BENUTZERHANDBUCH.md,
LICENSE.txt) navigierten das Fenster selbst dorthin und liessen einen
leeren, unschliessbaren Dialog zurueck. Main-Prozess faengt jetzt jede
Navigation im Info-Fenster ab: externe http(s)-Links oeffnen im
Standardbrowser, interne Verweise auf Benutzerhandbuch/Disclaimer/
Lizenz wechseln stattdessen den Inhalt desselben Dialogs.

Neuer dritter Menüpunkt "Lizenz" (LICENSE.txt) im Info-Dropdown. Der
README.md-Link in DISCLAIMER.md zeigt jetzt auf die Repo-Seite auf
Gitea statt auf einen kaputten relativen Pfad.

Claude-Session: https://claude.ai/code/session_01VeqoaAZDVSCU4QBtiYDC5C
2026-09-01 11:58:58 +02:00

36 lines
1.5 KiB
JavaScript

'use strict';
/**
* Schmale, explizite Brücke zwischen Main-Prozess und Oberfläche.
* Der Renderer bekommt keinen Node-Zugriff — nur diese Funktionen.
*/
const { contextBridge, ipcRenderer } = require('electron');
contextBridge.exposeInMainWorld('dashboard', {
/** Registriert den Empfänger für Zustandsaktualisierungen. */
onState(callback) {
ipcRenderer.on('state', (_event, state) => callback(state));
},
/** Fordert den aktuellen Zustand an (für den ersten Aufbau). */
getState: () => ipcRenderer.invoke('get-state'),
/** Liefert den gespeicherten Ansichtszustand, damit die Oberfläche zur Fenstergröße passt. */
getUiState: () => ipcRenderer.invoke('get-ui-state'),
/** Klappt die Detailansicht auf oder zu. */
setExpanded: (expanded) => ipcRenderer.send('set-expanded', expanded),
/** Blendet das Fenster aus (bleibt über das Tray-Symbol erreichbar). */
hide: () => ipcRenderer.send('hide-window'),
/** Öffnet den Einstellungsdialog. */
openSettings: () => ipcRenderer.send('open-settings'),
/** Öffnet das Fehler-/Ereignis-Log. */
openErrorLog: () => ipcRenderer.send('open-error-log'),
/** Öffnet die Release-Seite eines gefundenen neuen Updates im Browser. */
openReleasePage: () => ipcRenderer.send('open-release-page'),
/** Öffnet den Benutzerhandbuch-Dialog. */
openManual: () => ipcRenderer.send('open-manual'),
/** Öffnet den Disclaimer-Dialog. */
openDisclaimer: () => ipcRenderer.send('open-disclaimer'),
/** Öffnet den Lizenz-Dialog. */
openLicense: () => ipcRenderer.send('open-license'),
});