diff --git a/src/app/run/page.tsx b/src/app/run/page.tsx new file mode 100644 index 0000000..d17a98a --- /dev/null +++ b/src/app/run/page.tsx @@ -0,0 +1,168 @@ +import { Play, Pause, RotateCcw, Flag, ChevronRight } from "lucide-react"; +import SplitRow from "@/components/app/SplitRow"; +import { Button } from "@/components/ui/button"; + +const Run = () => { + const splits = [ + { problemName: "Two Sum Dash", splitTime: "0:38", delta: "-0:04", isCompleted: true, pbTime: "0:42" }, + { problemName: "Binary Sprint", splitTime: "1:12", delta: "+0:02", isCompleted: true, pbTime: "0:32" }, + { problemName: "String Scramble", splitTime: "--:--", delta: undefined, isCompleted: false, isCurrent: true, pbTime: "0:55" }, + { problemName: "Linked List Rush", splitTime: "--:--", delta: undefined, isCompleted: false, pbTime: "1:24" }, + { problemName: "Stack Overflow", splitTime: "--:--", delta: undefined, isCompleted: false, pbTime: "1:42" }, + ]; + + const runInfo = { + category: "Any% Easy", + problems: 5, + pbTime: "4:35", + worldRecord: "3:58", + currentAttempt: 47, + }; + + return ( +
+
+
+ {/* Main Timer Area */} +
+ {/* Category Header */} +
+
+
+ Category + + {runInfo.category} +
+

Current Run

+
+
+

Attempt #{runInfo.currentAttempt}

+

WR: {runInfo.worldRecord}

+
+
+ + {/* Timer Display */} +
+ {/* Background glow */} +
+ +
+ {/* Timer */} +
+

1:52.34

+

+ PB: {runInfo.pbTime} | Diff: +0:12 +

+
+ + {/* Progress bar */} +
+
+
+ + {/* Controls */} +
+ + + +
+
+
+ + {/* Current Problem */} +
+
+
+

Problem 3 of 5

+

String Scramble

+
+ Easy +
+ +
+ strings + manipulation +
+ +
+ PB Split: 0:55 + | + Best: 0:38 +
+ + +
+
+ + {/* Splits Sidebar */} +
+
+
+

Splits

+ 2/5 Complete +
+ +
+ {splits.map((split) => ( + + ))} +
+ + {/* Sum of Best */} +
+
+ Sum of Best + 3:51 +
+
+ Personal Best + {runInfo.pbTime} +
+
+
+ + {/* Quick Stats */} +
+

Session Stats

+
+
+ Runs Today + 12 +
+
+ Clean Runs + 3 +
+
+ Resets + 9 +
+
+ Time Played + 1:42:31 +
+
+
+
+
+
+
+ ); +}; + +export default Run;