mirror of
https://github.com/t8y2/dbx.git
synced 2026-10-31 00:22:30 +00:00
feat(settings): add sidebar activation preference
This commit is contained in:
@@ -1,13 +1,26 @@
|
||||
import type { TreeNodeType } from "@/types/database";
|
||||
|
||||
export type TreeNodeRowAction = "open-data" | "toggle" | "none";
|
||||
export type TreeNodeRowDoubleClickAction = "open-object-browser" | "none";
|
||||
export type TreeNodeRowDoubleClickAction =
|
||||
| "open-data"
|
||||
| "open-object-browser"
|
||||
| "open-source"
|
||||
| "open-saved-sql"
|
||||
| "toggle"
|
||||
| "none";
|
||||
export type SidebarActivation = "single" | "double";
|
||||
|
||||
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"]);
|
||||
const sourceNodeTypes = new Set<TreeNodeType>(["procedure", "function"]);
|
||||
|
||||
export function treeNodeRowAction(type: TreeNodeType, canExpand: boolean): TreeNodeRowAction {
|
||||
export function treeNodeRowAction(
|
||||
type: TreeNodeType,
|
||||
canExpand: boolean,
|
||||
activation: SidebarActivation = "single",
|
||||
): TreeNodeRowAction {
|
||||
if (activation === "double") return "none";
|
||||
if (dataNodeTypes.has(type)) return "open-data";
|
||||
if (toggleLeafNodeTypes.has(type)) return "toggle";
|
||||
if (canExpand) return "toggle";
|
||||
@@ -17,7 +30,16 @@ export function treeNodeRowAction(type: TreeNodeType, canExpand: boolean): TreeN
|
||||
export function treeNodeRowDoubleClickAction(
|
||||
type: TreeNodeType,
|
||||
canOpenObjectBrowser: boolean,
|
||||
activation: SidebarActivation = "single",
|
||||
canExpand = false,
|
||||
): TreeNodeRowDoubleClickAction {
|
||||
if (activation === "double") {
|
||||
if (dataNodeTypes.has(type)) return "open-data";
|
||||
if (sourceNodeTypes.has(type)) return "open-source";
|
||||
if (type === "saved-sql-file") return "open-saved-sql";
|
||||
if (toggleLeafNodeTypes.has(type)) return "toggle";
|
||||
if (canExpand) return "toggle";
|
||||
}
|
||||
if (canOpenObjectBrowser && objectBrowserNodeTypes.has(type)) return "open-object-browser";
|
||||
return "none";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user