From 3d0609f8f17b0754bde2ff521019c654235e2eb6 Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Mon, 3 Feb 2025 23:30:32 +1300 Subject: [PATCH] Fix duplicate guilds in list --- src/web/pug-sync.js | 2 +- src/web/pug/guild_access_denied.pug | 2 +- src/web/pug/includes/template.pug | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/web/pug-sync.js b/src/web/pug-sync.js index 7bf9163..fb83caa 100644 --- a/src/web/pug-sync.js +++ b/src/web/pug-sync.js @@ -35,7 +35,7 @@ function render(event, filename, locals) { pugCache.set(path, async (event, locals) => { defaultContentType(event, "text/html; charset=utf-8") const session = await useSession(event, {password: reg.as_token}) - const managed = (session.data.managedGuilds || []).concat(session.data.matrixGuilds || []) + const managed = new Set((session.data.managedGuilds || []).concat(session.data.matrixGuilds || [])) const rel = x => getRelativePath(event.path, x) return template(Object.assign({}, getQuery(event), // Query parameters can be easily accessed on the top level but don't allow them to overwrite anything diff --git a/src/web/pug/guild_access_denied.pug b/src/web/pug/guild_access_denied.pug index 1f30fba..6283b49 100644 --- a/src/web/pug/guild_access_denied.pug +++ b/src/web/pug/guild_access_denied.pug @@ -18,7 +18,7 @@ block body p Select a server from the top right corner to continue. p If the server you're looking for isn't there, try #[a(href=rel("/oauth?action=add")) logging in again.] - else if !discord.guilds.has(guild_id) || !managed.includes(guild_id) + else if !discord.guilds.has(guild_id) || !managed.has(guild_id) .s-empty-state.wmx4.p48 != icons.Spots.SpotAlertXL p Either the selected server doesn't exist, or you don't have the Manage Server permission on Discord. diff --git a/src/web/pug/includes/template.pug b/src/web/pug/includes/template.pug index 0ed7662..9c51d6c 100644 --- a/src/web/pug/includes/template.pug +++ b/src/web/pug/includes/template.pug @@ -75,17 +75,17 @@ html(lang="en") a.s-btn.s-btn__icon.s-btn__featured.s-btn__outlined.as-center(href=rel("/oauth")) != icons.Icons.IconDiscord = ` Log in with Discord` - if guild_id && managed.includes(guild_id) && discord.guilds.has(guild_id) - button.s-topbar--item.s-btn.s-btn__muted.s-user-card(popovertarget="guilds") + if guild_id && managed.has(guild_id) && discord.guilds.has(guild_id) + button.s-topbar--item.s-btn.s-btn__muted.s-btn__dropdown.pr32.bar0.s-user-card(popovertarget="guilds") +guild(discord.guilds.get(guild_id)) - else if managed.length + else if managed.size button.s-topbar--item.s-btn.s-btn__muted.s-btn__dropdown.pr24.s-user-card.bar0.fc-black(popovertarget="guilds") | Your servers #guilds(popover data-popper-placement="bottom" style="display: revert; width: revert;").s-popover.overflow-visible .s-popover--arrow.s-popover--arrow__tc .s-popover--content.overflow-y-auto.overflow-x-hidden ul.s-menu(role="menu") - each guild in managed.map(id => discord.guilds.get(id)).filter(g => g) + each guild in [...managed].map(id => discord.guilds.get(id)).filter(g => g).sort((a, b) => a.name.toLowerCase() < b.name.toLowerCase() ? -1 : 1) li(role="menuitem") a.s-topbar--item.s-user-card.d-flex.p4(href=rel(`/guild?guild_id=${guild.id}`)) +guild(guild)