From 832ac62f8e2ddd9c2761de087404848c9621f77f Mon Sep 17 00:00:00 2001
From: thororen1234 <78185467+thororen1234@users.noreply.github.com>
Date: Tue, 25 Nov 2025 10:02:04 -0500
Subject: [PATCH] GlobalBadges: Change Modal Format
---
.../globalBadges/badgeComponent.tsx | 5 +-
.../globalBadges/badgeModal.tsx | 24 ++++-----
src/equicordplugins/globalBadges/index.tsx | 2 +
src/equicordplugins/globalBadges/styles.css | 54 +++++++++++++++++++
src/equicordplugins/globalBadges/utils.ts | 2 +-
.../_api/badges/fixDiscordBadgePadding.css | 6 ++-
6 files changed, 75 insertions(+), 18 deletions(-)
create mode 100644 src/equicordplugins/globalBadges/styles.css
diff --git a/src/equicordplugins/globalBadges/badgeComponent.tsx b/src/equicordplugins/globalBadges/badgeComponent.tsx
index b7c4e5f7f..fa455e5b2 100644
--- a/src/equicordplugins/globalBadges/badgeComponent.tsx
+++ b/src/equicordplugins/globalBadges/badgeComponent.tsx
@@ -10,7 +10,7 @@ import { JSX } from "react";
import { BadgeModalComponent, openBadgeModal } from "./badgeModal";
import { settings } from "./settings";
import { BadgeCache } from "./types";
-import { fetchBadges, serviceMap } from "./utils";
+import { cl, fetchBadges, serviceMap } from "./utils";
export let badgeImages;
@@ -63,8 +63,7 @@ export const GlobalBadges = ({ userId }: { userId: string; }) => {
return (
openBadgeModal(UserStore.getUser(userId))}
>
{globalBadges}
diff --git a/src/equicordplugins/globalBadges/badgeModal.tsx b/src/equicordplugins/globalBadges/badgeModal.tsx
index b8f6d2f56..7bff808d0 100644
--- a/src/equicordplugins/globalBadges/badgeModal.tsx
+++ b/src/equicordplugins/globalBadges/badgeModal.tsx
@@ -5,8 +5,7 @@
*/
import ErrorBoundary from "@components/ErrorBoundary";
-import { HeadingPrimary } from "@components/Heading";
-import { Paragraph } from "@components/Paragraph";
+import { HeadingTertiary } from "@components/Heading";
import { ModalContent, ModalRoot, openModal } from "@utils/modal";
import { User } from "@vencord/discord-types";
import { React, Tooltip } from "@webpack/common";
@@ -19,9 +18,9 @@ export const BadgeModalComponent = ({ name, img }: { name: string, img: string;
{(tooltipProps: any) => (
)}
@@ -37,17 +36,16 @@ export function BadgeModal({ user }: { user: User; }) {
src={user.getAvatarURL(void 0, 512, true)}
alt=""
/>
-
{user.username}
+ {badgeImages.length ? (
+
+ {user.username} has {badgeImages.length} global badges
+
+ ) : (
+
+ {user.username} has no global badges
+
+ )}
- {badgeImages.length ? (
-
- {user.username} has {badgeImages.length} global badges.
-
- ) : (
-
- {user.username} has no global badges.
-
- )}
{!!badgeImages.length && (
{badgeImages}
diff --git a/src/equicordplugins/globalBadges/index.tsx b/src/equicordplugins/globalBadges/index.tsx
index 68bdb475b..2e7d7796d 100644
--- a/src/equicordplugins/globalBadges/index.tsx
+++ b/src/equicordplugins/globalBadges/index.tsx
@@ -4,6 +4,8 @@
* SPDX-License-Identifier: GPL-3.0-or-later
*/
+import "./styles.css";
+
import { addProfileBadge, BadgePosition, ProfileBadge, removeProfileBadge } from "@api/Badges";
import { Devs, EquicordDevs } from "@utils/constants";
import definePlugin from "@utils/types";
diff --git a/src/equicordplugins/globalBadges/styles.css b/src/equicordplugins/globalBadges/styles.css
new file mode 100644
index 000000000..f08323166
--- /dev/null
+++ b/src/equicordplugins/globalBadges/styles.css
@@ -0,0 +1,54 @@
+.vc-global-badges-badges {
+ align-items: center;
+ display: flex;
+ flex-wrap: nowrap;
+}
+
+.vc-global-badges-header {
+ display: flex;
+ align-items: center;
+ margin-bottom: 1em;
+}
+
+.vc-global-badges-name {
+ text-transform: none;
+ flex-grow: 0;
+ background: var(--background-base-lowest);
+ border-radius: 0 9999px 9999px 0;
+ padding: 6px 0.8em 6px 0.5em;
+ font-size: 20px;
+ height: 20px;
+ position: relative;
+ text-wrap: nowrap;
+}
+
+.vc-global-badges-name::before {
+ content: "";
+ display: block;
+ position: absolute;
+ height: 100%;
+ width: 32px;
+ background: var(--background-base-lowest);
+ z-index: -1;
+ left: -32px;
+ top: 0;
+ border-top-left-radius: 9999px;
+ border-bottom-left-radius: 9999px;
+}
+
+.vc-global-badges-avatar {
+ height: 48px;
+ width: 48px;
+ border-radius: 50%;
+}
+
+.vc-global-badges-description {
+ font-size: 16px;
+ margin-left: 6px;
+}
+
+.vc-global-badges-modal-badges {
+ width: 50px;
+ height: 50px;
+ margin: 2px;
+}
\ No newline at end of file
diff --git a/src/equicordplugins/globalBadges/utils.ts b/src/equicordplugins/globalBadges/utils.ts
index d63932d37..d75d28556 100644
--- a/src/equicordplugins/globalBadges/utils.ts
+++ b/src/equicordplugins/globalBadges/utils.ts
@@ -12,7 +12,7 @@ import { BadgeCache } from "./types";
const cache = new Map();
const EXPIRES = 1000 * 60 * 15;
-export const cl = classNameFactory("vc-author-modal-");
+export const cl = classNameFactory("vc-global-badges-");
export const serviceMap = {
"nekocord": "Nekocord",
"reviewdb": "ReviewDB",
diff --git a/src/plugins/_api/badges/fixDiscordBadgePadding.css b/src/plugins/_api/badges/fixDiscordBadgePadding.css
index 388894e19..b018352a2 100644
--- a/src/plugins/_api/badges/fixDiscordBadgePadding.css
+++ b/src/plugins/_api/badges/fixDiscordBadgePadding.css
@@ -1,5 +1,9 @@
/* the profile popout badge container(s) */
-[class*="container_"] [class*="tags_"] [class*="container_"] {
+[class*="profile_"] [class*="tags_"] [class*="container_"] {
/* Discord has gap set to 2px instead of 1px, which causes the 12th badge to wrap to a new line. */
gap: 1px;
+}
+
+[class*="container_"] [class*="tags_"] [class*="container_"] {
+ gap: 1px;
}
\ No newline at end of file