diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index 7b5359d8b8..480b358272 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -82,7 +82,7 @@ } from '$lib/apis/chats'; import { generateOpenAIChatCompletion } from '$lib/apis/openai'; import { processUrl, processWebSearch } from '$lib/apis/retrieval'; - import { getAndUpdateUserLocation, getUserSettings } from '$lib/apis/users'; + import { getAndUpdateUserLocation, getUserInfoById, getUserSettings } from '$lib/apis/users'; import { generateQueries, chatAction, @@ -372,6 +372,25 @@ // Read-only when viewing someone else's chat (e.g. via shared folder access) $: readOnly = chat != null && chat.user_id !== $user?.id; + let chatOwner = null; + + const resolveChatOwner = async (userId) => { + if (chatOwner?.id === userId) { + return; + } + + chatOwner = await getUserInfoById(localStorage.token, userId).catch((error) => { + console.error(error); + return null; + }); + }; + + $: if (readOnly && chat?.user_id) { + void resolveChatOwner(chat.user_id); + } else { + chatOwner = null; + } + let chatTasks = []; let history = { @@ -4067,6 +4086,7 @@ { const model = $models.find((m) => m.id === e); diff --git a/src/lib/components/chat/ChatControls.svelte b/src/lib/components/chat/ChatControls.svelte index 1c3ba48eda..a77aaa9578 100644 --- a/src/lib/components/chat/ChatControls.svelte +++ b/src/lib/components/chat/ChatControls.svelte @@ -42,6 +42,7 @@ export let models = []; export let chatId = null; + export let chatUser = null; export let chatFiles = []; export let params = {}; @@ -385,6 +386,7 @@ {#if activeTab === 'overview'} { const node = e.node; showMessage(node.data.message, true); @@ -529,6 +531,7 @@ {#if activeTab === 'overview'} { const node = e.node; if (node?.data?.message?.favorite) { diff --git a/src/lib/components/chat/Overview.svelte b/src/lib/components/chat/Overview.svelte index 94cddcbec2..93c66505da 100644 --- a/src/lib/components/chat/Overview.svelte +++ b/src/lib/components/chat/Overview.svelte @@ -5,8 +5,9 @@ export let history; export let onNodeClick; + export let chatUser = null; - + diff --git a/src/lib/components/chat/Overview/View.svelte b/src/lib/components/chat/Overview/View.svelte index 35e463d691..ddfb884056 100644 --- a/src/lib/components/chat/Overview/View.svelte +++ b/src/lib/components/chat/Overview/View.svelte @@ -23,6 +23,7 @@ export let history; export let onNodeClick; + export let chatUser = null; type LayoutDirection = 'vertical' | 'horizontal'; type PositionMapEntry = { @@ -99,7 +100,7 @@ id: pos.id, type: 'custom', data: { - user: $user, + user: chatUser ?? $user, message: history.messages[id], model: $models.find((model) => model.id === history.messages[id].model) },