From 8c7a14c38f59c65b20649cbc6aa4402812dc5e8a Mon Sep 17 00:00:00 2001 From: Stefan Hacker Date: Sun, 12 Apr 2026 11:18:34 +0200 Subject: [PATCH] fix: Server-Ansicht aktualisiert Lock-Status sofort via SSE Die Server-Dateiliste im Client wartete bisher auf einen abgeschlossenen Sync-Durchlauf, bevor Lock-Aenderungen anderer Nutzer sichtbar wurden. Ausloeser von Events ohne Datei-Download (reine Lock/Unlock-Events) landeten teils gar nicht in der UI. Frontend hoert jetzt direkt auf das sse-event vom Backend und ruft loadFileTree + loadLocalFiles auf - damit Lock-Icons im Server-Tree in Echtzeit erscheinen/verschwinden. Co-Authored-By: Claude Opus 4.6 (1M context) --- clients/desktop/src/App.vue | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/clients/desktop/src/App.vue b/clients/desktop/src/App.vue index 92af2f4..224d942 100644 --- a/clients/desktop/src/App.vue +++ b/clients/desktop/src/App.vue @@ -321,6 +321,12 @@ onMounted(async () => { fileChanges.value = [`[${ts()}] ${e.payload}`, ...fileChanges.value].slice(0, 50); }); unlistenTrigger = await listen("trigger-sync", () => syncNow()); + // Server-Push: bei jedem File-Event Server-Tree + Lokale Liste neu laden, + // damit Lock-Status, neue/geloeschte Dateien sofort angezeigt werden. + await listen("sse-event", () => { + loadFileTree(); + loadLocalFiles(null); + }); unlistenCloudOpen = await listen("open-cloud-file", async (e) => { const cloudPath = e.payload; syncLog.value = [`[${ts()}] Oeffne: ${cloudPath}`, ...syncLog.value].slice(0, 200);