perf: dedupe folder refetches and chat-list sweeps on sidebar folder selection (#27540)
This commit is contained in:
@@ -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;
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user