From a084938d9cabcf3a93492d2d48032b7d83cef9f1 Mon Sep 17 00:00:00 2001 From: "Timothy J. Baek" Date: Sun, 4 Aug 2024 16:58:08 +0200 Subject: [PATCH] refac: chatlist skip, limit -> page --- backend/apps/webui/routers/chats.py | 10 ++++- src/lib/apis/chats/index.ts | 9 +++- src/lib/components/chat/Chat.svelte | 42 +++++++++---------- src/lib/components/chat/Messages.svelte | 5 ++- src/lib/components/chat/Settings/Chats.svelte | 2 +- src/lib/components/chat/Tags.svelte | 7 ++-- src/lib/components/layout/Sidebar.svelte | 33 +++++++-------- .../components/layout/Sidebar/ChatItem.svelte | 26 +++++------- src/lib/stores/index.ts | 3 +- src/lib/utils/index.ts | 9 ++-- 10 files changed, 72 insertions(+), 74 deletions(-) diff --git a/backend/apps/webui/routers/chats.py b/backend/apps/webui/routers/chats.py index 47c7c4a87..0b327d0a0 100644 --- a/backend/apps/webui/routers/chats.py +++ b/backend/apps/webui/routers/chats.py @@ -43,9 +43,15 @@ router = APIRouter() @router.get("/", response_model=List[ChatTitleIdResponse]) @router.get("/list", response_model=List[ChatTitleIdResponse]) async def get_session_user_chat_list( - user=Depends(get_verified_user), skip: int = 0, limit: int = -1 + user=Depends(get_verified_user), page: Optional[int] = None ): - return Chats.get_chat_title_id_list_by_user_id(user.id, skip=skip, limit=limit) + if page: + limit = 20 + skip = (page - 1) * limit + + return Chats.get_chat_title_id_list_by_user_id(user.id, skip=skip, limit=limit) + else: + return Chats.get_chat_title_id_list_by_user_id(user.id) ############################ diff --git a/src/lib/apis/chats/index.ts b/src/lib/apis/chats/index.ts index 8ff12f4b6..8f4f81aea 100644 --- a/src/lib/apis/chats/index.ts +++ b/src/lib/apis/chats/index.ts @@ -32,10 +32,15 @@ export const createNewChat = async (token: string, chat: object) => { return res; }; -export const getChatList = async (token: string = '', skip: number = 0, limit: number = -1) => { +export const getChatList = async (token: string = '', page: number | null = null) => { let error = null; + const searchParams = new URLSearchParams(); - const res = await fetch(`${WEBUI_API_BASE_URL}/chats/?skip=${skip}&limit=${limit}`, { + if (page !== null) { + searchParams.append('page', `${page}`); + } + + const res = await fetch(`${WEBUI_API_BASE_URL}/chats/?${searchParams.toString()}`, { method: 'GET', headers: { Accept: 'application/json', diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index 49cecb696..c55605f82 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -26,8 +26,7 @@ socket, showCallOverlay, tools, - pageSkip, - pageLimit + currentChatPage } from '$lib/stores'; import { convertMessagesToHistory, @@ -423,9 +422,9 @@ params: params, files: chatFiles }); - await chats.set( - await getChatList(localStorage.token, 0, $pageSkip * $pageLimit || $pageLimit) - ); + + currentChatPage.set(0); + await chats.set(await getChatList(localStorage.token, $currentChatPage)); } } }; @@ -471,9 +470,9 @@ params: params, files: chatFiles }); - await chats.set( - await getChatList(localStorage.token, 0, $pageSkip * $pageLimit || $pageLimit) - ); + + currentChatPage.set(0); + await chats.set(await getChatList(localStorage.token, $currentChatPage)); } } }; @@ -633,9 +632,9 @@ tags: [], timestamp: Date.now() }); - await chats.set( - await getChatList(localStorage.token, 0, $pageSkip * $pageLimit || $pageLimit) - ); + + currentChatPage.set(0); + await chats.set(await getChatList(localStorage.token, $currentChatPage)); await chatId.set(chat.id); } else { await chatId.set('local'); @@ -711,7 +710,8 @@ }) ); - await chats.set(await getChatList(localStorage.token, 0, $pageSkip * $pageLimit || $pageLimit)); + currentChatPage.set(0); + await chats.set(await getChatList(localStorage.token, $currentChatPage)); return _responses; }; @@ -958,9 +958,9 @@ params: params, files: chatFiles }); - await chats.set( - await getChatList(localStorage.token, 0, $pageSkip * $pageLimit || $pageLimit) - ); + + currentChatPage.set(0); + await chats.set(await getChatList(localStorage.token, $currentChatPage)); } } } else { @@ -1227,9 +1227,9 @@ params: params, files: chatFiles }); - await chats.set( - await getChatList(localStorage.token, 0, $pageSkip * $pageLimit || $pageLimit) - ); + + currentChatPage.set(0); + await chats.set(await getChatList(localStorage.token, $currentChatPage)); } } } else { @@ -1394,9 +1394,9 @@ if ($settings.saveChatHistory ?? true) { chat = await updateChatById(localStorage.token, _chatId, { title: _title }); - await chats.set( - await getChatList(localStorage.token, 0, $pageSkip * $pageLimit || $pageLimit) - ); + + currentChatPage.set(0); + await chats.set(await getChatList(localStorage.token, $currentChatPage)); } }; diff --git a/src/lib/components/chat/Messages.svelte b/src/lib/components/chat/Messages.svelte index 8e2946c19..5ba9fefaa 100644 --- a/src/lib/components/chat/Messages.svelte +++ b/src/lib/components/chat/Messages.svelte @@ -1,6 +1,6 @@