summaryrefslogtreecommitdiff
path: root/app/javascript/channels/chat_room_channel.js
blob: af2995363b296cb7204fd588ca201fda83bd444b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import consumer from "./consumer"

consumer.subscriptions.create("ChatRoomChannel", {
  connected() {
    // Called when the subscription is ready for use on the server
  },

  disconnected() {
    // Called when the subscription has been terminated by the server
  },

  received(data) {
    // 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)) {
      chatOutputElement.scrollTo({
        top: chatOutputElement.scrollHeight, left: 0, behavior: 'smooth'
      });
    }
  }
});