local-workspace: fix preview panel null errors, wrap inner content in x-if
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped

- Keep outer x-show on preview-panel div for transition animation
- Wrap all inner content referencing previewItem in <template x-if=previewItem>
  to prevent Alpine from evaluating expressions when previewItem is null
- Clean up debug console.logs from earlier debugging
- This combines x-show (reliable visibility toggle) with x-if (null guard)
This commit is contained in:
2026-07-22 08:59:24 -04:00
parent c4ff0a41e0
commit 45eefa0c11
+5 -5
View File
@@ -798,9 +798,7 @@ window._wsInitData = (function() {
// ── Preview panel ──
selectForPreview(node) {
console.log('[local-ws] selectForPreview called, node:', node ? node.id : 'null', node ? node.name : 'null');
this.previewItem = node;
console.log('[local-ws] previewItem set:', this.previewItem ? this.previewItem.id : 'null');
this.previewPanelContent = '<div style="text-align:center;padding:40px;color:var(--text-tertiary)">Loading...</div>';
this._loadPreviewContent(node);
},
@@ -1795,9 +1793,7 @@ window._wsInitData = (function() {
openPage(id) { window.location = '/pages/'+id; },
openSidePeek(id) {
console.log('[local-ws] openSidePeek called, id:', id);
var node = this._findNodeById(this.tree, id) || this._findNodeById(this.displayTree, id);
console.log('[local-ws] openSidePeek node found:', node ? node.name : 'NOT FOUND');
if (node) this.selectForPreview(node);
},
@@ -2440,7 +2436,7 @@ console.log('FLOWDECK v2.4.6 — IIFE done, _wsInitData keys:', Object.keys(wind
</span>
</template>
<template x-if="!node.is_folder">
<a href="#" class="btn-open hover-only" @click.prevent.stop="console.log('OPEN clicked, node:', node.id, node.name); selectForPreview(node)" title="Open in side preview" style="margin-left:auto;">↢ Open</a>
<a href="#" class="btn-open hover-only" @click.prevent.stop="selectForPreview(node)" title="Open in side preview" style="margin-left:auto;">↢ Open</a>
</template>
<div class="actions">
@@ -2806,6 +2802,8 @@ console.log('FLOWDECK v2.4.6 — IIFE done, _wsInitData keys:', Object.keys(wind
<!-- Preview Panel — right side panel for file preview -->
<div class="preview-panel" x-show="previewItem" x-transition:enter="preview-enter" x-transition:leave="preview-leave" x-cloak>
<template x-if="previewItem">
<div style="display:flex;flex-direction:column;height:100%;">
<div class="preview-panel-header">
<span x-html="_fileIcon(previewItem.name, previewItem.is_folder, previewItem.content_format)"></span>
<span class="preview-panel-title" x-text="previewItem.name"></span>
@@ -2827,6 +2825,8 @@ console.log('FLOWDECK v2.4.6 — IIFE done, _wsInitData keys:', Object.keys(wind
<button class="btn btn-secondary" @click="startRename(previewItem)">{{ fd_icon("edit",14) }} Rename</button>
<button class="btn btn-danger" @click="deleteWithUndo(previewItem)">{{ fd_icon("trash",14) }} Delete</button>
</div>
</div>
</template>
</div>
</div><!-- /ws-split -->