fix(sidebar): require double click to open object browser

This commit is contained in:
t8y2
2026-05-11 11:03:18 +08:00
parent d4c2b4af7b
commit f588e03a6b
3 changed files with 39 additions and 9 deletions
+10
View File
@@ -1,9 +1,11 @@
import type { TreeNodeType } from "@/types/database";
export type TreeNodeRowAction = "open-data" | "toggle" | "none";
export type TreeNodeRowDoubleClickAction = "open-object-browser" | "none";
const dataNodeTypes = new Set<TreeNodeType>(["table", "view"]);
const toggleLeafNodeTypes = new Set<TreeNodeType>(["redis-db", "mongo-collection"]);
const objectBrowserNodeTypes = new Set<TreeNodeType>(["database", "schema", "object-browser"]);
export function treeNodeRowAction(type: TreeNodeType, canExpand: boolean): TreeNodeRowAction {
if (dataNodeTypes.has(type)) return "open-data";
@@ -11,3 +13,11 @@ export function treeNodeRowAction(type: TreeNodeType, canExpand: boolean): TreeN
if (canExpand) return "toggle";
return "none";
}
export function treeNodeRowDoubleClickAction(
type: TreeNodeType,
canOpenObjectBrowser: boolean,
): TreeNodeRowDoubleClickAction {
if (canOpenObjectBrowser && objectBrowserNodeTypes.has(type)) return "open-object-browser";
return "none";
}