diff --git a/src/util/patcher/userBadges.js b/src/util/patcher/userBadges.js index c1f9f275..a64add8a 100644 --- a/src/util/patcher/userBadges.js +++ b/src/util/patcher/userBadges.js @@ -14,51 +14,54 @@ export const patch = (name, imgUrl, forIds, clickHandler = (() => {}), { round = const BadgeClasses = goosemodScope.webpackModules.findByProps('profileBadge24', 'profileBadge22'); - const UserProfileBadgeList = goosemodScope.webpackModules.findByPropsAll('BadgeSizes')[1]; - - return PatcherBase.patch(UserProfileBadgeList, 'default', ([ { user, size } ], res) => { - if (!forIds().includes(user.id)) return res; + const unpatches = []; + for (const UserProfileBadgeList of goosemodScope.webpackModules.findByPropsAll('BadgeSizes')) { // there's two near-identical modules: 0 = badge list in new popouts, 1 = profile/other + unpatches.push(PatcherBase.patch(UserProfileBadgeList, 'default', ([ { user, size } ], res) => { + if (!forIds().includes(user.id)) return res; - let sizeClass = BadgeClasses.profileBadge24; + let sizeClass = BadgeClasses.profileBadge24; - switch (size) { - case 1: { // User modal - sizeClass = BadgeClasses.profileBadge22; - break; - } + switch (size) { + case 1: { // User modal + sizeClass = BadgeClasses.profileBadge22; + break; + } - case 2: { // User popout - sizeClass = BadgeClasses.profileBadge18; - break; + case 2: { // User popout + sizeClass = BadgeClasses.profileBadge18; + break; + } } - } - res.props.children.unshift( - React.createElement(Tooltip, { - position: "top", - text: name - }, ({ - onMouseLeave, - onMouseEnter - }) => - React.createElement(Clickable, { - onClick: () => { - clickHandler(); - }, - onMouseEnter, - onMouseLeave - }, - React.createElement('div', { - style: { - backgroundImage: `url("${imgUrl}")`, - borderRadius: round ? '50%' : '' + res.props.children.unshift( + React.createElement(Tooltip, { + position: "top", + text: name + }, ({ + onMouseLeave, + onMouseEnter + }) => + React.createElement(Clickable, { + onClick: () => { + clickHandler(); }, - className: `${BadgeClasses.profileBadge} ${sizeClass}` - }) + onMouseEnter, + onMouseLeave + }, + React.createElement('div', { + style: { + backgroundImage: `url("${imgUrl}")`, + borderRadius: round ? '50%' : '' + }, + className: `${BadgeClasses.profileBadge} ${sizeClass}` + }) + ) ) - ) - ); + ); + + return res; + })); + } - return res; - }); + return () => unpatches.forEach(x => x()); };