thelounge/client/js/socket-events/open.js
Pavel Djundik 7e332b817d Channel list rendering with Vue
Co-Authored-By: Tim Miller-Williams <timmw@users.noreply.github.com>
2019-02-12 12:48:41 +02:00

35 lines
817 B
JavaScript

"use strict";
const $ = require("jquery");
const socket = require("../socket");
const utils = require("../utils");
const {vueApp, findChannel} = require("../vue");
// Sync unread badge and marker when other clients open a channel
socket.on("open", function(id) {
if (id < 1) {
return;
}
// Don't do anything if the channel is active on this client
if (vueApp.activeChannel && vueApp.activeChannel.channel.id === id) {
return;
}
// Clear the unread badge
const channel = findChannel(id);
if (channel) {
channel.channel.highlight = 0;
channel.channel.unread = 0;
}
utils.updateTitle();
// Move unread marker to the bottom
const channelContainer = $("#chat #chan-" + id);
channelContainer
.find(".unread-marker")
.data("unread-id", 0)
.appendTo(channelContainer.find(".messages"));
});