feat(sidebar): 添加一键折叠所有节点功能
- 在侧边栏中添加了“折叠所有”按钮,用户可以一键折叠所有展开的节点。 - 更新了相关的国际化文本,支持多语言。 - 增加了 collapseAllGroups 和 collapseExpandedTreeNodes 函数以支持新功能。
This commit is contained in:
19 files changed
+191
-10
No files matched your search
@@ -309,6 +309,13 @@ export function toggleGroupCollapsed(layout: SidebarLayout, groupId: string): Si
|
||||
};
|
||||
}
|
||||
|
||||
export function collapseAllGroups(layout: SidebarLayout): SidebarLayout {
|
||||
return {
|
||||
...layout,
|
||||
groups: layout.groups.map((group) => (group.collapsed ? group : { ...group, collapsed: true })),
|
||||
};
|
||||
}
|
||||
|
||||
export function removeConnectionFromSidebarLayout(layout: SidebarLayout, connectionId: string): SidebarLayout {
|
||||
return { ...layout, order: removeConnectionFromEntries(layout.order, connectionId) };
|
||||
}
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
import type { TreeNode } from "@/types/database";
|
||||
|
||||
export function collapseExpandedTreeNodes(nodes: TreeNode[]): number {
|
||||
let collapsedCount = 0;
|
||||
|
||||
for (const node of nodes) {
|
||||
if (node.isExpanded) {
|
||||
node.isExpanded = false;
|
||||
collapsedCount += 1;
|
||||
}
|
||||
if (node.children?.length) {
|
||||
collapsedCount += collapseExpandedTreeNodes(node.children);
|
||||
}
|
||||
}
|
||||
|
||||
return collapsedCount;
|
||||
}
|
||||
@@ -33,6 +33,11 @@ export function treeNodeRowAction(type: TreeNodeType, canExpand: boolean, activa
|
||||
return "none";
|
||||
}
|
||||
|
||||
export function shouldRunTreeNodeRowAction(action: TreeNodeRowAction, clickDetail: number): boolean {
|
||||
if (action === "none") return false;
|
||||
return action === "toggle" || clickDetail <= 1;
|
||||
}
|
||||
|
||||
export function treeNodeRowDoubleClickAction(type: TreeNodeType, canOpenObjectBrowser: boolean, activation: SidebarActivation = "single", canExpand = false): TreeNodeRowDoubleClickAction {
|
||||
if (activation === "double") {
|
||||
if (dataNodeTypes.has(type)) return "open-data";
|
||||
|
||||
Reference in new issue
Block a user