From b458872ac1562ee4f7e4f36755ee01797d78d8bd Mon Sep 17 00:00:00 2001 From: yohlo Date: Mon, 6 Oct 2025 02:23:25 -0500 Subject: [PATCH] images in badge popover --- src/components/sheet/drawer.tsx | 4 +- .../badges/components/badge-showcase.tsx | 79 ++++++++++--------- 2 files changed, 45 insertions(+), 38 deletions(-) diff --git a/src/components/sheet/drawer.tsx b/src/components/sheet/drawer.tsx index fef6043..9fa4d22 100644 --- a/src/components/sheet/drawer.tsx +++ b/src/components/sheet/drawer.tsx @@ -1,4 +1,4 @@ -import { Box, Container, Flex, Loader, useComputedColorScheme } from "@mantine/core"; +import { Box, Container, Flex, Loader, Title, useComputedColorScheme } from "@mantine/core"; import { PropsWithChildren, Suspense, useEffect, useRef } from "react"; import { Drawer as VaulDrawer } from "vaul"; import styles from "./styles.module.css"; @@ -120,7 +120,7 @@ const Drawer: React.FC = ({ style={{ borderRadius: "9999px" }} /> - {title} + {title} diff --git a/src/features/badges/components/badge-showcase.tsx b/src/features/badges/components/badge-showcase.tsx index b4f18b3..720704d 100644 --- a/src/features/badges/components/badge-showcase.tsx +++ b/src/features/badges/components/badge-showcase.tsx @@ -1,4 +1,4 @@ -import { Box, Text, Popover, Progress, Title, Image } from "@mantine/core"; +import { Box, Text, Progress, Image, Popover, Title, Stack } from "@mantine/core"; import { usePlayerBadges, useAllBadges } from "../queries"; import { useAuth } from "@/contexts/auth-context"; import { Badge, BadgeProgress } from "../types"; @@ -21,7 +21,7 @@ interface BadgeIconProps { earned: boolean; } -const BadgeIcon = ({ badge, earned }: BadgeIconProps) => { +const BadgeIcon = ({ badge, earned, size = 48 }: BadgeIconProps & { size?: number }) => { const [imageError, setImageError] = useState(false); const imagePath = `/static/img/${badge.key}.png`; @@ -29,13 +29,13 @@ const BadgeIcon = ({ badge, earned }: BadgeIconProps) => { // Fallback to icon if image fails to load return earned ? ( ) : ( @@ -46,8 +46,8 @@ const BadgeIcon = ({ badge, earned }: BadgeIconProps) => { {badge.name} setImageError(true)} style={{ objectFit: 'contain', @@ -57,6 +57,7 @@ const BadgeIcon = ({ badge, earned }: BadgeIconProps) => { ); }; + const BadgeShowcase = ({ playerId }: BadgeShowcaseProps) => { const { user } = useAuth(); const { data: badgeProgress } = usePlayerBadges(playerId); @@ -164,7 +165,7 @@ const BadgeShowcase = ({ playerId }: BadgeShowcaseProps) => { const showStack = stackCount > 1; return ( - + { width: '100px', height: '100px', borderRadius: '12px', - background: 'light-dark(var(--mantine-color-white), var(--mantine-color-dark-6))', + background: 'light-dark(var(--mantine-color-white), var(--mantine-color-dark-7))', border: display.earned ? '2px solid var(--mantine-primary-color-6)' : '2px dashed var(--mantine-primary-color-4)', @@ -251,35 +252,41 @@ const BadgeShowcase = ({ playerId }: BadgeShowcaseProps) => { - - - - {display.badge.name} - - - {display.badge.description} - - {isCurrentUser && ( - - - - Progress - - - {display.progressText} - - - + + + + - )} - - - + + + {display.badge.name} + + + + {display.badge.description} + + + {isCurrentUser && ( + + + + Progress  + + + {display.progressText} + + + + + )} + + + ); })}