diff --git a/src/app/components/player/player-view.tsx b/src/app/components/player/player-view.tsx
index 39c5212..da7c7d3 100644
--- a/src/app/components/player/player-view.tsx
+++ b/src/app/components/player/player-view.tsx
@@ -1,11 +1,9 @@
/* eslint-disable @next/next/no-img-element */
import { CachedPlayer, SkinPart } from "mcutils-library";
-import Image from "next/image";
import { ReactElement } from "react";
import { Card } from "../card";
import { CodeDialog } from "../code-dialog";
import { Separator } from "../ui/separator";
-import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/tooltip";
import { SkinPartImage } from "./skin-part-image";
type PlayerViewProps = {
@@ -31,15 +29,8 @@ export function PlayerView({ player }: PlayerViewProps): ReactElement {
-
-
+
+
@@ -56,18 +47,7 @@ export function PlayerView({ player }: PlayerViewProps): ReactElement {
{Object.entries(player.skin.parts)
.filter(([part]) => part !== SkinPart.HEAD) // Don't show the head part again
.map(([part, url]) => {
- return (
-
-
-
-
-
-
- Click to view {player.username}'s {part}
-
-
-
- );
+ return ;
})}
diff --git a/src/app/components/player/skin-part-image.tsx b/src/app/components/player/skin-part-image.tsx
index 2f2e938..2726156 100644
--- a/src/app/components/player/skin-part-image.tsx
+++ b/src/app/components/player/skin-part-image.tsx
@@ -13,6 +13,7 @@ import {
DialogTitle,
DialogTrigger,
} from "../ui/dialog";
+import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/tooltip";
type SkinPartImageProps = {
/**
@@ -29,30 +30,46 @@ type SkinPartImageProps = {
* The URL to the skin part.
*/
url: string;
+
+ /**
+ * The size to display the skin part.
+ */
+ size?: number;
};
-export function SkinPartImage({ playerName, part, url }: SkinPartImageProps): ReactElement {
+export function SkinPartImage({ playerName, part, url, size = 64 }: SkinPartImageProps): ReactElement {
+ const partName = capitalizeFirstLetter(part);
+
return (
-
+
+
+
+
+
+