fix: prune recent files against server nodes on refresh #146

This commit is contained in:
Linus Rath
2026-04-08 13:22:51 +02:00
parent 63593e2146
commit b29e71124d
+11 -1
View File
@@ -234,7 +234,17 @@ export const useFileStore = create<FileState>((set, get) => ({
if (a.isDirectory !== b.isDirectory) return a.isDirectory ? -1 : 1;
return a.name.localeCompare(b.name);
});
set({ resources, isLoading: false });
// Prune recent files whose backing node no longer exists on the server
const { recentFiles } = get();
const existingIds = new Set(allNodes.map(n => n.id));
const prunedRecent = recentFiles.filter(r => existingIds.has(r.id));
if (prunedRecent.length !== recentFiles.length) {
try { localStorage.setItem('files-recent-files', JSON.stringify(prunedRecent)); } catch { /* ignore */ }
set({ resources, recentFiles: prunedRecent, isLoading: false });
} else {
set({ resources, isLoading: false });
}
} catch (error) {
set({
error: error instanceof Error ? error.message : 'Failed to list directory',