From 9fad17558bf3767f7fc10ab27fb9ce2ccc0d5f6d Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sat, 10 Oct 2026 20:49:28 +0400 Subject: [PATCH] refac --- src/lib/components/layout/Sidebar.svelte | 9 ++++----- src/lib/stores/chatList.ts | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/lib/components/layout/Sidebar.svelte b/src/lib/components/layout/Sidebar.svelte index e658dfa1d1..d3058fe5b5 100644 --- a/src/lib/components/layout/Sidebar.svelte +++ b/src/lib/components/layout/Sidebar.svelte @@ -28,6 +28,7 @@ sidebarWidth } from '$lib/stores'; import { + allLoaded, loadNextChatListPage, refreshChatList, registerFolderRefreshHandler, @@ -116,7 +117,8 @@ // Pagination variables let chatListLoading = false; let chatListReady = false; - let allChatsLoaded = false; + // Read pagination state when the shared list publishes its rows. + $: allChatsLoaded = $chats !== null && allLoaded; let showCreateFolderModal = false; @@ -379,7 +381,6 @@ const initChatList = async () => { // Reset pagination variables console.log('initChatList'); - allChatsLoaded = false; chatListReady = false; await Promise.all([ @@ -422,7 +423,6 @@ if (result.accepted) { await initFolders(); await Promise.all(Object.values(folderRegistry).map((folder) => folder?.setFolderItems?.())); - allChatsLoaded = result.allLoaded; chatListReady = true; } }; @@ -434,8 +434,7 @@ chatListLoading = true; - const result = await loadNextChatListPage(localStorage.token); - allChatsLoaded = result.allLoaded; + await loadNextChatListPage(localStorage.token); chatListLoading = false; }; diff --git a/src/lib/stores/chatList.ts b/src/lib/stores/chatList.ts index 070909076a..37580fddc6 100644 --- a/src/lib/stores/chatList.ts +++ b/src/lib/stores/chatList.ts @@ -15,7 +15,7 @@ export const pinnedChats = readonly(pinnedChatsStore); let currentPage = 1; let paginationReady = false; let requestGeneration = 0; -let allLoaded = false; +export let allLoaded = false; let loadingNextPage = false; type RefreshChatListOptions = { @@ -47,9 +47,9 @@ export const refreshChatList = async ( return { accepted: false, allLoaded }; } - chatsStore.set(nextChats); currentPage = 1; allLoaded = nextChats.length === 0; + chatsStore.set(nextChats); if (options.clearPinned) { pinnedChatsStore.set([]);