From ce94c41d81e1c14e74a4ac2e151e1aaebb400c23 Mon Sep 17 00:00:00 2001 From: G30 <50341825+silentoplayz@users.noreply.github.com> Date: Mon, 5 Oct 2026 03:20:02 -0400 Subject: [PATCH] fix(chat): support unarchive toggle and dynamic toast in chat header menu (#31473) (#31857) - Pass `archived` state from active chat model to Navbar context menu - Render 'Unarchive' instead of 'Archive' when `chat?.archived` is true in Navbar/Menu.svelte - Dynamically display 'Chat unarchived.' toast upon unarchiving in archiveChatHandler - Closes #31473 Co-authored-by: PINYO PATTANAWASANPORN --- src/lib/components/chat/Chat.svelte | 5 +++-- src/lib/components/layout/Navbar/Menu.svelte | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index adfe074fd5..1c5108d0b3 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -4209,12 +4209,12 @@ const archiveChatHandler = async (id: string) => { try { - await archiveChatById(localStorage.token, id); + const res = await archiveChatById(localStorage.token, id); initNewChat(); await goto('/'); await refreshChatList(localStorage.token, { refreshPinned: true }); await refreshFolderChatLists(); - toast.success($i18n.t('Chat archived.')); + toast.success(res?.archived ? $i18n.t('Chat archived.') : $i18n.t('Chat unarchived.')); } catch (error) { console.error('Error archiving chat:', error); toast.error($i18n.t('Failed to archive chat.')); @@ -4422,6 +4422,7 @@ {readOnly} chat={{ id: $chatId, + archived: chat?.archived ?? false, chat: { title: $chatTitle, models: selectedModels, diff --git a/src/lib/components/layout/Navbar/Menu.svelte b/src/lib/components/layout/Navbar/Menu.svelte index 5034155126..cd3b1f5f37 100644 --- a/src/lib/components/layout/Navbar/Menu.svelte +++ b/src/lib/components/layout/Navbar/Menu.svelte @@ -484,7 +484,9 @@ }} > -
{$i18n.t('Archive')}
+
+ {chat?.archived ? $i18n.t('Unarchive') : $i18n.t('Archive')} +
{#if $user?.role === 'admin' || ($user?.permissions?.chat?.delete ?? true)}