Compare commits
2 Commits
c961e7cb11
...
cf80d48126
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cf80d48126 | ||
|
|
85e5920afe |
@ -369,9 +369,17 @@ class AppsManager {
|
|||||||
// Force config tab for install/manage buttons
|
// Force config tab for install/manage buttons
|
||||||
targetTab = 'config';
|
targetTab = 'config';
|
||||||
} else {
|
} else {
|
||||||
// Preserve existing tab or default to config for direct navigation
|
// Preserve the existing main tab, defaulting to config for direct
|
||||||
const currentUrl = new URL(window.location.href);
|
// navigation. The app is path-based now (/app/<name>/<tab>), so the tab
|
||||||
targetTab = currentUrl.searchParams.get('tab') || 'config';
|
// 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 the config sub-category (/app/<name>/config/<sub>) when the URL
|
// Preserve the config sub-category (/app/<name>/config/<sub>) when the URL
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user