[Patcher > UserBadges] Inject in all modules

master
CanadaHonk 2 years ago
parent 69bea8ce5f
commit 76683186c8

@ -14,51 +14,54 @@ export const patch = (name, imgUrl, forIds, clickHandler = (() => {}), { round =
const BadgeClasses = goosemodScope.webpackModules.findByProps('profileBadge24', 'profileBadge22'); const BadgeClasses = goosemodScope.webpackModules.findByProps('profileBadge24', 'profileBadge22');
const UserProfileBadgeList = goosemodScope.webpackModules.findByPropsAll('BadgeSizes')[1]; 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
return PatcherBase.patch(UserProfileBadgeList, 'default', ([ { user, size } ], res) => { unpatches.push(PatcherBase.patch(UserProfileBadgeList, 'default', ([ { user, size } ], res) => {
if (!forIds().includes(user.id)) return res; if (!forIds().includes(user.id)) return res;
let sizeClass = BadgeClasses.profileBadge24; let sizeClass = BadgeClasses.profileBadge24;
switch (size) { switch (size) {
case 1: { // User modal case 1: { // User modal
sizeClass = BadgeClasses.profileBadge22; sizeClass = BadgeClasses.profileBadge22;
break; break;
} }
case 2: { // User popout case 2: { // User popout
sizeClass = BadgeClasses.profileBadge18; sizeClass = BadgeClasses.profileBadge18;
break; break;
}
} }
}
res.props.children.unshift( res.props.children.unshift(
React.createElement(Tooltip, { React.createElement(Tooltip, {
position: "top", position: "top",
text: name text: name
}, ({ }, ({
onMouseLeave, onMouseLeave,
onMouseEnter onMouseEnter
}) => }) =>
React.createElement(Clickable, { React.createElement(Clickable, {
onClick: () => { onClick: () => {
clickHandler(); clickHandler();
},
onMouseEnter,
onMouseLeave
},
React.createElement('div', {
style: {
backgroundImage: `url("${imgUrl}")`,
borderRadius: round ? '50%' : ''
}, },
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());
});
}; };

Loading…
Cancel
Save