From 9ee0079a020248345acd01c7f45a793b64f72ac6 Mon Sep 17 00:00:00 2001 From: bruno Date: Sun, 12 Jul 2026 18:05:20 -0400 Subject: [PATCH] =?UTF-8?q?fix:=20contexte=20menu=20=E2=80=94=20window.=5F?= =?UTF-8?q?wsData=20global=20+=20expos=C3=A9=20avant=20await?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - @contextmenu.prevent passe par window._wsData (global) au lieu du scope Alpine → contourne tout problème de résolution de scope Alpine - window._wsData = this déplacé AVANT le await fetch(...) dans init() → disponible immédiatement, pas après la réponse API - Conserve @click.self pour fermer le menu en cliquant sur le fond --- app/main.py | 2 +- app/templates/local_workspace.html | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/main.py b/app/main.py index b27680f..60c73fd 100644 --- a/app/main.py +++ b/app/main.py @@ -39,7 +39,7 @@ async def lifespan(_app: FastAPI): app = FastAPI( title="FlowDeck", - version="2.4.4", + version="2.4.5", docs_url="/docs" if settings.log_level == "DEBUG" else None, redoc_url=None, lifespan=lifespan, diff --git a/app/templates/local_workspace.html b/app/templates/local_workspace.html index 8249c9e..0c1e614 100644 --- a/app/templates/local_workspace.html +++ b/app/templates/local_workspace.html @@ -341,7 +341,7 @@ @dragleave="onDragLeave($event)" @drop.prevent="onDrop($event)" @keydown="onKeydown($event)" - @contextmenu.prevent="onContextMenu($event)" + @contextmenu.prevent="if(window._wsData) window._wsData.onContextMenu($event)" @click.self="ctxMenu.visible = false" tabindex="0" x-ref="layout"> @@ -1005,6 +1005,8 @@ document.addEventListener('alpine:init', function() { async init() { try { + // Expose globally for event handlers (BEFORE await) + window._wsData = this; var url = '/api/local-workspace/tree'; if (this.currentFolder && this.currentFolder > 0) { url += '?folder=' + this.currentFolder;