diff --git a/src/renderer/components/Sidebar/Sidebar.tsx b/src/renderer/components/Sidebar/Sidebar.tsx index a701146..f376fc6 100644 --- a/src/renderer/components/Sidebar/Sidebar.tsx +++ b/src/renderer/components/Sidebar/Sidebar.tsx @@ -18,6 +18,9 @@ export function Sidebar() { const setTree = useSidebarStore(s => s.setTree) const isVisible = useSidebarStore(s => s.isVisible) + // 计算当前活动标签的文件路径(用于文件树高亮) + const activeFilePath = tabs.find(t => t.id === activeTabId)?.filePath ?? null + const [isResizing, setIsResizing] = useState(false) const sidebarRef = useRef(null) @@ -139,6 +142,7 @@ export function Sidebar() { expandedDirs={expandedDirs} toggleDir={toggleDir} activeTabId={activeTabId} + activeFilePath={activeFilePath} onFileClick={handleFileClick} /> @@ -155,12 +159,13 @@ export function Sidebar() { } // 文件树递归组件 -function FileTree({ nodes, depth, expandedDirs, toggleDir, activeTabId, onFileClick }: { +function FileTree({ nodes, depth, expandedDirs, toggleDir, activeTabId, activeFilePath, onFileClick }: { nodes: FileNode[] depth: number expandedDirs: Set toggleDir: (path: string) => void activeTabId: string | null + activeFilePath: string | null onFileClick: (path: string) => void }) { return ( @@ -168,7 +173,7 @@ function FileTree({ nodes, depth, expandedDirs, toggleDir, activeTabId, onFileCl {nodes.map(node => (
{ if (node.type === 'dir') { @@ -211,6 +216,7 @@ function FileTree({ nodes, depth, expandedDirs, toggleDir, activeTabId, onFileCl expandedDirs={expandedDirs} toggleDir={toggleDir} activeTabId={activeTabId} + activeFilePath={activeFilePath} onFileClick={onFileClick} /> )}