thelounge/client/js/socket-events/more.js

30 lines
669 B
JavaScript
Raw Normal View History

2017-05-18 22:08:54 +02:00
"use strict";
import Vue from "vue";
2019-11-16 18:24:03 +01:00
import socket from "../socket";
import store from "../store";
2017-05-18 22:08:54 +02:00
socket.on("more", function (data) {
const channel = store.getters.findChannel(data.chan)?.channel;
if (!channel) {
return;
2017-05-18 22:08:54 +02:00
}
channel.inputHistory = channel.inputHistory.concat(
data.messages
.filter((m) => m.self && m.text && m.type === "message")
.map((m) => m.text)
.reverse()
.slice(null, 100 - channel.inputHistory.length)
);
2021-05-01 01:36:44 +02:00
channel.moreHistoryAvailable =
data.totalMessages > channel.messages.length + data.messages.length;
channel.messages.unshift(...data.messages);
2018-07-12 18:25:41 +02:00
Vue.nextTick(() => {
2021-05-01 01:36:44 +02:00
channel.historyLoading = false;
2018-07-12 18:25:41 +02:00
});
2017-05-18 22:08:54 +02:00
});