From d2f9d85474bf5d5ff682e3023a6bcfe0190ae0d3 Mon Sep 17 00:00:00 2001 From: Mathium05 Date: Tue, 18 Aug 2026 16:52:56 -0500 Subject: [PATCH] sort relationships --- src/webpage/direct.ts | 52 +++++++++++++++++++++---------------------- src/webpage/user.ts | 2 ++ 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/src/webpage/direct.ts b/src/webpage/direct.ts index a63c24c..9bbf4ec 100644 --- a/src/webpage/direct.ts +++ b/src/webpage/direct.ts @@ -238,39 +238,39 @@ class Direct extends Guild { checkVoid(); container.innerHTML = ""; container.append(I18n.friends["pending:"]()); - for (const user of this.localuser.inrelation) { - if (user.relationshipType === 3 || user.relationshipType === 4) { - const buttons = document.createElement("div"); - buttons.classList.add("flexltr"); + for (const user of [...this.localuser.inrelation] + .filter((user) => user.relationshipType === 3 || user.relationshipType === 4) + .sort((a, b) => +b.relationshipID! - +a.relationshipID!)) { + const buttons = document.createElement("div"); + buttons.classList.add("flexltr"); + const buttonc = document.createElement("div"); + const button1 = document.createElement("span"); + button1.classList.add("svgicon", "svg-x"); + if (user.relationshipType === 3) { const buttonc = document.createElement("div"); - const button1 = document.createElement("span"); - button1.classList.add("svgicon", "svg-x"); - if (user.relationshipType === 3) { - const buttonc = document.createElement("div"); - const button2 = document.createElement("span"); - button2.classList.add("svgicon", "svg-x"); - button2.classList.add("svg-addfriend"); - buttonc.append(button2); - buttonc.classList.add("friendlyButton"); - buttonc.append(button2); - buttons.append(buttonc); - buttonc.onclick = (e) => { - e.stopImmediatePropagation(); - user.changeRelationship(1); - outerDiv.remove(); - }; - } - buttonc.append(button1); + const button2 = document.createElement("span"); + button2.classList.add("svgicon", "svg-x"); + button2.classList.add("svg-addfriend"); + buttonc.append(button2); buttonc.classList.add("friendlyButton"); + buttonc.append(button2); + buttons.append(buttonc); buttonc.onclick = (e) => { e.stopImmediatePropagation(); - user.changeRelationship(0); + user.changeRelationship(1); outerDiv.remove(); }; - buttons.append(buttonc); - const outerDiv = genuserstrip(user, buttons); - container.append(outerDiv); } + buttonc.append(button1); + buttonc.classList.add("friendlyButton"); + buttonc.onclick = (e) => { + e.stopImmediatePropagation(); + user.changeRelationship(0); + outerDiv.remove(); + }; + buttons.append(buttonc); + const outerDiv = genuserstrip(user, buttons); + container.append(outerDiv); } }; pending.onclick = genPending; diff --git a/src/webpage/user.ts b/src/webpage/user.ts index 4be4d3f..b92876b 100644 --- a/src/webpage/user.ts +++ b/src/webpage/user.ts @@ -41,6 +41,7 @@ class User extends SnowFlake { username!: string; nickname: string | null = null; relationshipType: 0 | 1 | 2 | 3 | 4 | 5 | 6 = 0; + relationshipID?: string; bio!: MarkDown; discriminator!: string; pronouns?: string; @@ -1149,6 +1150,7 @@ class User extends SnowFlake { this.nickname = relation.nickname; this.relationshipType = relation.type; this.localuser.inrelation.add(this); + this.relationshipID = relation.id; if (nickChange) { this.nameChange(); }