Fix badges

This commit is contained in:
Vendicated 2023-04-13 21:04:19 +02:00
parent c6f0d0763c
commit c8817e805f
No known key found for this signature in database
GPG key ID: A1DC0CFB5615D905
2 changed files with 28 additions and 20 deletions

View file

@ -29,11 +29,12 @@ export enum BadgePosition {
export interface ProfileBadge {
/** The tooltip to show on hover. Required for image badges */
tooltip?: string;
description?: string;
/** Custom component for the badge (tooltip not included) */
component?: ComponentType<ProfileBadge & BadgeUserArgs>;
/** The custom image to use */
image?: string;
link?: string;
/** Action to perform when you click the badge */
onClick?(): void;
/** Should the user display this badge? */
@ -69,17 +70,19 @@ export function removeBadge(badge: ProfileBadge) {
* Inject badges into the profile badges array.
* You probably don't need to use this.
*/
export function inject(badgeArray: ProfileBadge[], args: BadgeUserArgs) {
export function _getBadges(args: BadgeUserArgs) {
const badges = [] as ProfileBadge[];
for (const badge of Badges) {
if (!badge.shouldShow || badge.shouldShow(args)) {
badge.position === BadgePosition.START
? badgeArray.unshift({ ...badge, ...args })
: badgeArray.push({ ...badge, ...args });
? badges.unshift({ ...badge, ...args })
: badges.push({ ...badge, ...args });
}
}
(Plugins.BadgeAPI as any).addDonorBadge(badgeArray, args.user.id);
const donorBadge = (Plugins.BadgeAPI as any).getDonorBadge(args.user.id);
if (donorBadge) badges.unshift(donorBadge);
return badgeArray;
return badges;
}
export interface BadgeUserArgs {