local-workspace: fix preview panel null errors, wrap inner content in x-if
- 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:
@@ -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 -->
|
||||
|
||||
|
||||
Reference in New Issue
Block a user