Various improvements and checks

This commit is contained in:
MathMan05 2024-08-20 14:17:54 -05:00
parent a2abc91a2a
commit 1608d00beb
30 changed files with 541 additions and 360 deletions

View file

@ -45,12 +45,6 @@ class Message {
this.del = new Promise(_ => { this.resolve = _; });
Message.setupcmenu();
}
static async wipeChanel() {
this.resolve();
document.getElementById("messages").innerHTML = "";
await Promise.allSettled([this.resolve]);
this.del = new Promise(_ => { this.resolve = _; });
}
static setupcmenu() {
Message.contextmenu.addbutton("Copy raw text", function () {
navigator.clipboard.writeText(this.content.rawString);
@ -69,7 +63,7 @@ class Message {
});
Message.contextmenu.addbutton("Edit", function () {
this.channel.editing = this;
const markdown = (document.getElementById("typebox"))["markdown"];
const markdown = document.getElementById("typebox")["markdown"];
markdown.txt = this.content.rawString.split('');
markdown.boxupdate(document.getElementById("typebox"));
}, null, _ => { return _.author.id === _.localuser.user.id; });
@ -81,6 +75,7 @@ class Message {
this.owner = owner;
this.headers = this.owner.headers;
this.giveData(messagejson);
this.owner.messages.set(this.id, this);
}
reactionToggle(emoji) {
let remove = false;
@ -121,7 +116,9 @@ class Message {
continue;
}
else if (thing === "member") {
Member.new(messagejson.member, this.guild).then(_ => { this.member = _; });
Member.new(messagejson.member, this.guild).then(_ => {
this.member = _;
});
continue;
}
else if (thing === "embeds") {
@ -182,7 +179,7 @@ class Message {
return;
try {
this.div.remove();
this.div = null;
this.div = undefined;
}
catch (e) {
console.error(e);
@ -221,23 +218,37 @@ class Message {
deleteEvent() {
if (this.div) {
this.div.innerHTML = "";
this.div = null;
this.div = undefined;
}
const prev = this.channel.idToPrev.get(this.snowflake);
const next = this.channel.idToNext.get(this.snowflake);
this.channel.idToNext.set(prev, next);
this.channel.idToPrev.set(next, prev);
if (prev) {
this.channel.idToPrev.delete(this.snowflake);
}
if (next) {
this.channel.idToNext.delete(this.snowflake);
}
if (prev && next) {
this.channel.idToPrev.set(next, prev);
this.channel.idToNext.set(prev, next);
}
this.channel.messageids.delete(this.snowflake);
const regen = prev.getObject();
if (regen) {
regen.generateMessage();
if (prev && prev.getObject()) {
prev.getObject().generateMessage();
}
if (this.channel.lastmessage === this) {
this.channel.lastmessage = prev.getObject();
if (prev) {
this.channel.lastmessage = prev.getObject();
}
else {
this.channel.lastmessage = undefined;
}
}
}
reactdiv;
generateMessage(premessage = null) {
generateMessage(premessage = undefined) {
if (!this.div)
return;
if (!premessage) {
premessage = this.channel.idToPrev.get(this.snowflake)?.getObject();
}
@ -467,13 +478,12 @@ class Message {
}
}
}
buildhtml(premessage) {
buildhtml(premessage = undefined) {
if (this.div) {
console.error(`HTML for ${this.snowflake} already exists, aborting`);
return;
}
try {
//premessage??=messages.lastChild;
const div = document.createElement("div");
this.div = div;
this.messageevents(div);