Do not keep scroll to bottom in inactive channels

This commit is contained in:
Pavel Djundik 2017-11-23 19:33:19 +02:00
parent 7fb92fee64
commit 2f84b01427
2 changed files with 14 additions and 6 deletions

View file

@ -4,6 +4,7 @@ const $ = require("jquery");
const options = require("./options"); const options = require("./options");
const socket = require("./socket"); const socket = require("./socket");
const templates = require("../views"); const templates = require("../views");
const chat = $("#chat");
const input = $("#input"); const input = $("#input");
const Mousetrap = require("mousetrap"); const Mousetrap = require("mousetrap");
@ -29,8 +30,11 @@ function renderPreview(preview, msg) {
preview.shown = preview.shown && options.shouldOpenMessagePreview(preview.type); preview.shown = preview.shown && options.shouldOpenMessagePreview(preview.type);
const container = msg.closest(".chat"); const container = msg.closest(".chat");
const channelId = container.data("id");
const activeChannelId = chat.find(".chan.active").data("id");
let bottom = false; let bottom = false;
if (container.length) { if (container.length && activeChannelId === channelId) {
bottom = container.isScrollBottom(); bottom = container.isScrollBottom();
} }
@ -41,12 +45,14 @@ function renderPreview(preview, msg) {
previewContainer previewContainer
.append(templates.msg_preview({preview: preview})); .append(templates.msg_preview({preview: preview}));
if (activeChannelId === channelId) {
if (preview.shown && bottom) { if (preview.shown && bottom) {
handleImageInPreview(msg.find(".toggle-content"), container); handleImageInPreview(msg.find(".toggle-content"), container);
} }
container.trigger("keepToBottom"); container.trigger("keepToBottom");
} }
}
$("#chat").on("click", ".text .toggle-button", function() { $("#chat").on("click", ".text .toggle-button", function() {
const self = $(this); const self = $(this);

View file

@ -46,7 +46,9 @@ function processReceivedMessage(data) {
data.msg data.msg
); );
if (activeChannelId === targetId) {
container.trigger("keepToBottom"); container.trigger("keepToBottom");
}
notifyMessage(targetId, channel, data); notifyMessage(targetId, channel, data);