diff options
author | Maksim Sukharev <antreesy.web@gmail.com> | 2023-10-24 22:39:24 +0200 |
---|---|---|
committer | Maksim Sukharev <antreesy.web@gmail.com> | 2023-10-24 22:39:51 +0200 |
commit | 97d3098ad292c1c01bb6e11661e3ebf7aa2f28be (patch) | |
tree | bb978a0025b636e7f56decfaf49b979f6f275f60 | |
parent | 0693c48d527bac99273d68c743d72100fcb8c382 (diff) |
fix(MessagesList): fix TypeError - read properties of undefined - for chat scroller ref
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
-rw-r--r-- | src/components/MessagesList/MessagesList.vue | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/components/MessagesList/MessagesList.vue b/src/components/MessagesList/MessagesList.vue index b708b3693..00299e884 100644 --- a/src/components/MessagesList/MessagesList.vue +++ b/src/components/MessagesList/MessagesList.vue @@ -751,6 +751,10 @@ export default { * or to the bottom of the list bottom. */ async handleScroll() { + if (!this.$refs.scroller) { + return + } + if (!this.$store.getters.getFirstKnownMessageId(this.token)) { // This can happen if the browser is fast enough to close the sidebar // when switching from a one-to-one to a group conversation. @@ -817,6 +821,10 @@ export default { * @return {object} DOM element for the last visible message */ findFirstVisibleMessage(messageEl) { + if (!this.$refs.scroller) { + return + } + let el = messageEl // When the current message is not visible (reaction or expired) @@ -917,7 +925,8 @@ export default { return } - if (lastReadMessageElement && (lastReadMessageElement.offsetTop - this.$refs.scroller.scrollTop > 0)) { + if (lastReadMessageElement && this.$refs.scroller + && (lastReadMessageElement.offsetTop - this.$refs.scroller.scrollTop > 0)) { // still visible, hasn't disappeared at the top yet return } @@ -1029,7 +1038,7 @@ export default { block: 'center', inline: 'nearest', }) - if (!smooth) { + if (this.$refs.scroller && !smooth) { // scroll the viewport slightly further to make sure the element is about 1/3 from the top this.$refs.scroller.scrollTop += this.$refs.scroller.offsetHeight / 4 } |