Procházet zdrojové kódy

fix: tag delete issue

Timothy J. Baek před 1 rokem
rodič
revize
84ec58873a

+ 16 - 3
src/lib/components/chat/Tags.svelte

@@ -4,11 +4,14 @@
 		deleteTagById,
 		getAllChatTags,
 		getChatList,
+		getChatListByTagName,
 		getTagsById,
 		updateChatById
 	} from '$lib/apis/chats';
 	import { tags as _tags, chats } from '$lib/stores';
-	import { onMount } from 'svelte';
+	import { createEventDispatcher, onMount } from 'svelte';
+
+	const dispatch = createEventDispatcher();
 
 	import Tags from '../common/Tags.svelte';
 
@@ -40,9 +43,19 @@
 			tags: tags
 		});
 
-		_tags.set(await getAllChatTags(localStorage.token));
+		console.log($_tags);
+
+		await _tags.set(await getAllChatTags(localStorage.token));
+
+		console.log($_tags);
+
+		if ($_tags.map((t) => t.name).includes(tagName)) {
+			await chats.set(await getChatListByTagName(localStorage.token, tagName));
 
-		if (!$_tags.includes(tagName)) {
+			if ($chats.find((chat) => chat.id === chatId)) {
+				dispatch('close');
+			}
+		} else {
 			await chats.set(await getChatList(localStorage.token));
 		}
 	};

+ 7 - 1
src/lib/components/layout/Sidebar/ChatMenu.svelte

@@ -75,7 +75,13 @@
 			<hr class="border-gray-100 dark:border-gray-800 mt-2.5 mb-1.5" />
 
 			<div class="flex p-1">
-				<Tags {chatId} />
+				<Tags
+					{chatId}
+					on:close={() => {
+						show = false;
+						onClose();
+					}}
+				/>
 			</div>
 		</DropdownMenu.Content>
 	</div>