Initial commit: Claude Live Dashboard
Always-on-Top Electron-Widget für die Claude-Plan-Auslastung unter Windows. Liest Transkripte lokal, fragt optional den /usage-Endpunkt ab, bietet einen Einstellungsdialog und lässt sich als NSIS-Installer oder portable Fassung bauen.
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
'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'),
|
||||
});
|
||||
Reference in New Issue
Block a user