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