From 853cf82ed8a2b5fb94a9e0d5729f60c409b4c1e1 Mon Sep 17 00:00:00 2001
From: Timothy Jaeryang Baek
Date: Fri, 18 Jul 2025 16:38:43 +0400
Subject: [PATCH] enh: text fade in effect
---
.../chat/Messages/ContentRenderer.svelte | 2 ++
.../components/chat/Messages/Markdown.svelte | 2 ++
.../Markdown/MarkdownInlineTokens.svelte | 4 +++-
.../MarkdownInlineTokens/TextToken.svelte | 19 ++++++++++++++++++
.../Messages/Markdown/MarkdownTokens.svelte | 20 +++++++++++++++++--
.../chat/Messages/ResponseMessage.svelte | 1 +
6 files changed, 45 insertions(+), 3 deletions(-)
create mode 100644 src/lib/components/chat/Messages/Markdown/MarkdownInlineTokens/TextToken.svelte
diff --git a/src/lib/components/chat/Messages/ContentRenderer.svelte b/src/lib/components/chat/Messages/ContentRenderer.svelte
index 613c1670a0..54cd2a5aab 100644
--- a/src/lib/components/chat/Messages/ContentRenderer.svelte
+++ b/src/lib/components/chat/Messages/ContentRenderer.svelte
@@ -20,6 +20,7 @@
export let history;
export let selectedModels = [];
+ export let done = true;
export let model = null;
export let sources = null;
@@ -133,6 +134,7 @@
{model}
{save}
{preview}
+ {done}
sourceIds={(sources ?? []).reduce((acc, s) => {
let ids = [];
s.document.forEach((document, index) => {
diff --git a/src/lib/components/chat/Messages/Markdown.svelte b/src/lib/components/chat/Messages/Markdown.svelte
index 0130718334..96ec6e06ba 100644
--- a/src/lib/components/chat/Messages/Markdown.svelte
+++ b/src/lib/components/chat/Messages/Markdown.svelte
@@ -10,6 +10,7 @@
export let id = '';
export let content;
+ export let done = true;
export let model = null;
export let save = false;
export let preview = false;
@@ -47,6 +48,7 @@
{};
@@ -66,6 +68,6 @@
onload="this.style.height=(this.contentWindow.document.body.scrollHeight+20)+'px';"
>
{:else if token.type === 'text'}
- {token.raw}
+
{/if}
{/each}
diff --git a/src/lib/components/chat/Messages/Markdown/MarkdownInlineTokens/TextToken.svelte b/src/lib/components/chat/Messages/Markdown/MarkdownInlineTokens/TextToken.svelte
new file mode 100644
index 0000000000..1c5f93c644
--- /dev/null
+++ b/src/lib/components/chat/Messages/Markdown/MarkdownInlineTokens/TextToken.svelte
@@ -0,0 +1,19 @@
+
+
+{#if done}
+ {token?.raw}
+{:else}
+ {#each texts as text}
+
+ {text}
+
+ {/each}
+{/if}
diff --git a/src/lib/components/chat/Messages/Markdown/MarkdownTokens.svelte b/src/lib/components/chat/Messages/Markdown/MarkdownTokens.svelte
index e989d408ed..0d5c898566 100644
--- a/src/lib/components/chat/Messages/Markdown/MarkdownTokens.svelte
+++ b/src/lib/components/chat/Messages/Markdown/MarkdownTokens.svelte
@@ -28,6 +28,8 @@
export let top = true;
export let attributes = {};
+ export let done = true;
+
export let save = false;
export let preview = false;
@@ -85,7 +87,12 @@
{:else if token.type === 'heading'}
-
+
{:else if token.type === 'code'}
{#if token.raw.includes('```')}
@@ -132,6 +139,7 @@
@@ -152,6 +160,7 @@
@@ -295,6 +304,7 @@
@@ -302,7 +312,12 @@
{#if top}
{#if token.tokens}
-
+
{:else}
{unescapeHtml(token.text)}
{/if}
@@ -311,6 +326,7 @@
{:else}
diff --git a/src/lib/components/chat/Messages/ResponseMessage.svelte b/src/lib/components/chat/Messages/ResponseMessage.svelte
index 8d186df909..97e479050c 100644
--- a/src/lib/components/chat/Messages/ResponseMessage.svelte
+++ b/src/lib/components/chat/Messages/ResponseMessage.svelte
@@ -804,6 +804,7 @@
floatingButtons={message?.done && !readOnly}
save={!readOnly}
preview={!readOnly}
+ done={message?.done ?? false}
{model}
onTaskClick={async (e) => {
console.log(e);