[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
unpatches.push(PatcherBase.patch(UserProfileBadgeList, 'default', ([ { user, size } ], res) => {
if (!forIds().includes(user.id)) return res;
return PatcherBase.patch(UserProfileBadgeList, 'default', ([ { user, size } ], res) => { let sizeClass = BadgeClasses.profileBadge24;
if (!forIds().includes(user.id)) return res;
let sizeClass = BadgeClasses.profileBadge24; switch (size) {
case 1: { // User modal
sizeClass = BadgeClasses.profileBadge22;
break;
}
switch (size) { case 2: { // User popout
case 1: { // User modal sizeClass = BadgeClasses.profileBadge18;
sizeClass = BadgeClasses.profileBadge22; break;
break; }
} }
case 2: { // User popout res.props.children.unshift(
sizeClass = BadgeClasses.profileBadge18; React.createElement(Tooltip, {
break; position: "top",
} text: name
} }, ({
onMouseLeave,
res.props.children.unshift( onMouseEnter
React.createElement(Tooltip, { }) =>
position: "top", React.createElement(Clickable, {
text: name onClick: () => {
}, ({ clickHandler();
onMouseLeave,
onMouseEnter
}) =>
React.createElement(Clickable, {
onClick: () => {
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