perf: dedupe folder refetches and chat-list sweeps on sidebar folder selection (#27540)

This commit is contained in:
G30
2026-07-26 17:27:33 -04:00
committed by GitHub
parent 4d576c1aa2
commit 29499cb4ba
2 changed files with 16 additions and 10 deletions
@@ -4,7 +4,7 @@
const dispatch = createEventDispatcher();
import RecursiveFolder from './RecursiveFolder.svelte';
import { chatId, selectedFolder } from '$lib/stores';
import { chatId } from '$lib/stores';
export let folderRegistry = {};
@@ -49,7 +49,7 @@
}
};
$: if (folders || ($selectedFolder && $chatId)) {
$: if (folders || $chatId) {
loadFolderItems();
}
</script>
@@ -18,17 +18,23 @@
return;
}
const folder = await getFolderById(localStorage.token, folderId).catch((error) => {
toast.error(`${error}`);
return null;
});
// The sidebar click handler already fetches the folder and sets
// `selectedFolder` before navigating here; refetching would duplicate
// the request and re-trigger the sidebar's folder refresh.
if ($selectedFolder?.id !== folderId) {
const folder = await getFolderById(localStorage.token, folderId).catch((error) => {
toast.error(`${error}`);
return null;
});
if (!folder) {
await goto('/');
return;
if (!folder) {
await goto('/');
return;
}
await selectedFolder.set(folder);
}
await selectedFolder.set(folder);
ready = true;
});