mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-11 20:05:19 +00:00
enh: text fade in effect
This commit is contained in:
parent
dcb1c0a146
commit
853cf82ed8
6 changed files with 45 additions and 3 deletions
|
|
@ -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) => {
|
||||
|
|
|
|||
|
|
@ -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 @@
|
|||
<MarkdownTokens
|
||||
{tokens}
|
||||
{id}
|
||||
{done}
|
||||
{save}
|
||||
{preview}
|
||||
{onTaskClick}
|
||||
|
|
|
|||
|
|
@ -14,8 +14,10 @@
|
|||
import KatexRenderer from './KatexRenderer.svelte';
|
||||
import Source from './Source.svelte';
|
||||
import HtmlToken from './HTMLToken.svelte';
|
||||
import TextToken from './MarkdownInlineTokens/TextToken.svelte';
|
||||
|
||||
export let id: string;
|
||||
export let done = true;
|
||||
export let tokens: Token[];
|
||||
export let onSourceClick: Function = () => {};
|
||||
</script>
|
||||
|
|
@ -66,6 +68,6 @@
|
|||
onload="this.style.height=(this.contentWindow.document.body.scrollHeight+20)+'px';"
|
||||
></iframe>
|
||||
{:else if token.type === 'text'}
|
||||
{token.raw}
|
||||
<TextToken {token} {done} />
|
||||
{/if}
|
||||
{/each}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
<script lang="ts">
|
||||
import { fade } from 'svelte/transition';
|
||||
|
||||
export let token;
|
||||
export let done = true;
|
||||
|
||||
let texts = [];
|
||||
$: texts = (token?.raw ?? '').split(' ');
|
||||
</script>
|
||||
|
||||
{#if done}
|
||||
{token?.raw}
|
||||
{:else}
|
||||
{#each texts as text}
|
||||
<span class="" transition:fade>
|
||||
{text}
|
||||
</span>
|
||||
{/each}
|
||||
{/if}
|
||||
|
|
@ -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 @@
|
|||
<hr class=" border-gray-100 dark:border-gray-850" />
|
||||
{:else if token.type === 'heading'}
|
||||
<svelte:element this={headerComponent(token.depth)} dir="auto">
|
||||
<MarkdownInlineTokens id={`${id}-${tokenIdx}-h`} tokens={token.tokens} {onSourceClick} />
|
||||
<MarkdownInlineTokens
|
||||
id={`${id}-${tokenIdx}-h`}
|
||||
tokens={token.tokens}
|
||||
{done}
|
||||
{onSourceClick}
|
||||
/>
|
||||
</svelte:element>
|
||||
{:else if token.type === 'code'}
|
||||
{#if token.raw.includes('```')}
|
||||
|
|
@ -132,6 +139,7 @@
|
|||
<MarkdownInlineTokens
|
||||
id={`${id}-${tokenIdx}-header-${headerIdx}`}
|
||||
tokens={header.tokens}
|
||||
{done}
|
||||
{onSourceClick}
|
||||
/>
|
||||
</div>
|
||||
|
|
@ -152,6 +160,7 @@
|
|||
<MarkdownInlineTokens
|
||||
id={`${id}-${tokenIdx}-row-${rowIdx}-${cellIdx}`}
|
||||
tokens={cell.tokens}
|
||||
{done}
|
||||
{onSourceClick}
|
||||
/>
|
||||
</div>
|
||||
|
|
@ -295,6 +304,7 @@
|
|||
<MarkdownInlineTokens
|
||||
id={`${id}-${tokenIdx}-p`}
|
||||
tokens={token.tokens ?? []}
|
||||
{done}
|
||||
{onSourceClick}
|
||||
/>
|
||||
</p>
|
||||
|
|
@ -302,7 +312,12 @@
|
|||
{#if top}
|
||||
<p>
|
||||
{#if token.tokens}
|
||||
<MarkdownInlineTokens id={`${id}-${tokenIdx}-t`} tokens={token.tokens} {onSourceClick} />
|
||||
<MarkdownInlineTokens
|
||||
id={`${id}-${tokenIdx}-t`}
|
||||
tokens={token.tokens}
|
||||
{done}
|
||||
{onSourceClick}
|
||||
/>
|
||||
{:else}
|
||||
{unescapeHtml(token.text)}
|
||||
{/if}
|
||||
|
|
@ -311,6 +326,7 @@
|
|||
<MarkdownInlineTokens
|
||||
id={`${id}-${tokenIdx}-p`}
|
||||
tokens={token.tokens ?? []}
|
||||
{done}
|
||||
{onSourceClick}
|
||||
/>
|
||||
{:else}
|
||||
|
|
|
|||
|
|
@ -804,6 +804,7 @@
|
|||
floatingButtons={message?.done && !readOnly}
|
||||
save={!readOnly}
|
||||
preview={!readOnly}
|
||||
done={message?.done ?? false}
|
||||
{model}
|
||||
onTaskClick={async (e) => {
|
||||
console.log(e);
|
||||
|
|
|
|||
Loading…
Reference in a new issue