Fix view-tab reactivity using direct onclick binding

- Change view-tabs from delegateEvent to direct onclick like hst-frontend
- Remove hardcoded 'active' class from grid tab in HTML
- Update active class immediately on click before state update
- Update proxy target to tzrtech.org

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
ARCHITECT
2026-01-14 00:16:38 +00:00
parent 131e198851
commit 6d6e4e1bdf
3 changed files with 18 additions and 12 deletions

View File

@@ -63,7 +63,7 @@
<span id="sel-count"></span>
</div>
<div class="view-tabs">
<button class="view-tab active" data-view="grid">Grid</button>
<button class="view-tab" data-view="grid">Grid</button>
<button class="view-tab" data-view="tree">Tree</button>
<button class="view-tab" data-view="graph">Graph</button>
</div>

View File

@@ -212,16 +212,21 @@ class App {
await this.init();
});
// View tabs
delegateEvent<MouseEvent>(document.body, '.view-tab', 'click', (_, target) => {
const view = target.dataset.view as ViewType;
if (!view) return;
// View tabs - direct binding like hst-frontend
$$('.view-tab').forEach(tab => {
tab.onclick = () => {
const view = tab.dataset.view as ViewType;
if (!view) return;
store.setState({ view });
this.router.updateHash();
this.detailPanel?.close();
this.updateViewTabs();
this.renderView();
// Update active class immediately
$$('.view-tab').forEach(t => t.classList.remove('active'));
tab.classList.add('active');
store.setState({ view });
this.router.updateHash();
this.detailPanel?.close();
this.renderView();
};
});
// Search

View File

@@ -35,8 +35,9 @@ export default defineConfig({
port: 3000,
proxy: {
'/api': {
target: 'http://72.62.1.113:3000',
changeOrigin: true
target: 'https://tzrtech.org',
changeOrigin: true,
secure: true
}
}
}