Merge pull request #1444 from thelounge/xpaw/protect-history-loading
Do not unintentionally send incorrect messages from history
This commit is contained in:
commit
9811f2be02
@ -7,7 +7,6 @@ const chat = $("#chat");
|
||||
const templates = require("../../views");
|
||||
|
||||
socket.on("more", function(data) {
|
||||
const documentFragment = render.buildChannelMessages(data);
|
||||
const chan = chat
|
||||
.find("#chan-" + data.chan)
|
||||
.find(".messages");
|
||||
@ -16,6 +15,12 @@ socket.on("more", function(data) {
|
||||
const scrollable = chan.closest(".chat");
|
||||
const heightOld = chan.height();
|
||||
|
||||
// If there are no more messages to show, just hide the button and do nothing else
|
||||
if (!data.messages.length) {
|
||||
scrollable.find(".show-more").removeClass("show");
|
||||
return;
|
||||
}
|
||||
|
||||
// Remove the date-change marker we put at the top, because it may
|
||||
// not actually be a date change now
|
||||
const children = $(chan).children();
|
||||
@ -29,6 +34,7 @@ socket.on("more", function(data) {
|
||||
}
|
||||
|
||||
// Add the older messages
|
||||
const documentFragment = render.buildChannelMessages(data);
|
||||
chan.prepend(documentFragment).end();
|
||||
|
||||
// restore scroll position
|
||||
|
@ -403,14 +403,19 @@ Client.prototype.inputLine = function(data) {
|
||||
};
|
||||
|
||||
Client.prototype.more = function(data) {
|
||||
var client = this;
|
||||
var target = client.find(data.target);
|
||||
const client = this;
|
||||
const target = client.find(data.target);
|
||||
|
||||
if (!target) {
|
||||
return;
|
||||
}
|
||||
var chan = target.chan;
|
||||
var index = chan.messages.findIndex((val) => val.id === data.lastId);
|
||||
var messages = chan.messages.slice(Math.max(0, index - 100), index);
|
||||
|
||||
const chan = target.chan;
|
||||
const index = chan.messages.findIndex((val) => val.id === data.lastId);
|
||||
|
||||
// If we don't find the requested message, send an empty array
|
||||
const messages = index > 0 ? chan.messages.slice(Math.max(0, index - 100), index) : [];
|
||||
|
||||
client.emit("more", {
|
||||
chan: chan.id,
|
||||
messages: messages
|
||||
|
Loading…
Reference in New Issue
Block a user