Skip to content

fix(sidebar): refresh folder tree after creating files#2022

Merged
bajrangCoder merged 2 commits intoAcode-Foundation:mainfrom
bajrangCoder:fix/sidebar-folder-refresh-on-create
Apr 9, 2026
Merged

fix(sidebar): refresh folder tree after creating files#2022
bajrangCoder merged 2 commits intoAcode-Foundation:mainfrom
bajrangCoder:fix/sidebar-folder-refresh-on-create

Conversation

@bajrangCoder
Copy link
Copy Markdown
Member

No description provided.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Apr 9, 2026

Greptile Summary

This PR fixes the sidebar folder tree not updating after creating files, replacing the old $target.unclasped guard + direct DOM insertion with two new helper functions (appendEntryToOpenFolder and refreshOpenFolder) that correctly target the active FileTree instance via a new $content._fileTree reference. It also handles the isNestedPath case by refreshing the specific nested folder's FileTree rather than collapsing/re-expanding the entire root.

Confidence Score: 5/5

Safe 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 getLoadedFileTree resolve correctly for both element types. The unclasped guard in appendEntryToOpenFolder is valid because collapsableList.defineProperties applies to $title as well as $mainWrapper. The isNestedPath change improves on the old openFolder.find(url)?.reload() which only worked for root-level folders and was not awaited. Expanding openFolder.add to handle data-type="root" elements is an improvement, not a regression.

No files require special attention.

Vulnerabilities

No security concerns identified.

Important Files Changed

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
Loading

Reviews (2): Last reviewed commit: "fix" | Re-trigger Greptile

@bajrangCoder

This comment was marked as outdated.

@bajrangCoder bajrangCoder merged commit b6ae63c into Acode-Foundation:main Apr 9, 2026
7 checks passed
@bajrangCoder bajrangCoder deleted the fix/sidebar-folder-refresh-on-create branch April 9, 2026 17:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant