fix: context menu uses Alpine proxy (window._wsData) instead of raw object
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped

The context menu component (_ctxMenuData) was calling methods on
window._wsInitData (the raw JS object), NOT on Alpine's reactive proxy.
This meant that changes made by ctxMenuDelete/ctxMenuDuplicate (like
updating displayTree) were applied to the raw object but not reflected
in Alpine's reactive proxy that controls DOM rendering.

Fix: _ctxMenuData now uses a _ws() helper that returns window._wsData
(Alpine proxy, set in init()) with fallback to window._wsInitData for
safety. All context menu actions now go through the reactive proxy.
This commit is contained in:
2026-07-16 09:59:07 -04:00
parent 30e1879ac2
commit 631c106b01
+10 -8
View File
@@ -1986,14 +1986,16 @@ window._ctxMenuData = {
ctxAvailTags: [],
ctxNewTagColor: '#787774',
ctxTagColors: ['#787774','#E03E3E','#D9730D','#DFAB01','#0F7B6C','#0B6E99','#6940A5','#AD1A72','#E16259','#D4A72C','#448361','#337EA9','#9065B0','#C94D8B'],
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); },
// Use Alpine proxy (window._wsData) for reactivity, not raw object (window._wsInitData)
_ws() { return window._wsData || window._wsInitData; },
ctxMenuOpenPage() { this._ws().ctxMenuOpenPage(); },
ctxMenuOpenFolder() { this._ws().ctxMenuOpenFolder(); },
ctxMenuRename() { this._ws().ctxMenuRename(); },
ctxMenuDuplicate() { this._ws().ctxMenuDuplicate(); },
ctxMenuDelete() { this._ws().ctxMenuDelete(); },
ctxAddExistingTag(t) { this._ws().ctxAddExistingTag(t); },
ctxAddNewTag(n, c) { this._ws().ctxAddNewTag(n, c); },
ctxRemoveTag(id) { this._ws().ctxRemoveTag(id); },
};
console.log('FLOWDECK v2.4.6 — IIFE done, _wsInitData keys:', Object.keys(window._wsInitData).length);
</script>