feat: persist workspace tree expanded state across refreshes
Store expanded directory paths in localStorage keyed by workspace path
(key: 'hermes-webui-expanded:{workspacePath}'). On root load (loadDir('.')),
restore the saved set for the current workspace and pre-fetch dir contents
for any restored expanded directories so the tree renders fully on first
paint without requiring a second click to expand.
Saves on every expand/collapse toggle. Switching workspaces automatically
picks up that workspace's own saved state. Per-workspace (not per-session)
so the same tree state is shared across sessions using the same workspace,
which is the natural expectation.
This commit is contained in:
@@ -919,9 +919,11 @@ function _renderTreeItems(container, entries, depth){
|
||||
e.stopPropagation();
|
||||
if(S._expandedDirs.has(item.path)){
|
||||
S._expandedDirs.delete(item.path);
|
||||
if(typeof _saveExpandedDirs==='function')_saveExpandedDirs();
|
||||
renderFileTree();
|
||||
}else{
|
||||
S._expandedDirs.add(item.path);
|
||||
if(typeof _saveExpandedDirs==='function')_saveExpandedDirs();
|
||||
// Fetch children if not cached
|
||||
if(!S._dirCache[item.path]){
|
||||
try{
|
||||
|
||||
Reference in New Issue
Block a user