logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe git clone https://hacktivis.me/git/pleroma-fe.git
commit: d137d5800a44e598d67d0134ed071167c1c6e98e
parent 2c876f455af53e25cd7f193aab9c12031956ec07
Author: Henry Jameson <me@hjkos.com>
Date:   Sun, 22 May 2022 12:18:20 +0300

stick chat scroll to bottom to help with OSK resizing the viewport

Diffstat:

Msrc/components/chat/chat.js12++++++------
1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/components/chat/chat.js b/src/components/chat/chat.js @@ -43,6 +43,7 @@ const Chat = { }, created () { this.startFetching() + window.addEventListener('resize', this.handleResize) }, mounted () { window.addEventListener('scroll', this.handleScroll) @@ -132,7 +133,7 @@ const Chat = { } }) }, - // Preserves the scroll position when OSK appears or the posting form changes its height. + // "Sticks" scroll to bottom instead of top, helps with OSK resizing the viewport handleResize (opts = {}) { const { expand = false, delayed = false } = opts @@ -144,15 +145,14 @@ const Chat = { } this.$nextTick(() => { - const { scrollHeight = undefined } = this.lastScrollPosition - this.lastScrollPosition = getScrollPosition() - - const diff = this.lastScrollPosition.scrollHeight - scrollHeight - if (diff > 0 || (!this.bottomedOut() && expand)) { + const { offsetHeight = undefined } = getScrollPosition() + const diff = this.lastScrollPosition.offsetHeight - offsetHeight + if (diff !== 0 || (!this.bottomedOut() && expand)) { this.$nextTick(() => { window.scrollTo({ top: window.scrollY + diff }) }) } + this.lastScrollPosition = getScrollPosition() }) }, scrollDown (options = {}) {