fix(connection): preload visible database list on dialog open for accurate summary count

This commit is contained in:
lexmin0412 2026-06-17 14:46:17 +08:00 committed by GitHub
parent 598b5dfef8
commit e6e3cf11f2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 28 additions and 0 deletions

View File

@ -1625,6 +1625,28 @@ function resetVisibleDatabaseDraftState() {
visibleDatabaseShowSystem.value = false;
}
/** Silently load database names so the summary count shows a real total. */
async function preloadVisibleDatabaseNames() {
if (!ensureConnectionHostResolvedFromUrl()) return;
if (visibleDatabaseNames.value.length > 0) return;
isLoadingVisibleDatabases.value = true;
const draftId = buildDraftVisibleDatabasesConnectionId(uuid());
const draftConfig = {
...connectionConfigForSubmit(draftId),
id: draftId,
one_time: true,
};
try {
await api.connectDb(draftConfig);
visibleDatabaseNames.value = await loadVisibleDatabaseNames(draftId, draftConfig);
} catch {
// silently fail
} finally {
await api.disconnectDb(draftId).catch(() => undefined);
isLoadingVisibleDatabases.value = false;
}
}
async function openVisibleDatabasesPicker() {
if (!ensureConnectionHostResolvedFromUrl()) return;
if (!canChooseVisibleDatabases.value || isLoadingVisibleDatabases.value) return;
@ -1806,6 +1828,12 @@ watch(
void loadJdbcDrivers();
void loadAgentDrivers();
}
// Preload database names so the summary count is accurate right away.
void nextTick(() => {
if (canChooseVisibleDatabases.value && hasVisibleDatabaseFilter.value) {
void preloadVisibleDatabaseNames();
}
});
},
{ immediate: true },
);