summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaksim Sukharev <antreesy.web@gmail.com>2023-10-24 22:39:24 +0200
committerMaksim Sukharev <antreesy.web@gmail.com>2023-10-24 22:39:51 +0200
commit97d3098ad292c1c01bb6e11661e3ebf7aa2f28be (patch)
treebb978a0025b636e7f56decfaf49b979f6f275f60
parent0693c48d527bac99273d68c743d72100fcb8c382 (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.vue13
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
}