From c524478ff250cc0123a3023cfb201c725d7e6e83 Mon Sep 17 00:00:00 2001 From: bruno Date: Mon, 13 Jul 2026 11:05:34 -0400 Subject: [PATCH] =?UTF-8?q?fix:=20=5FctxMenuData=20=E2=80=94=20objet=20l?= =?UTF-8?q?=C3=A9ger=20sans=20conflit=20Alpine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit _wsInitData (162 keys) causait "Cannot redefine property: $nextTick" quand réutilisé comme x-data sur .ctx-menu. Alpine ajoute des propriétés magiques ($nextTick, $el, etc.) et certaines entrent en conflit avec les propriétés de l'objet massif. Solution: window._ctxMenuData — objet minimal avec getters/setters déléguant à _wsInitData. Seulement 20 propriétés, zéro conflit. + Restauré les directives Alpine (x-show, x-for, :style) dans le menu puisque le scope Alpine fonctionne maintenant. --- app/templates/local_workspace.html | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/app/templates/local_workspace.html b/app/templates/local_workspace.html index 45e11ff..6f22562 100644 --- a/app/templates/local_workspace.html +++ b/app/templates/local_workspace.html @@ -1916,6 +1916,28 @@ for (var _i = 0; _i < _wsKeys.length; _i++) { try { window[_wsKeys[_i]] = window._wsInitData[_wsKeys[_i]]; } catch(e) {} } _wsInitData = window._wsInitData; +// Objet léger pour le ctx-menu (évite le conflit $nextTick avec Alpine) +window._ctxMenuData = { + get ctxMenu() { return window._wsInitData.ctxMenu; }, + set ctxMenu(v) { window._wsInitData.ctxMenu = v; }, + get ctxTagAdding() { return window._wsInitData.ctxTagAdding; }, + set ctxTagAdding(v) { window._wsInitData.ctxTagAdding = v; }, + get ctxTagExistingOpen() { return window._wsInitData.ctxTagExistingOpen; }, + set ctxTagExistingOpen(v) { window._wsInitData.ctxTagExistingOpen = v; }, + get ctxAvailTags() { return window._wsInitData.ctxAvailTags; }, + set ctxAvailTags(v) { window._wsInitData.ctxAvailTags = v; }, + get ctxNewTagColor() { return window._wsInitData.ctxNewTagColor; }, + set ctxNewTagColor(v) { window._wsInitData.ctxNewTagColor = v; }, + get ctxTagColors() { return window._wsInitData.ctxTagColors; }, + ctxMenuOpenPage() { window._wsInitData.ctxMenuOpenPage(); }, + ctxMenuOpenFolder() { window._wsInitData.ctxMenuOpenFolder(); }, + ctxMenuRename() { window._wsInitData.ctxMenuRename(); }, + ctxMenuDuplicate() { window._wsInitData.ctxMenuDuplicate(); }, + ctxMenuDelete() { window._wsInitData.ctxMenuDelete(); }, + ctxAddExistingTag(t) { window._wsInitData.ctxAddExistingTag(t); }, + ctxAddNewTag(n, c) { window._wsInitData.ctxAddNewTag(n, c); }, + ctxRemoveTag(id) { window._wsInitData.ctxRemoveTag(id); }, +}; console.log('FLOWDECK v2.4.6 — IIFE done, _wsInitData keys:', Object.keys(window._wsInitData).length); @@ -2350,7 +2372,7 @@ console.log('FLOWDECK v2.4.6 — IIFE done, _wsInitData keys:', Object.keys(wind -