diff --git a/src/renderer/src/components/KeyList.vue b/src/renderer/src/components/KeyList.vue index 7670627..36875f4 100644 --- a/src/renderer/src/components/KeyList.vue +++ b/src/renderer/src/components/KeyList.vue @@ -474,6 +474,27 @@ function isFolderExpanded(path: string): boolean { return expandedFolders.value.has(path) } +interface FlatTreeNode { + node: TreeNode + level: number + expanded: boolean +} + +const flattenedTree = computed(() => { + const result: FlatTreeNode[] = [] + function walk(nodes: TreeNode[], level: number) { + for (const node of nodes) { + const expanded = isFolderExpanded(node.fullPath) + result.push({ node, level, expanded }) + if (!node.isLeaf && expanded) { + walk(node.children, level + 1) + } + } + } + walk(treeData.value, 0) + return result +}) + function isKeySelected(keyName: string): boolean { return keyStore.selectedKey === keyName && !multiSelect.value } @@ -674,30 +695,32 @@ onUnmounted(() => {
-