diff --git a/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageAssistant.svelte b/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageAssistant.svelte index 2b34b1c20a..31c83172a3 100644 --- a/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageAssistant.svelte +++ b/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageAssistant.svelte @@ -5,6 +5,7 @@ ChatMessageStatistics, ChatMessageThinkingBlock, CopyToClipboardIcon, + LazyMarkdownContent, MarkdownContent, ModelsSelector } from '$lib/components/app'; @@ -240,7 +241,11 @@ {:else if message.role === 'assistant'} {#if config().disableReasoningFormat}
{messageContent || ''}
+ {:else if message.timestamp && !isLoading()} + + {:else} + {/if} {:else} diff --git a/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageSystem.svelte b/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageSystem.svelte index c203822f60..24c24fface 100644 --- a/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageSystem.svelte +++ b/tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageSystem.svelte @@ -2,7 +2,7 @@ import { Check, X } from '@lucide/svelte'; import { Card } from '$lib/components/ui/card'; import { Button } from '$lib/components/ui/button'; - import { MarkdownContent } from '$lib/components/app'; + import { LazyMarkdownContent } from '$lib/components/app'; import { INPUT_CLASSES } from '$lib/constants/input-classes'; import { config } from '$lib/stores/settings.svelte'; import ChatMessageActions from './ChatMessageActions.svelte'; @@ -145,7 +145,7 @@ > {#if currentConfig.renderUserContentAsMarkdown}
- +
{:else} import { Card } from '$lib/components/ui/card'; - import { ChatAttachmentsList, MarkdownContent } from '$lib/components/app'; + import { ChatAttachmentsList, LazyMarkdownContent, MarkdownContent } from '$lib/components/app'; import { config } from '$lib/stores/settings.svelte'; import ChatMessageActions from './ChatMessageActions.svelte'; import ChatMessageEditForm from './ChatMessageEditForm.svelte'; @@ -128,7 +128,7 @@ > {#if currentConfig.renderUserContentAsMarkdown}
- diff --git a/tools/server/webui/src/lib/components/app/index.ts b/tools/server/webui/src/lib/components/app/index.ts index 8631d4fb3b..a97fa83688 100644 --- a/tools/server/webui/src/lib/components/app/index.ts +++ b/tools/server/webui/src/lib/components/app/index.ts @@ -62,6 +62,7 @@ export { default as BadgeModality } from './misc/BadgeModality.svelte'; export { default as ConversationSelection } from './misc/ConversationSelection.svelte'; export { default as CopyToClipboardIcon } from './misc/CopyToClipboardIcon.svelte'; export { default as KeyboardShortcutInfo } from './misc/KeyboardShortcutInfo.svelte'; +export { default as LazyMarkdownContent } from './misc/LazyMarkdownContent.svelte'; export { default as MarkdownContent } from './misc/MarkdownContent.svelte'; export { default as RemoveButton } from './misc/RemoveButton.svelte'; export { default as SearchInput } from './misc/SearchInput.svelte'; diff --git a/tools/server/webui/src/lib/components/app/misc/LazyMarkdownContent.svelte b/tools/server/webui/src/lib/components/app/misc/LazyMarkdownContent.svelte new file mode 100644 index 0000000000..e1064e5039 --- /dev/null +++ b/tools/server/webui/src/lib/components/app/misc/LazyMarkdownContent.svelte @@ -0,0 +1,98 @@ + + +
+ {#if hasBeenVisible} + + {:else} + +
+ {content.slice(0, 500)}{content.length > 500 ? '...' : ''} +
+ {/if} +
+ +