refactor: disable pagination moved to a function

reduces repeated code
This commit is contained in:
Aryan Kothari 2024-08-03 19:40:12 -04:00
parent f9e1a933a9
commit cdac0cd1df
3 changed files with 15 additions and 31 deletions

View File

@ -12,7 +12,7 @@
getAllUserChats,
getChatList
} from '$lib/apis/chats';
import { getImportOrigin, convertOpenAIChats } from '$lib/utils';
import { getImportOrigin, convertOpenAIChats, disablePagination } from '$lib/utils';
import { onMount, getContext } from 'svelte';
import { goto } from '$app/navigation';
import { toast } from 'svelte-sonner';
@ -61,12 +61,7 @@
await createNewChat(localStorage.token, chat);
}
}
// loading all chats. disable pagination on scrol.
scrollPaginationEnabled.set(false);
// subsequent queries will calculate page size to rehydrate the ui.
// since every chat is already loaded, the calculation should now load all chats.
pageSkip.set(0);
pageLimit.set(-1);
disablePagination();
await chats.set(await getChatList(localStorage.token));
};
@ -82,12 +77,7 @@
await archiveAllChats(localStorage.token).catch((error) => {
toast.error(error);
});
// loading all chats. disable pagination on scrol.
scrollPaginationEnabled.set(false);
// subsequent queries will calculate page size to rehydrate the ui.
// since every chat is already loaded, the calculation should now load all chats.
pageSkip.set(0);
pageLimit.set(-1);
disablePagination();
await chats.set(await getChatList(localStorage.token));
};
@ -96,12 +86,7 @@
await deleteAllChats(localStorage.token).catch((error) => {
toast.error(error);
});
// loading all chats. disable pagination on scrol.
scrollPaginationEnabled.set(false);
// subsequent queries will calculate page size to rehydrate the ui.
// since every chat is already loaded, the calculation should now load all chats.
pageSkip.set(0);
pageLimit.set(-1);
disablePagination();
await chats.set(await getChatList(localStorage.token));
};

View File

@ -20,6 +20,7 @@
import { onMount, getContext, tick } from 'svelte';
const i18n = getContext('i18n');
import { disablePagination } from '$lib/utils';
import { updateUserSettings } from '$lib/apis/users';
import {
@ -434,12 +435,7 @@
placeholder={$i18n.t('Search')}
bind:value={search}
on:focus={async () => {
// loading all chats. disable pagination on scrol.
scrollPaginationEnabled.set(false);
// subsequent queries will calculate page size to rehydrate the ui.
// since every chat is already loaded, the calculation should now load all chats.
pageSkip.set(0);
pageLimit.set(-1);
disablePagination();
await chats.set(await getChatList(localStorage.token)); // when searching, load all chats
enrichChatsWithContent($chats);
@ -453,9 +449,7 @@
<button
class="px-2.5 text-xs font-medium bg-gray-50 dark:bg-gray-900 dark:hover:bg-gray-800 transition rounded-full"
on:click={async () => {
scrollPaginationEnabled.set(false);
pageSkip.set(0);
pageLimit.set(-1);
disablePagination();
await chats.set(
await getChatList(localStorage.token, $pageSkip * $pageLimit, $pageLimit)
@ -472,9 +466,7 @@
if (chatIds.length === 0) {
// no chats found in the tag
await tags.set(await getAllChatTags(localStorage.token));
scrollPaginationEnabled.set(false);
pageSkip.set(0);
pageLimit.set(-1);
disablePagination();
chatIds = await getChatList(
localStorage.token,
$pageSkip * $pageLimit,

View File

@ -1,6 +1,7 @@
import { v4 as uuidv4 } from 'uuid';
import sha256 from 'js-sha256';
import { WEBUI_BASE_URL } from '$lib/constants';
import { scrollPaginationEnabled, pageLimit, pageSkip } from '$lib/stores';
//////////////////////////
// Helper functions
@ -779,3 +780,9 @@ export const bestMatchingLanguage = (supportedLanguages, preferredLanguages, def
console.log(languages, preferredLanguages, match, defaultLocale);
return match || defaultLocale;
};
export const disablePagination = () => {
scrollPaginationEnabled.set(false);
pageLimit.set(-1);
pageSkip.set(0);
};