mirror of
https://github.com/hcengineering/platform.git
synced 2025-04-18 14:23:36 +00:00
1302 Scroll to own sent message (#1610)
Signed-off-by: Denis Bunakalya <denis.bunakalya@xored.com>
This commit is contained in:
parent
c4267cc7ae
commit
a72a7238f6
@ -28,6 +28,7 @@
|
|||||||
export let pinnedIds: Ref<ChunterMessage>[]
|
export let pinnedIds: Ref<ChunterMessage>[]
|
||||||
export let savedMessagesIds: Ref<ChunterMessage>[]
|
export let savedMessagesIds: Ref<ChunterMessage>[]
|
||||||
export let savedAttachmentsIds: Ref<Attachment>[]
|
export let savedAttachmentsIds: Ref<Attachment>[]
|
||||||
|
export let isScrollForced = false
|
||||||
|
|
||||||
let div: HTMLDivElement | undefined
|
let div: HTMLDivElement | undefined
|
||||||
let autoscroll: boolean = false
|
let autoscroll: boolean = false
|
||||||
@ -37,7 +38,10 @@
|
|||||||
})
|
})
|
||||||
|
|
||||||
afterUpdate(() => {
|
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
|
let messages: WithLookup<Message>[] | undefined
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
|
|
||||||
export let space: Ref<Space>
|
export let space: Ref<Space>
|
||||||
let chunterSpace: ChunterSpace
|
let chunterSpace: ChunterSpace
|
||||||
|
let isScrollForced = false
|
||||||
|
|
||||||
const client = getClient()
|
const client = getClient()
|
||||||
const _class = chunter.class.Message
|
const _class = chunter.class.Message
|
||||||
@ -80,6 +81,7 @@
|
|||||||
await createBacklinks(client, space, chunter.class.ChunterSpace, _id, message)
|
await createBacklinks(client, space, chunter.class.ChunterSpace, _id, message)
|
||||||
|
|
||||||
_id = generateId()
|
_id = generateId()
|
||||||
|
isScrollForced = true
|
||||||
}
|
}
|
||||||
|
|
||||||
function openThread (_id: Ref<Message>) {
|
function openThread (_id: Ref<Message>) {
|
||||||
@ -115,6 +117,7 @@
|
|||||||
|
|
||||||
<PinnedMessages {space} {pinnedIds} />
|
<PinnedMessages {space} {pinnedIds} />
|
||||||
<Channel
|
<Channel
|
||||||
|
bind:isScrollForced
|
||||||
{space}
|
{space}
|
||||||
on:openThread={(e) => {
|
on:openThread={(e) => {
|
||||||
openThread(e.detail)
|
openThread(e.detail)
|
||||||
|
@ -39,13 +39,17 @@
|
|||||||
|
|
||||||
let div: HTMLDivElement | undefined
|
let div: HTMLDivElement | undefined
|
||||||
let autoscroll: boolean = false
|
let autoscroll: boolean = false
|
||||||
|
let isScrollForced = false
|
||||||
|
|
||||||
beforeUpdate(() => {
|
beforeUpdate(() => {
|
||||||
autoscroll = div !== undefined && div.offsetHeight + div.scrollTop > div.scrollHeight - 20
|
autoscroll = div !== undefined && div.offsetHeight + div.scrollTop > div.scrollHeight - 20
|
||||||
})
|
})
|
||||||
|
|
||||||
afterUpdate(() => {
|
afterUpdate(() => {
|
||||||
if (div && autoscroll) div.scrollTo(0, div.scrollHeight)
|
if (div && (autoscroll || isScrollForced)) {
|
||||||
|
div.scrollTo(0, div.scrollHeight)
|
||||||
|
isScrollForced = false
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const notificationClient = NotificationClientImpl.getClient()
|
const notificationClient = NotificationClientImpl.getClient()
|
||||||
@ -162,6 +166,7 @@
|
|||||||
await createBacklinks(client, currentSpace, chunter.class.ChunterSpace, commentId, message)
|
await createBacklinks(client, currentSpace, chunter.class.ChunterSpace, commentId, message)
|
||||||
|
|
||||||
commentId = generateId()
|
commentId = generateId()
|
||||||
|
isScrollForced = true
|
||||||
}
|
}
|
||||||
let comments: ThreadMessage[] = []
|
let comments: ThreadMessage[] = []
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user