diff options
Diffstat (limited to 'ui')
| -rw-r--r-- | ui/lib/components/Message.svelte | 6 | ||||
| -rw-r--r-- | ui/lib/components/MessageRun.svelte | 4 | ||||
| -rw-r--r-- | ui/lib/store/messages.svelte.js | 6 |
3 files changed, 8 insertions, 8 deletions
diff --git a/ui/lib/components/Message.svelte b/ui/lib/components/Message.svelte index 0c8eeec..fddeecd 100644 --- a/ui/lib/components/Message.svelte +++ b/ui/lib/components/Message.svelte @@ -1,15 +1,11 @@ <script> - import { marked } from 'marked'; - import DOMPurify from 'dompurify'; - import { deleteMessage } from '$lib/apiServer'; function scroll(message) { message.scrollIntoView(); } - let { id, at, body, editable = false } = $props(); - let renderedBody = $derived(DOMPurify.sanitize(marked.parse(body, { breaks: true }))); + let { id, at, body, renderedBody, editable = false } = $props(); let deleteArmed = $state(false); function onDelete(event) { diff --git a/ui/lib/components/MessageRun.svelte b/ui/lib/components/MessageRun.svelte index 83a82a9..39ee155 100644 --- a/ui/lib/components/MessageRun.svelte +++ b/ui/lib/components/MessageRun.svelte @@ -16,7 +16,7 @@ <span class="chip variant-soft sticky top-o left-0"> @{name}: </span> - {#each messages as { id, at, body }} - <Message {id} {at} {body} editable={ownMessage} /> + {#each messages as { id, at, body, renderedBody }} + <Message {id} {at} {body} {renderedBody} editable={ownMessage} /> {/each} </div> diff --git a/ui/lib/store/messages.svelte.js b/ui/lib/store/messages.svelte.js index c0db71b..0ceba54 100644 --- a/ui/lib/store/messages.svelte.js +++ b/ui/lib/store/messages.svelte.js @@ -1,3 +1,6 @@ +import { marked } from 'marked'; +import DOMPurify from 'dompurify'; + const RUN_COALESCE_MAX_INTERVAL = 10 /* min */ * 60 /* sec */ * 1000; /* ms */ export class Messages { @@ -9,7 +12,8 @@ export class Messages { addMessage(channel, id, { at, sender, body }) { let parsedAt = new Date(at); - const message = { id, at: parsedAt, body }; + let renderedBody = DOMPurify.sanitize(marked.parse(body, { breaks: true })); + const message = { id, at: parsedAt, body, renderedBody }; // You might be thinking, can't this be // |
