fix(sidebar): refresh folder tree after creating files#2022
Conversation
Greptile SummaryThis PR fixes the sidebar folder tree not updating after creating files, replacing the old Confidence Score: 5/5Safe to merge — the logic is correct for both root-level and nested folder elements across the legacy collapsableList and new FileTree code paths. No P0 or P1 findings. All three fallbacks in No files require special attention.
|
| Filename | Overview |
|---|---|
| src/components/fileTree/index.js | Adds $content._fileTree tracking, a refresh shortcut accessor on folder DOM elements, and extracts destroyChildTrees — all prerequisite plumbing for the openFolder helpers; stale _fileTree on destroyed child elements is a minor non-issue since those nodes are always removed synchronously. |
| src/lib/openFolder.js | Replaces ad-hoc DOM insertion with appendEntryToOpenFolder (preferring FileTree.appendEntry) and refreshOpenFolder (for nested paths); getLoadedFileTree correctly handles both legacy collapsableList and new FileTree elements through three fallback lookups. |
Sequence Diagram
sequenceDiagram
participant User
participant execOperation
participant appendEntryToOpenFolder
participant refreshOpenFolder
participant getLoadedFileTree
participant FileTree
User->>execOperation: context menu "new file/folder"
execOperation->>execOperation: createFileStructure(url, name)
alt isNestedPath (e.g. "a/b/c.txt")
execOperation->>refreshOpenFolder: refreshOpenFolder(url)
refreshOpenFolder->>getLoadedFileTree: getLoadedFileTree($el)
getLoadedFileTree-->>refreshOpenFolder: FileTree instance (or null)
refreshOpenFolder->>FileTree: fileTree.refresh()
FileTree-->>refreshOpenFolder: reloaded entries
execOperation->>execOperation: FileList.refresh()
else single-level name
execOperation->>appendEntryToOpenFolder: appendEntryToOpenFolder(url, newUri, type)
appendEntryToOpenFolder->>getLoadedFileTree: getLoadedFileTree($el)
getLoadedFileTree-->>appendEntryToOpenFolder: FileTree (via $ul._fileTree / .fileTree)
alt FileTree found
appendEntryToOpenFolder->>FileTree: fileTree.appendEntry(name, uri, isDir)
FileTree-->>appendEntryToOpenFolder: entry inserted + re-rendered
else no FileTree (legacy or collapsing)
appendEntryToOpenFolder->>appendEntryToOpenFolder: appendList/appendTile fallback
end
execOperation->>execOperation: FileList.append(url, uri)
end
execOperation->>User: toast success
Reviews (2): Last reviewed commit: "fix" | Re-trigger Greptile
No description provided.