feat(webui): deep-link the Migrate sub-tabs (/overview/migrate/{restore,peers})

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
librelad 2026-06-01 10:28:58 +01:00
parent 0c52abde78
commit ebdae15838

View File

@ -166,10 +166,12 @@ class OverviewManager {
// ---- Migrate tab: Restore (standalone MigratePage) + Peers (PeersPage) ---- // ---- Migrate tab: Restore (standalone MigratePage) + Peers (PeersPage) ----
mountMigrate() { mountMigrate() {
this.switchMigrateSub(this._migrateSub || 'restore'); const seg = window.location.pathname.replace(/^\/overview\/migrate\/?/, '').split('/')[0];
const sub = (seg === 'peers' || seg === 'restore') ? seg : (this._migrateSub || 'restore');
this.switchMigrateSub(sub, { fromUrl: true });
} }
switchMigrateSub(sub) { switchMigrateSub(sub, opts = {}) {
this._migrateSub = sub; this._migrateSub = sub;
const pane = document.getElementById('ov-pane-migrate'); const pane = document.getElementById('ov-pane-migrate');
if (!pane) return; if (!pane) return;
@ -177,6 +179,7 @@ class OverviewManager {
pane.querySelectorAll('.ov-subtabs-content .tab-panel[data-ov-subtab]').forEach((p) => p.classList.toggle('active', p.dataset.ovSubtab === sub)); pane.querySelectorAll('.ov-subtabs-content .tab-panel[data-ov-subtab]').forEach((p) => p.classList.toggle('active', p.dataset.ovSubtab === sub));
if (sub === 'restore') this._mountRestore(); if (sub === 'restore') this._mountRestore();
else if (sub === 'peers') this._mountPeers(); else if (sub === 'peers') this._mountPeers();
if (!opts.fromUrl) this._pushUrl(`/overview/migrate/${sub}`, true);
} }
async _mountRestore() { async _mountRestore() {