+ {/* Content */}
+
{/* Header */}
@@ -66,25 +67,30 @@ const ProblemCard = ({
))}
- {/* Stats */}
-
- {bestTime && (
-
-
- {bestTime}
-
- )}
-
-
- {attempts} runs
-
-
+ {/* Spacer */}
+
- {/* Quick run button - appears on hover */}
-
-
+ {/* Stats + Action */}
+
+
+ {bestTime && (
+
+
+ {bestTime}
+
+ )}
+
+
+ {attempts} runs
+
+
+
+ {/* Quick run button */}
+
+
+
diff --git a/src/app/run/page.tsx b/src/app/run/page.tsx
index 4b150d8..ee44840 100644
--- a/src/app/run/page.tsx
+++ b/src/app/run/page.tsx
@@ -9,6 +9,7 @@ import Editor from "./components/Editor";
import useAction from "@/hook/use-action";
import { getLiveRun } from "@/modules/live-run/actions";
import ProblemCard from "../problems/components/ProblemCard";
+import ProfileCard from "@/components/app/ProfileCard";
export default function Run() {
const [runInfo] = useAction(getLiveRun);
@@ -23,17 +24,17 @@ export default function Run() {
-
-
+
+
+
+ {runInfo && }
-
-
- {runInfo && }
-
{/* Editor */}
diff --git a/src/components/app/ProfileCard.tsx b/src/components/app/ProfileCard.tsx
new file mode 100644
index 0000000..b6e878a
--- /dev/null
+++ b/src/components/app/ProfileCard.tsx
@@ -0,0 +1,37 @@
+import { Badge } from "../ui/badge";
+import { Card, CardContent } from "../ui/card";
+
+export default function ProfileCard({
+ user,
+}: {
+ user: { username: string; rank: number };
+}) {
+ return (
+
+
+
+
+ {/* Avatar */}
+
+

+
+
+ #{user.rank}
+
+
+
+ {/* User Info */}
+
+
+ {user.username}
+
+ World Record Holder
+
+
+
+ );
+}