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
targetTab = 'config';
} else {
// Preserve the existing main tab, defaulting to config for direct
// navigation. The app is path-based now (/app/<name>/<tab>), so the tab
// lives in the PATH — the old searchParams.get('tab') read the dead ?tab=
// 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 existing tab or default to config for direct navigation
const currentUrl = new URL(window.location.href);
targetTab = currentUrl.searchParams.get('tab') || 'config';
}
// Preserve the config sub-category (/app/<name>/config/<sub>) when the URL