diff options
| author | adamelmore <[email protected]> | 2026-01-26 09:55:37 -0600 |
|---|---|---|
| committer | adamelmore <[email protected]> | 2026-01-26 11:07:52 -0600 |
| commit | b8e8d82323f87080de377b4ac227356bac3e9726 (patch) | |
| tree | 9e767fc98b49918989db7fdd36ec40fd094c6a18 /packages/app/src/components | |
| parent | 801eb5d2cb868d0a14c056439e3898b110f4cc21 (diff) | |
| download | opencode-b8e8d82323f87080de377b4ac227356bac3e9726.tar.gz opencode-b8e8d82323f87080de377b4ac227356bac3e9726.zip | |
chore: cleanup
Diffstat (limited to 'packages/app/src/components')
| -rw-r--r-- | packages/app/src/components/file-tree.tsx | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/packages/app/src/components/file-tree.tsx b/packages/app/src/components/file-tree.tsx index a48f0039f..c27ccbe6d 100644 --- a/packages/app/src/components/file-tree.tsx +++ b/packages/app/src/components/file-tree.tsx @@ -22,6 +22,7 @@ export default function FileTree(props: { nodeClass?: string level?: number allowed?: readonly string[] + modified?: readonly string[] draggable?: boolean tooltip?: boolean onFileClick?: (file: FileNode) => void @@ -50,6 +51,12 @@ export default function FileTree(props: { return { files, dirs } }) + const marks = createMemo(() => { + const modified = props.modified + if (!modified || modified.length === 0) return + return new Set(modified) + }) + createEffect(() => { const current = filter() if (!current) return @@ -89,7 +96,7 @@ export default function FileTree(props: { <Dynamic component={local.as ?? "div"} classList={{ - "w-full flex items-center gap-x-2 rounded-md px-2 py-1 hover:bg-surface-raised-base-hover active:bg-surface-base-active transition-colors cursor-pointer": true, + "w-full min-w-0 flex items-center gap-x-2 rounded-md px-2 py-1 hover:bg-surface-raised-base-hover active:bg-surface-base-active transition-colors cursor-pointer": true, ...(local.classList ?? {}), [local.class ?? ""]: !!local.class, [props.nodeClass ?? ""]: !!props.nodeClass, @@ -125,13 +132,16 @@ export default function FileTree(props: { {local.children} <span classList={{ - "text-12-regular whitespace-nowrap truncate": true, + "flex-1 min-w-0 text-12-regular whitespace-nowrap truncate": true, "text-text-weaker": local.node.ignored, "text-text-weak": !local.node.ignored, }} > {local.node.name} </span> + {local.node.type === "file" && marks()?.has(local.node.path) ? ( + <div class="shrink-0 size-1.5 rounded-full bg-surface-warning-strong" /> + ) : null} </Dynamic> ) } @@ -173,6 +183,7 @@ export default function FileTree(props: { path={node.path} level={level + 1} allowed={props.allowed} + modified={props.modified} draggable={props.draggable} tooltip={props.tooltip} onFileClick={props.onFileClick} |
