From 5fd1d4f99627dd9148f31d7b243f9679bf239438 Mon Sep 17 00:00:00 2001 From: cocobo1 Date: Sun, 21 Sep 2025 19:59:00 +0300 Subject: [PATCH] refactor(badges): made badges load from one file instead of a bunch of random ones --- src/core/plugins/badges/index.tsx | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/core/plugins/badges/index.tsx b/src/core/plugins/badges/index.tsx index 08c9828..292fd0e 100644 --- a/src/core/plugins/badges/index.tsx +++ b/src/core/plugins/badges/index.tsx @@ -26,7 +26,7 @@ export default defineCorePlugin({ }, start() { - const badgeCache = {} as Record; + let allBadges: { [x: string]: any; } | null = null; const badgeProps = {} as Record; onJsxCreate("ProfileBadge", (component, ret) => { @@ -50,22 +50,22 @@ export default defineCorePlugin({ }); after("default", useBadgesModule, ([user], result) => { - const [badges, setBadges] = useState( - user ? badgeCache[user.userId] || [] : [] - ); + const [badges, setBadges] = useState([]); useEffect(() => { - if (user && !badgeCache[user.userId]) { - fetch(`https://raw.githubusercontent.com/ra1ncord/badges/refs/heads/main/${user.userId}.json`) + if (!user) return; + + if (!allBadges) { + fetch("https://raw.githubusercontent.com/ra1ncord/badges/main/badges.json") .then(r => r.json()) - .then(fetchedBadges => { - badgeCache[user.userId] = fetchedBadges; - setBadges(fetchedBadges); + .then(data => { + allBadges = data; + //@ts-expect-error + setBadges(allBadges[user.userId] || []); }) - //user has no badges, but maybe they should get some by contributing - .catch(() => { - badgeCache[user.userId] = []; - }); + } else { + //user has no badges, but maybe they should get some by contributing + setBadges(allBadges[user.userId] || []); } }, [user?.userId]); @@ -83,7 +83,7 @@ export default defineCorePlugin({ result.push({ id: badgeId, description: badge.label, - icon: "dummy", + icon: " _", }); }); }