fix: mount the code editor in its own container so duplicated message renders don't collide (#27740)

This commit is contained in:
G30 authored and GitHub committed 2026-08-24 07:34:07 -04:00
1 parent 9cf1a07960
commit 01452ff62f
3 files changed
+9 -3

No files matched your search

@@ -49,7 +49,7 @@
export let showUserProfile = true; export let showUserProfile = true;
export let thread = false; export let thread = false;
export let id = null; export let id: string | null = null;
export let replyToMessage = false; export let replyToMessage = false;
export let disabled = false; export let disabled = false;
@@ -103,6 +103,7 @@
{:else} {:else}
{#each pinnedMessages as message, messageIdx (message.id)} {#each pinnedMessages as message, messageIdx (message.id)}
<Message <Message
id="pinned"
className="rounded-xl px-2" className="rounded-xl px-2"
{message} {message}
{channel} {channel}
+7 -2
View File
@@ -79,6 +79,7 @@
export let lang = ''; export let lang = '';
let codeEditor: EditorView | null = null; let codeEditor: EditorView | null = null;
let codeEditorContainerElement: HTMLDivElement | undefined = undefined;
export const focus = () => { export const focus = () => {
codeEditor?.focus(); codeEditor?.focus();
@@ -249,7 +250,7 @@ print("${endTag}")
doc: _value, doc: _value,
extensions: extensions extensions: extensions
}), }),
parent: document.getElementById(`code-textarea-${id}`) parent: codeEditorContainerElement
}); });
if (isDarkMode) { if (isDarkMode) {
@@ -319,4 +320,8 @@ print("${endTag}")
}); });
</script> </script>
<div id="code-textarea-{id}" class="{className} h-full w-full min-w-0 overflow-hidden" /> <div
bind:this={codeEditorContainerElement}
id="code-textarea-{id}"
class="{className} h-full w-full min-w-0 overflow-hidden"
/>