Merge pull request #3490 from thelounge/xpaw/showinactive-fix
Fix potential issue of history not loading when `showInActive` is the first message
This commit is contained in:
commit
74fd296d61
@ -232,8 +232,16 @@ export default {
|
||||
return;
|
||||
}
|
||||
|
||||
let lastMessage = this.channel.messages[0];
|
||||
lastMessage = lastMessage ? lastMessage.id : -1;
|
||||
let lastMessage = -1;
|
||||
|
||||
// Find the id of first message that isn't showInActive
|
||||
// If showInActive is set, this message is actually in another channel
|
||||
for (const message of this.channel.messages) {
|
||||
if (!message.showInActive) {
|
||||
lastMessage = message.id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
this.channel.historyLoading = true;
|
||||
|
||||
|
@ -39,7 +39,13 @@ socket.on("msg", function(data) {
|
||||
) {
|
||||
channel = vueApp.activeChannel.channel;
|
||||
|
||||
data.chan = channel.id;
|
||||
if (data.chan === channel.id) {
|
||||
// If active channel is the intended channel for this message,
|
||||
// remove the showInActive flag
|
||||
data.msg.showInActive = false;
|
||||
} else {
|
||||
data.chan = channel.id;
|
||||
}
|
||||
} else if (!isActiveChannel) {
|
||||
// Do not set unread counter for channel if it is currently active on this client
|
||||
// It may increase on the server before it processes channel open event from this client
|
||||
|
@ -84,6 +84,11 @@ Chan.prototype.pushMessage = function(client, msg, increasesUnread) {
|
||||
return;
|
||||
}
|
||||
|
||||
// showInActive is only processed on "msg", don't need it on page reload
|
||||
if (msg.showInActive) {
|
||||
delete msg.showInActive;
|
||||
}
|
||||
|
||||
this.writeUserLog(client, msg);
|
||||
|
||||
if (Helper.config.maxHistory >= 0 && this.messages.length > Helper.config.maxHistory) {
|
||||
|
Loading…
Reference in New Issue
Block a user