diff --git a/src/plugins/betterRoleContext/index.tsx b/src/plugins/betterRoleContext/index.tsx index d0c06c4f92..ec37f146b9 100644 --- a/src/plugins/betterRoleContext/index.tsx +++ b/src/plugins/betterRoleContext/index.tsx @@ -82,10 +82,14 @@ interface RoleMemberPopoutProps { channelId: string; roleId: string; } -type RoleMemberPopout = ComponentType; +export type RoleMemberPopout = ComponentType; let RoleMemberPopout: RoleMemberPopout = () => null; +export function setRoleMemberPopout(component: RoleMemberPopout) { + RoleMemberPopout = component; +} + export function buildExtraRoleContextMenuItems(role: Role, guild: Guild, popoutRef?: React.RefObject) { if (!role) return { before: [], after: [] }; @@ -184,7 +188,7 @@ export default definePlugin({ find: ".ROLE_MENTION)", replacement: { match: /function (\i)(?=.+?renderPopout:.{0,20}\1,\{guildId:\i,channelId:\i)/, - replace: "$self.RoleMembers=$1;$&" + replace: "$self.setRoleMemberPopout($1);$&" } }], @@ -192,10 +196,7 @@ export default definePlugin({ // DeveloperMode needs to be enabled for the context menu to be shown DeveloperMode.updateSetting(true); }, - - set RoleMembers(component: RoleMemberPopout) { - RoleMemberPopout = component; - }, + setRoleMemberPopout, contextMenus: { "dev-context"(children, { id }: { id: string; }) { diff --git a/src/plugins/permissionsViewer/index.tsx b/src/plugins/permissionsViewer/index.tsx index b8b011b73f..5c1bbb667e 100644 --- a/src/plugins/permissionsViewer/index.tsx +++ b/src/plugins/permissionsViewer/index.tsx @@ -23,6 +23,7 @@ import { definePluginSettings } from "@api/Settings"; import ErrorBoundary from "@components/ErrorBoundary"; import { SafetyIcon } from "@components/Icons"; import { TooltipContainer } from "@components/TooltipContainer"; +import { setRoleMemberPopout } from "@plugins/betterRoleContext"; import { Devs } from "@utils/constants"; import { classes } from "@utils/misc"; import definePlugin, { OptionType } from "@utils/types"; @@ -171,8 +172,16 @@ export default definePlugin({ match: /(?<=\i\.id\)\),\i\(\))(?=,\i\?)/, replace: ",$self.ViewPermissionsButton(arguments[0])" } + }, + { + find: ".ROLE_MENTION)", + replacement: { + match: /function (\i)(?=.+?renderPopout:.{0,20}\1,\{guildId:\i,channelId:\i)/, + replace: "$self.setRoleMemberPopout($1);$&" + } } ], + setRoleMemberPopout, ViewPermissionsButton: ErrorBoundary.wrap(({ className, guild, userId }: { className: string; guild: Guild; userId: string; }) => { const buttonRef = useRef(null);