refac: optimisation

This commit is contained in:
Timothy J. Baek 2024-02-07 17:06:07 -08:00
parent 3fa7718fa1
commit 5beff6d5f7

View file

@ -29,34 +29,26 @@
let showDropdown = false; let showDropdown = false;
onMount(async () => { onMount(async () => {
if (window.innerWidth > 1280) { if (window.innerWidth > 1280) {
show = true; show = true;
} }
await chats.set(await getChatList(localStorage.token));
});
const chatList = await getChatList(localStorage.token); // Helper function to fetch and add chat content to each chat
await enrichChatsWithContent(chatList); const enrichChatsWithContent = async (chatList) => {
}); const enrichedChats = await Promise.all(
chatList.map(async (chat) => {
tags.subscribe(async (value) => { const chatDetails = await getChatById(localStorage.token, chat.id).catch((error) => null); // Handle error or non-existent chat gracefully
if (value.length === 0) { if (chatDetails) {
const chatList = await getChatList(localStorage.token); chat.chat = chatDetails.chat; // Assuming chatDetails.chat contains the chat content
await enrichChatsWithContent(chatList); }
} return chat;
}); })
);
// Helper function to fetch and add chat content to each chat
async function enrichChatsWithContent(chatList) {
const enrichedChats = await Promise.all(chatList.map(async (chat) => {
const chatDetails = await getChatById(localStorage.token, chat.id).catch(error => null); // Handle error or non-existent chat gracefully
if (chatDetails) {
chat.chat = chatDetails.chat; // Assuming chatDetails.chat contains the chat content
}
return chat;
}));
await chats.set(enrichedChats);
}
await chats.set(enrichedChats);
};
const loadChat = async (id) => { const loadChat = async (id) => {
goto(`/c/${id}`); goto(`/c/${id}`);
@ -288,6 +280,9 @@
class="w-full rounded-r py-1.5 pl-2.5 pr-4 text-sm text-gray-300 bg-gray-950 outline-none" class="w-full rounded-r py-1.5 pl-2.5 pr-4 text-sm text-gray-300 bg-gray-950 outline-none"
placeholder="Search" placeholder="Search"
bind:value={search} bind:value={search}
on:focus={() => {
enrichChatsWithContent($chats);
}}
/> />
<!-- <div class="self-center pr-3 py-2 bg-gray-900"> <!-- <div class="self-center pr-3 py-2 bg-gray-900">
@ -343,7 +338,7 @@
let contentMatches = false; let contentMatches = false;
// Access the messages within chat.chat.messages // Access the messages within chat.chat.messages
if (chat.chat && chat.chat.messages && Array.isArray(chat.chat.messages)) { if (chat.chat && chat.chat.messages && Array.isArray(chat.chat.messages)) {
contentMatches = chat.chat.messages.some(message => { contentMatches = chat.chat.messages.some((message) => {
// Check if message.content exists and includes the search query // Check if message.content exists and includes the search query
return message.content && message.content.toLowerCase().includes(query); return message.content && message.content.toLowerCase().includes(query);
}); });
@ -352,7 +347,6 @@
return title.includes(query) || contentMatches; return title.includes(query) || contentMatches;
} }
}) as chat, i} }) as chat, i}
<div class=" w-full pr-2 relative"> <div class=" w-full pr-2 relative">
<button <button
class=" w-full flex justify-between rounded-md px-3 py-2 hover:bg-gray-900 {chat.id === class=" w-full flex justify-between rounded-md px-3 py-2 hover:bg-gray-900 {chat.id ===