various fixes

This commit is contained in:
MathMan05 2024-09-10 13:50:53 -05:00
parent baa224ab91
commit 72ac3a14ed
8 changed files with 50 additions and 3 deletions

View file

@ -930,6 +930,10 @@ class Channel extends SnowFlake {
if (this.localuser.channelfocus !== this) {
return;
}
for (const elm of messages.getElementsByClassName("scroller")) {
elm.remove();
console.warn("rouge element detected and removed");
}
messages.append(await this.infinite.getDiv(id));
this.infinite.updatestuff();
this.infinite.watchForChange().then(async (_) => {

View file

@ -46,7 +46,7 @@ class Guild extends SnowFlake {
});
Guild.contextmenu.addbutton("Create invite", function () {
}, null, _ => true, _ => false);
Guild.contextmenu.addbutton("Settings[temp]", function () {
Guild.contextmenu.addbutton("Settings", function () {
this.generateSettings();
});
/* -----things left for later-----
@ -62,6 +62,16 @@ class Guild extends SnowFlake {
}
generateSettings() {
const settings = new Settings("Settings for " + this.properties.name);
{
const overview = settings.addButton("Overview");
const form = overview.addForm("", _ => { }, {
headers: this.headers,
traditionalSubmit: true,
fetchURL: this.info.api + "/guilds/" + this.id,
method: "PATCH"
});
form.addTextInput("Name:", "name", { initText: this.properties.name });
}
const s1 = settings.addButton("roles");
const permlist = [];
for (const thing of this.roles) {

View file

@ -17,6 +17,9 @@ class InfiniteScroller {
timeout;
async getDiv(initialId, bottom = true) {
//div.classList.add("flexttb")
if (this.div) {
throw new Error("Div already exists, exiting.");
}
const scroll = document.createElement("div");
scroll.classList.add("flexttb", "scroller");
this.beenloaded = false;
@ -63,6 +66,7 @@ class InfiniteScroller {
averageheight = 60;
checkscroll() {
if (this.beenloaded && this.div && !document.body.contains(this.div)) {
console.warn("not in document");
this.div = null;
}
}

View file

@ -544,6 +544,12 @@ class Options {
this.generate(text);
return text;
}
addForm(name, onSubmit, { ltr = false, submitText = "Submit", fetchURL = "", headers = {}, method = "POST", traditionalSubmit = false } = {}) {
const options = new Form(name, this, onSubmit, { ltr, submitText, fetchURL, headers, method, traditionalSubmit });
this.options.push(options);
this.generate(options);
return options;
}
generate(elm) {
const container = this.container.deref();
if (container) {