Compare commits

..

No commits in common. "cf80d48126a3d91c7359b1fb6eb59ddaca769dde" and "c961e7cb11f0edd4f7a6a15048c7cadf916cf454" have entirely different histories.

View File

@ -369,17 +369,9 @@ class AppsManager {
// Force config tab for install/manage buttons // Force config tab for install/manage buttons
targetTab = 'config'; targetTab = 'config';
} else { } else {
// Preserve the existing main tab, defaulting to config for direct // Preserve existing tab or default to config for direct navigation
// navigation. The app is path-based now (/app/<name>/<tab>), so the tab const currentUrl = new URL(window.location.href);
// lives in the PATH — the old searchParams.get('tab') read the dead ?tab= targetTab = currentUrl.searchParams.get('tab') || 'config';
// query, was always null, and snapped every non-config tab back to config
// (loadTabContent calls showAppDetail on every switch). Read it off the
// path, and only honour it when we're already on THIS app — a cross-app
// switch or cold nav starts at config.
const parts = window.appPartsFromPath
? window.appPartsFromPath(window.location.pathname)
: { app: '', tab: 'config' };
targetTab = (parts.app === appName && parts.tab) ? parts.tab : 'config';
} }
// Preserve the config sub-category (/app/<name>/config/<sub>) when the URL // Preserve the config sub-category (/app/<name>/config/<sub>) when the URL