1302 Scroll to own sent message (#1610)

Signed-off-by: Denis Bunakalya <denis.bunakalya@xored.com>
This commit is contained in:
Denis Bunakalya 2022-04-29 15:29:36 +03:00 committed by GitHub
parent c4267cc7ae
commit a72a7238f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 2 deletions

View File

@ -28,6 +28,7 @@
export let pinnedIds: Ref<ChunterMessage>[]
export let savedMessagesIds: Ref<ChunterMessage>[]
export let savedAttachmentsIds: Ref<Attachment>[]
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<Message>[] | undefined

View File

@ -28,6 +28,7 @@
export let space: Ref<Space>
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<Message>) {
@ -115,6 +117,7 @@
<PinnedMessages {space} {pinnedIds} />
<Channel
bind:isScrollForced
{space}
on:openThread={(e) => {
openThread(e.detail)

View File

@ -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[] = []