[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 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());
};

Loading…
Cancel
Save