{userProfile ? (
-
- {userProfile?.displayName}
-
+
+
+ {userProfile?.displayName}
+
+
+
) : (
)}
diff --git a/src/renderer/src/pages/profile/profile-hero/user-badges.tsx b/src/renderer/src/pages/profile/profile-hero/user-badges.tsx
new file mode 100644
index 000000000..4ca180a0a
--- /dev/null
+++ b/src/renderer/src/pages/profile/profile-hero/user-badges.tsx
@@ -0,0 +1,39 @@
+import BadgeThemeCreator from "@renderer/assets/icons/badge-theme-creator.svg?react";
+import "./profile-hero.scss";
+import { useContext } from "react";
+import { userProfileContext } from "@renderer/context";
+import { UserBadge } from "@types";
+import { useTranslation } from "react-i18next";
+
+export function UserBadges() {
+ const { t } = useTranslation("badge");
+ const { userProfile } = useContext(userProfileContext);
+
+ if (!userProfile?.badges?.length) return null;
+
+ const getBadgeIcon = (badge: UserBadge) => {
+ if (badge === "THEME_CREATOR") {
+ return
;
+ }
+
+ return null;
+ };
+
+ return (
+
+ {userProfile.badges.map((badge) => {
+ const badgeIcon = getBadgeIcon(badge);
+
+ if (!badgeIcon) return null;
+ return (
+
+ {badgeIcon}
+
+ );
+ })}
+
+ );
+}
diff --git a/src/types/index.ts b/src/types/index.ts
index 53fb97dc8..e17a694af 100644
--- a/src/types/index.ts
+++ b/src/types/index.ts
@@ -130,6 +130,8 @@ export interface UserProfileCurrentGame extends Omit
{
export type ProfileVisibility = "PUBLIC" | "PRIVATE" | "FRIENDS";
+export type UserBadge = "THEME_CREATOR";
+
export interface UserDetails {
id: string;
username: string;
@@ -164,6 +166,7 @@ export interface UserProfile {
quirks: {
backupsPerGameLimit: number;
};
+ badges: UserBadge[];
}
export interface UpdateProfileRequest {
From e066ea3503e1aaa12f66976bc496260f9eca22ef Mon Sep 17 00:00:00 2001
From: Zamitto <167933696+zamitto@users.noreply.github.com>
Date: Mon, 17 Feb 2025 21:14:32 -0300
Subject: [PATCH 2/2] feat: css
---
src/renderer/src/pages/profile/profile-hero/profile-hero.scss | 2 +-
src/renderer/src/pages/profile/profile-hero/user-badges.tsx | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/renderer/src/pages/profile/profile-hero/profile-hero.scss b/src/renderer/src/pages/profile/profile-hero/profile-hero.scss
index 284d1abf7..fd21cf1d0 100644
--- a/src/renderer/src/pages/profile/profile-hero/profile-hero.scss
+++ b/src/renderer/src/pages/profile/profile-hero/profile-hero.scss
@@ -82,7 +82,7 @@
text-shadow: 0 0 5px rgb(0 0 0 / 40%);
}
- &__display-name-badges {
+ &__display-name-badges-container {
display: flex;
gap: globals.$spacing-unit;
align-items: center;
diff --git a/src/renderer/src/pages/profile/profile-hero/user-badges.tsx b/src/renderer/src/pages/profile/profile-hero/user-badges.tsx
index 4ca180a0a..ed5d05713 100644
--- a/src/renderer/src/pages/profile/profile-hero/user-badges.tsx
+++ b/src/renderer/src/pages/profile/profile-hero/user-badges.tsx
@@ -20,13 +20,14 @@ export function UserBadges() {
};
return (
-
+
{userProfile.badges.map((badge) => {
const badgeIcon = getBadgeIcon(badge);
if (!badgeIcon) return null;
return (