fix various message issues

This commit is contained in:
MathMan05 2025-04-03 22:13:17 -05:00
parent c6bc1c923e
commit 8e98535407
2 changed files with 13 additions and 3 deletions

View file

@ -56,8 +56,8 @@ class Channel extends SnowFlake {
static contextmenu = new Contextmenu<Channel, undefined>("channel menu"); static contextmenu = new Contextmenu<Channel, undefined>("channel menu");
replyingto!: Message | null; replyingto!: Message | null;
infinite!: InfiniteScroller; infinite!: InfiniteScroller;
idToPrev: Map<string, string> = new Map(); idToPrev: Map<string, string | undefined> = new Map();
idToNext: Map<string, string> = new Map(); idToNext: Map<string, string | undefined> = new Map();
messages: Map<string, Message> = new Map(); messages: Map<string, Message> = new Map();
voice?: Voice; voice?: Voice;
bitrate: number = 128000; bitrate: number = 128000;
@ -1206,6 +1206,9 @@ class Channel extends SnowFlake {
return j.json(); return j.json();
}) })
.then((response) => { .then((response) => {
if (response.length === 0) {
this.idToNext.set(id, undefined);
}
let previd: string = id; let previd: string = id;
for (const i in response) { for (const i in response) {
let messager: Message; let messager: Message;
@ -1243,6 +1246,7 @@ class Channel extends SnowFlake {
this.allthewayup = true; this.allthewayup = true;
if (response.length === 0) { if (response.length === 0) {
this.topid = id; this.topid = id;
this.idToPrev.set(id, undefined);
} }
} }
let previd = id; let previd = id;

View file

@ -392,7 +392,11 @@ class Group extends Channel {
this.children = []; this.children = [];
this.guild_id = "@me"; this.guild_id = "@me";
this.permission_overwrites = new Map(); this.permission_overwrites = new Map();
this.lastmessageid = json.last_message_id; if (json.last_message_id) {
this.lastmessageid = json.last_message_id;
} else {
this.lastmessageid = undefined;
}
this.mentions = 0; this.mentions = 0;
this.setUpInfiniteScroller(); this.setUpInfiniteScroller();
this.updatePosition(); this.updatePosition();
@ -461,10 +465,12 @@ class Group extends Channel {
messageCreate(messagep: {d: messagejson}) { messageCreate(messagep: {d: messagejson}) {
this.mentions++; this.mentions++;
const messagez = new Message(messagep.d, this); const messagez = new Message(messagep.d, this);
if (this.lastmessageid) { if (this.lastmessageid) {
this.idToNext.set(this.lastmessageid, messagez.id); this.idToNext.set(this.lastmessageid, messagez.id);
this.idToPrev.set(messagez.id, this.lastmessageid); this.idToPrev.set(messagez.id, this.lastmessageid);
} }
this.idToNext.set(messagez.id, undefined);
this.lastmessageid = messagez.id; this.lastmessageid = messagez.id;
if (messagez.author === this.localuser.user) { if (messagez.author === this.localuser.user) {