From 9658c2559a90701c7c6ac814756364c203bc0f9a Mon Sep 17 00:00:00 2001 From: "Timothy J. Baek" Date: Thu, 10 Oct 2024 23:43:08 -0700 Subject: [PATCH] refac --- src/lib/components/chat/Tags.svelte | 16 ++++--------- src/lib/components/layout/Sidebar.svelte | 23 +++++++++++++++++++ .../components/layout/Sidebar/ChatItem.svelte | 3 +++ .../components/layout/Sidebar/ChatMenu.svelte | 7 ++++++ 4 files changed, 37 insertions(+), 12 deletions(-) diff --git a/src/lib/components/chat/Tags.svelte b/src/lib/components/chat/Tags.svelte index 9ae8c9ff3..7c5a0c0c1 100644 --- a/src/lib/components/chat/Tags.svelte +++ b/src/lib/components/chat/Tags.svelte @@ -36,6 +36,7 @@ await updateChatById(localStorage.token, chatId, { tags: tags }); + _tags.set(await getAllChatTags(localStorage.token)); }; @@ -47,18 +48,9 @@ }); await _tags.set(await getAllChatTags(localStorage.token)); - if ($_tags.map((t) => t.name).includes(tagName)) { - await chats.set(await getChatListByTagName(localStorage.token, tagName)); - - if ($chats.find((chat) => chat.id === chatId)) { - dispatch('close'); - } - } else { - // if the tag we deleted is no longer a valid tag, return to main chat list view - currentChatPage.set(1); - await chats.set(await getChatList(localStorage.token, $currentChatPage)); - await scrollPaginationEnabled.set(true); - } + dispatch('delete', { + name: tagName + }); }; onMount(async () => { diff --git a/src/lib/components/layout/Sidebar.svelte b/src/lib/components/layout/Sidebar.svelte index 31c518754..31bfef205 100644 --- a/src/lib/components/layout/Sidebar.svelte +++ b/src/lib/components/layout/Sidebar.svelte @@ -47,6 +47,7 @@ import Loader from '../common/Loader.svelte'; import FilesOverlay from '../chat/MessageInput/FilesOverlay.svelte'; import AddFilesPlaceholder from '../AddFilesPlaceholder.svelte'; + import { select } from 'd3-selection'; const BREAKPOINT = 768; @@ -167,6 +168,20 @@ } }; + const tagEventHandler = async (type, tagName, chatId) => { + console.log(type, tagName, chatId); + if (type === 'delete') { + if (selectedTagName === tagName) { + if ($tags.map((t) => t.name).includes(tagName)) { + await chats.set(await getChatListByTagName(localStorage.token, tagName)); + } else { + selectedTagName = null; + await initChatList(); + } + } + } + }; + let dragged = false; const onDragOver = (e) => { @@ -561,6 +576,10 @@ showDeleteConfirm = true; } }} + on:tag={(e) => { + const { type, name } = e.detail; + tagEventHandler(type, name, chat.id); + }} /> {/each} @@ -616,6 +635,10 @@ showDeleteConfirm = true; } }} + on:tag={(e) => { + const { type, name } = e.detail; + tagEventHandler(type, name, chat.id); + }} /> {/each} diff --git a/src/lib/components/layout/Sidebar/ChatItem.svelte b/src/lib/components/layout/Sidebar/ChatItem.svelte index 7d06a0814..23a168ed3 100644 --- a/src/lib/components/layout/Sidebar/ChatItem.svelte +++ b/src/lib/components/layout/Sidebar/ChatItem.svelte @@ -259,6 +259,9 @@ on:change={async () => { await pinnedChats.set(await getPinnedChatList(localStorage.token)); }} + on:tag={(e) => { + dispatch('tag', e.detail); + }} >