Skip to content

Commit b8c6795

Browse files
committed
feat: Implement basic Processing... UI
1 parent 20174b1 commit b8c6795

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessage.svelte

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import { Tooltip, TooltipContent, TooltipTrigger } from '$lib/components/ui/tooltip';
77
import { copyToClipboard } from '$lib/utils/copy';
88
import { parseThinkingContent } from '$lib/utils/thinking';
9+
import { isLoading } from '$lib/stores/chat.svelte';
10+
import { fade } from 'svelte/transition';
911
1012
interface Props {
1113
class?: string;
@@ -179,6 +181,14 @@
179181
{/if}
180182

181183
{#snippet messageActions(config?: { role: ChatRole })}
184+
{#if config?.role === 'assistant' && !message.content && isLoading()}
185+
<div class="mx-auto w-full max-w-[48rem] mb-16" in:fade>
186+
<span class="processing-text">
187+
Processing
188+
</span>
189+
</div>
190+
{/if}
191+
182192
<div
183193
class="pointer-events-none inset-0 flex items-center gap-1 opacity-0 transition-all duration-150 group-hover:pointer-events-auto group-hover:opacity-100"
184194
>
@@ -238,3 +248,21 @@
238248
: ''}
239249
</div>
240250
{/snippet}
251+
252+
<style>
253+
.processing-text {
254+
background: linear-gradient(90deg, var(--muted-foreground), var(--foreground), var(--muted-foreground));
255+
background-size: 200% 100%;
256+
background-clip: text;
257+
-webkit-background-clip: text;
258+
-webkit-text-fill-color: transparent;
259+
animation: shine 1s linear infinite;
260+
font-weight: 500;
261+
}
262+
263+
@keyframes shine {
264+
to {
265+
background-position: -200% 0;
266+
}
267+
}
268+
</style>

tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessages.svelte

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
<script lang="ts">
2-
import { updateMessage, regenerateMessage } from '$lib/stores/chat.svelte';
2+
import {
3+
updateMessage,
4+
regenerateMessage
5+
} from '$lib/stores/chat.svelte';
36
import { ChatMessage } from '$lib/components/app';
47
58
interface Props {
@@ -19,7 +22,7 @@
1922
await updateMessage(msg.id, newContent);
2023
}}
2124
onRegenerate={async (msg) => {
22-
await regenerateMessage(msg.id);
25+
await regenerateMessage(msg.id);
2326
}}
2427
/>
2528
{/each}

0 commit comments

Comments
 (0)