refactor: pass snippetManager to PanelResizer and update visualization on resize

This commit is contained in:
2025-01-19 01:43:21 +02:00
parent ce3dc2fd3f
commit ad1d5865ab
3 changed files with 13 additions and 3 deletions

View File

@@ -1,5 +1,6 @@
export class PanelResizer {
constructor() {
constructor(snippetManager) {
this.snippetManager = snippetManager;
this.handleDragStart = this.handleDragStart.bind(this);
this.handleDrag = this.handleDrag.bind(this);
this.handleDragEnd = this.handleDragEnd.bind(this);
@@ -104,6 +105,13 @@ export class PanelResizer {
if (window.editor) {
window.editor.layout();
}
// Update visualization after resize is complete
if (this.snippetManager && typeof this.snippetManager.updateVisualization === 'function') {
// Get the current editor value and update visualization
const editorValue = this.snippetManager.editor.getValue();
this.snippetManager.updateVisualization(editorValue);
}
}
normalizePanelWidths() {

View File

@@ -123,7 +123,7 @@ export class SnippetManager {
} catch (e) {
console.error('Invalid JSON:', e);
}
}, 300);
}, 1000);
});
// Load first snippet if available
@@ -135,6 +135,8 @@ export class SnippetManager {
async updateVisualization(spec) {
try {
const parsedSpec = typeof spec === 'string' ? JSON.parse(spec) : spec;
parsedSpec.width = parsedSpec.width? parsedSpec.width : 'container';
parsedSpec.height = parsedSpec.height? parsedSpec.height : 'container';
await vegaEmbed('#vis', parsedSpec, {
actions: true, // This adds the export/view source buttons
theme: 'light'

View File

@@ -17,7 +17,7 @@ require(['vs/editor/editor.main'], async function () {
formatOnType: true
});
const resizer = new PanelResizer();
const resizer = new PanelResizer(snippetManager);
window.editor = editor;
snippetManager.setEditor(editor);