This commit is contained in:
Timothy J. Baek 2024-10-10 23:43:08 -07:00
parent acb5dcf30a
commit 9658c2559a
4 changed files with 37 additions and 12 deletions

View File

@ -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 () => {

View File

@ -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}
</div>
@ -616,6 +635,10 @@
showDeleteConfirm = true;
}
}}
on:tag={(e) => {
const { type, name } = e.detail;
tagEventHandler(type, name, chat.id);
}}
/>
{/each}

View File

@ -259,6 +259,9 @@
on:change={async () => {
await pinnedChats.set(await getPinnedChatList(localStorage.token));
}}
on:tag={(e) => {
dispatch('tag', e.detail);
}}
>
<button
aria-label="Chat Menu"

View File

@ -141,6 +141,13 @@
<div class="flex p-1">
<Tags
{chatId}
on:delete={(e) => {
dispatch('tag', {
type: 'delete',
name: e.detail.name
});
show = false;
}}
on:close={() => {
show = false;
onClose();