Added role context menu

This commit is contained in:
nin0dev 2024-07-26 12:37:46 -04:00
parent b5946645e8
commit 4ec77e39aa

View file

@ -11,57 +11,14 @@ import { getUserSettingLazy } from "@api/UserSettings";
import { InfoIcon } from "@components/Icons"; import { InfoIcon } from "@components/Icons";
import { Devs } from "@utils/constants"; import { Devs } from "@utils/constants";
import { getCurrentChannel, getCurrentGuild } from "@utils/discord"; import { getCurrentChannel, getCurrentGuild } from "@utils/discord";
import { classes } from "@utils/misc";
import definePlugin from "@utils/types"; import definePlugin from "@utils/types";
import { Forms, GuildMemberStore, GuildStore, Menu, Parser } from "@webpack/common"; import { Forms, GuildMemberStore, GuildStore, Menu, Parser } from "@webpack/common";
import { GuildMember } from "discord-types/general"; import { GuildMember } from "discord-types/general";
import { PropsWithChildren, SVGProps } from "react";
import { showInRoleModal } from "./RoleMembersModal"; import { showInRoleModal } from "./RoleMembersModal";
const DeveloperMode = getUserSettingLazy("appearance", "developerMode")!; const DeveloperMode = getUserSettingLazy("appearance", "developerMode")!;
interface BaseIconProps extends IconProps {
viewBox: string;
}
interface IconProps extends SVGProps<SVGSVGElement> {
className?: string;
height?: string | number;
width?: string | number;
}
function Icon({ height = 24, width = 24, className, children, viewBox, ...svgProps }: PropsWithChildren<BaseIconProps>) {
return (
<svg
className={classes(className, "vc-icon")}
role="img"
width={width}
height={height}
viewBox={viewBox}
{...svgProps}
>
{children}
</svg>
);
}
function EyeIcon(props: IconProps) {
return (
<Icon
{...props}
className={classes(props.className, "vc-eye-icon")}
viewBox="0 0 24 24"
>
<path
fill="currentColor"
d="M480-320q75 0 127.5-52.5T660-500q0-75-52.5-127.5T480-680q-75 0-127.5 52.5T300-500q0 75 52.5 127.5T480-320Zm0-72q-45 0-76.5-31.5T372-500q0-45 31.5-76.5T480-608q45 0 76.5 31.5T588-500q0 45-31.5 76.5T480-392Zm0 192q-146 0-266-81.5T40-500q54-137 174-218.5T480-800q146 0 266 81.5T920-500q-54 137-174 218.5T480-200Zm0-300Zm0 220q113 0 207.5-59.5T832-500q-50-101-144.5-160.5T480-720q-113 0-207.5 59.5T128-500q50 101 144.5 160.5T480-280Z"
/>
</Icon>
);
}
function getMembersInRole(roleId: string, guildId: string) { function getMembersInRole(roleId: string, guildId: string) {
const members = GuildMemberStore.getMembers(guildId); const members = GuildMemberStore.getMembers(guildId);
const membersInRole: GuildMember[] = []; const membersInRole: GuildMember[] = [];