From 010ed55590534feaff2094145597154d79da3324 Mon Sep 17 00:00:00 2001 From: David Hill Date: Mon, 26 Jan 2026 18:57:26 +0000 Subject: [PATCH] fix(app): dim non-deep filetree guide lines --- packages/app/src/components/file-tree.tsx | 24 ++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/packages/app/src/components/file-tree.tsx b/packages/app/src/components/file-tree.tsx index 5cc02ee09..83a39a16c 100644 --- a/packages/app/src/components/file-tree.tsx +++ b/packages/app/src/components/file-tree.tsx @@ -33,6 +33,19 @@ export default function FileTree(props: { const draggable = () => props.draggable ?? true const tooltip = () => props.tooltip ?? true + const maxOpen = (dir: string, lvl: number): number => { + const expanded = file.tree.state(dir)?.expanded ?? false + if (!expanded) return -1 + + const nodes = file.tree.children(dir) + const child = nodes.reduce((max, node) => { + if (node.type !== "directory") return max + return Math.max(max, maxOpen(node.path, lvl + 1)) + }, -1) + + return Math.max(lvl, child) + } + const filter = createMemo(() => { const allowed = props.allowed if (!allowed) return @@ -152,6 +165,7 @@ export default function FileTree(props: { {(node) => { const expanded = () => file.tree.state(node.path)?.expanded ?? false + const deep = createMemo(() => (node.type === "directory" ? maxOpen(node.path, level) : -1)) const Wrapper = (p: ParentProps) => { if (!tooltip()) return p.children return ( @@ -181,7 +195,15 @@ export default function FileTree(props: { - + +