summaryrefslogtreecommitdiff
path: root/app/javascript/channels/chat_room_channel.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/javascript/channels/chat_room_channel.js')
-rw-r--r--app/javascript/channels/chat_room_channel.js11
1 files changed, 8 insertions, 3 deletions
diff --git a/app/javascript/channels/chat_room_channel.js b/app/javascript/channels/chat_room_channel.js
index af29953..514742f 100644
--- a/app/javascript/channels/chat_room_channel.js
+++ b/app/javascript/channels/chat_room_channel.js
@@ -10,14 +10,19 @@ consumer.subscriptions.create("ChatRoomChannel", {
},
received(data) {
+ // If scrolled to the bottom or near the bottom, then smooth scroll to the bottom.
+ var shouldScroll = false;
+ var chatOutputElement = document.getElementById("chat_output");
+ if ((chatOutputElement.scrollTop + 100) >= (chatOutputElement.scrollHeight - chatOutputElement.offsetHeight)) {
+ shouldScroll = true;
+ }
+
// Called when there's incoming data on the websocket for this channel
var node = document.createElement("P");
node.innerHTML = data.html;
- var chatOutputElement = document.getElementById("chat_output");
chatOutputElement.appendChild(node);
- // If scrolled to the bottom or near the bottom, then smooth scroll to the bottom.
- if ((chatOutputElement.scrollTop + 100) >= (chatOutputElement.scrollHeight - chatOutputElement.offsetHeight)) {
+ if (shouldScroll) {
chatOutputElement.scrollTo({
top: chatOutputElement.scrollHeight, left: 0, behavior: 'smooth'
});