diff options
Diffstat (limited to 'src/plugins/permissionsViewer/utils.ts')
-rw-r--r-- | src/plugins/permissionsViewer/utils.ts | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/plugins/permissionsViewer/utils.ts b/src/plugins/permissionsViewer/utils.ts index b747147..06f293b 100644 --- a/src/plugins/permissionsViewer/utils.ts +++ b/src/plugins/permissionsViewer/utils.ts @@ -18,11 +18,12 @@ import { classNameFactory } from "@api/Styles"; import { wordsToTitle } from "@utils/text"; -import { i18n, Parser } from "@webpack/common"; +import { GuildStore, i18n, Parser } from "@webpack/common"; import { Guild, GuildMember, Role } from "discord-types/general"; import type { ReactNode } from "react"; import { PermissionsSortOrder, settings } from "."; +import { PermissionType } from "./components/RolesAndUsersPermissions"; export const cl = classNameFactory("vc-permviewer-"); @@ -82,3 +83,16 @@ export function sortUserRoles(roles: Role[]) { return roles; } } + +export function sortPermissionOverwrites<T extends { id: string; type: number; }>(overwrites: T[], guildId: string) { + const guild = GuildStore.getGuild(guildId); + + return overwrites.sort((a, b) => { + if (a.type !== PermissionType.Role || b.type !== PermissionType.Role) return 0; + + const roleA = guild.roles[a.id]; + const roleB = guild.roles[b.id]; + + return roleB.position - roleA.position; + }); +} |