diff --git a/src/lib/components/channel/Channel.svelte b/src/lib/components/channel/Channel.svelte index 5c6958f759..d0fd7c4ea7 100644 --- a/src/lib/components/channel/Channel.svelte +++ b/src/lib/components/channel/Channel.svelte @@ -148,6 +148,16 @@ ); }; + const closeThread = async () => { + const messageId = threadId; + threadId = null; + + await tick(); + if (document.activeElement === document.body) { + document.querySelector(`#message-${messageId} .reply-in-thread-button`)?.focus(); + } + }; + const pinHandler = ( messageId: string, pinned: boolean, @@ -541,22 +551,14 @@ {#if !largeScreen} {#if threadId !== null} - { - threadId = null; - }} - > +
{ - threadId = null; - }} + onClose={closeThread} />
@@ -576,9 +578,7 @@ {channel} bind:chatInputElement={threadChatInputElement} onPin={pinHandler} - onClose={() => { - threadId = null; - }} + onClose={closeThread} /> diff --git a/src/lib/components/channel/Messages/Message.svelte b/src/lib/components/channel/Messages/Message.svelte index f67f349553..2ee9395eeb 100644 --- a/src/lib/components/channel/Messages/Message.svelte +++ b/src/lib/components/channel/Messages/Message.svelte @@ -122,6 +122,7 @@ }; let edit = false; + let editButtonElement: HTMLButtonElement; let editedContent = null; let showDeleteConfirmDialog = false; $: renderedMessageId = message ? (id ? `${id}-${message.id}` : message.id) : null; @@ -334,7 +335,7 @@