From a72a7238f671a006d3f24f5a4397f72ced358557 Mon Sep 17 00:00:00 2001 From: Denis Bunakalya Date: Fri, 29 Apr 2022 15:29:36 +0300 Subject: [PATCH] 1302 Scroll to own sent message (#1610) Signed-off-by: Denis Bunakalya --- plugins/chunter-resources/src/components/Channel.svelte | 6 +++++- .../chunter-resources/src/components/ChannelView.svelte | 3 +++ plugins/chunter-resources/src/components/ThreadView.svelte | 7 ++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/plugins/chunter-resources/src/components/Channel.svelte b/plugins/chunter-resources/src/components/Channel.svelte index 64085a98aa..378bef7f09 100644 --- a/plugins/chunter-resources/src/components/Channel.svelte +++ b/plugins/chunter-resources/src/components/Channel.svelte @@ -28,6 +28,7 @@ export let pinnedIds: Ref[] export let savedMessagesIds: Ref[] export let savedAttachmentsIds: Ref[] + export let isScrollForced = false let div: HTMLDivElement | undefined let autoscroll: boolean = false @@ -37,7 +38,10 @@ }) afterUpdate(() => { - if (div && autoscroll) div.scrollTo(0, div.scrollHeight) + if (div && (autoscroll || isScrollForced)) { + div.scrollTo(0, div.scrollHeight) + isScrollForced = false + } }) let messages: WithLookup[] | undefined diff --git a/plugins/chunter-resources/src/components/ChannelView.svelte b/plugins/chunter-resources/src/components/ChannelView.svelte index 6a9fd5e848..9f26e8d9c6 100644 --- a/plugins/chunter-resources/src/components/ChannelView.svelte +++ b/plugins/chunter-resources/src/components/ChannelView.svelte @@ -28,6 +28,7 @@ export let space: Ref let chunterSpace: ChunterSpace + let isScrollForced = false const client = getClient() const _class = chunter.class.Message @@ -80,6 +81,7 @@ await createBacklinks(client, space, chunter.class.ChunterSpace, _id, message) _id = generateId() + isScrollForced = true } function openThread (_id: Ref) { @@ -115,6 +117,7 @@ { openThread(e.detail) diff --git a/plugins/chunter-resources/src/components/ThreadView.svelte b/plugins/chunter-resources/src/components/ThreadView.svelte index 7faad8fb40..7b3ab31a01 100644 --- a/plugins/chunter-resources/src/components/ThreadView.svelte +++ b/plugins/chunter-resources/src/components/ThreadView.svelte @@ -39,13 +39,17 @@ let div: HTMLDivElement | undefined let autoscroll: boolean = false + let isScrollForced = false beforeUpdate(() => { autoscroll = div !== undefined && div.offsetHeight + div.scrollTop > div.scrollHeight - 20 }) afterUpdate(() => { - if (div && autoscroll) div.scrollTo(0, div.scrollHeight) + if (div && (autoscroll || isScrollForced)) { + div.scrollTo(0, div.scrollHeight) + isScrollForced = false + } }) const notificationClient = NotificationClientImpl.getClient() @@ -162,6 +166,7 @@ await createBacklinks(client, currentSpace, chunter.class.ChunterSpace, commentId, message) commentId = generateId() + isScrollForced = true } let comments: ThreadMessage[] = []