fix(sidebar): remove duplicate Dameng schema filter entry

This commit is contained in:
zipg authored and GitHub committed 2026-07-29 14:41:42 +08:00
1 parent d5bc3de621
commit 5cc9d63cad
3 files changed
+78 -16

No files matched your search

@@ -63,7 +63,9 @@ import { useDatabaseOptions } from "@/composables/useDatabaseOptions";
import type { ColumnInfo, DatabaseType, TreeNode, TreeNodeType } from "@/types/database";
import * as api from "@/lib/backend/api";
import { resolveDefaultDatabase } from "@/lib/database/defaultDatabase";
import { connectionUsesVisibleSchemaFilter } from "@/lib/database/visibleDatabases";
import { canTreeNodePin, canTreeNodeShowExpander } from "@/lib/sidebar/sidebarTreeItemLayout";
import { sidebarConnectionVisibleFilterMenu } from "@/lib/sidebar/sidebarVisibleFilterMenu";
import { objectTypesForGroupNode } from "@/lib/table/tableTree";
import { loadSidebarObjectGroup } from "@/lib/sidebar/sidebarObjectGroupRouting";
import { mysqlObjectTemplateForGroup } from "@/lib/sidebar/mysqlObjectTemplates";
@@ -3715,23 +3717,15 @@ function buildConnectionSidebarMenu(context: SidebarMenuFactoryContext): boolean
icon: RefreshCw,
shortcut: shortcutRefresh,
});
if (canConfigureVisibleDatabases.value) {
const visibleFilterMenu = sidebarConnectionVisibleFilterMenu({
canConfigureVisibleDatabases: canConfigureVisibleDatabases.value,
canConfigureVisibleSchemas: canConfigureVisibleSchemas.value,
databaseFilterUsesSchemas: connectionUsesVisibleSchemaFilter(node.connectionId ? connectionStore.getConfig(node.connectionId) : undefined),
});
for (const entry of visibleFilterMenu) {
items.push({
label: t("contextMenu.configureVisibleObjects"),
action: openVisibleDatabasesDialog,
icon: ListFilter,
});
} else if (canConfigureVisibleSchemas.value) {
items.push({
label: t("visibleSchemas.title"),
action: openVisibleSchemasDialog,
icon: ListFilter,
});
}
if (canConfigureVisibleSchemas.value) {
items.push({
label: t("visibleSchemas.title"),
action: openVisibleSchemasDialog,
label: t(entry.label === "schemas" ? "visibleSchemas.title" : "contextMenu.configureVisibleObjects"),
action: entry.target === "visible-schemas" ? openVisibleSchemasDialog : openVisibleDatabasesDialog,
icon: ListFilter,
});
}
@@ -0,0 +1,18 @@
export type SidebarVisibleFilterMenuEntry = {
label: "objects" | "schemas";
target: "visible-databases" | "visible-schemas";
};
export function sidebarConnectionVisibleFilterMenu(options: { canConfigureVisibleDatabases: boolean; canConfigureVisibleSchemas: boolean; databaseFilterUsesSchemas: boolean }): SidebarVisibleFilterMenuEntry[] {
if (!options.canConfigureVisibleDatabases) {
return options.canConfigureVisibleSchemas ? [{ label: "schemas", target: "visible-schemas" }] : [];
}
if (options.databaseFilterUsesSchemas) {
return [{ label: "schemas", target: "visible-databases" }];
}
const entries: SidebarVisibleFilterMenuEntry[] = [{ label: "objects", target: "visible-databases" }];
if (options.canConfigureVisibleSchemas) entries.push({ label: "schemas", target: "visible-schemas" });
return entries;
}