diff --git a/frontend/src/pages/leaderboard/components/CodeDialog.tsx b/frontend/src/pages/leaderboard/components/CodeDialog.tsx index 23510d3..9db7766 100644 --- a/frontend/src/pages/leaderboard/components/CodeDialog.tsx +++ b/frontend/src/pages/leaderboard/components/CodeDialog.tsx @@ -1,5 +1,6 @@ import { Box, Button, Dialog, DialogContent, DialogTitle } from "@mui/material"; import { useState } from "react"; +import { Link } from "react-router-dom"; import CodeBlock from "../../../components/codeblock/CodeBlock"; export function CodeDialog({ @@ -11,7 +12,18 @@ export function CodeDialog({ }) { const [open, setOpen] = useState(false); - if (!code) return {fileName}; + if (!code) + return ( + + ); return ( <> diff --git a/frontend/src/pages/leaderboard/components/RankingLists.tsx b/frontend/src/pages/leaderboard/components/RankingLists.tsx index fbc7d1e..c606ab7 100644 --- a/frontend/src/pages/leaderboard/components/RankingLists.tsx +++ b/frontend/src/pages/leaderboard/components/RankingLists.tsx @@ -67,6 +67,10 @@ const styles: Record> = { color: "text.secondary", minWidth: "90px", }, + loc: { + fontFamily: "monospace", + color: "text.secondary", + }, }; export default function RankingsList({ @@ -164,12 +168,12 @@ export default function RankingsList({ {item.user_name} {getMedalIcon(item.rank)} - + {formatMicroseconds(item.score)} - + {item.prev_score > 0 && `+${formatMicroseconds(item.prev_score)}`} @@ -183,6 +187,16 @@ export default function RankingsList({ /> + + + {(() => { + const code = codes.get(item?.submission_id); + if (!code) return ""; + const lines = code.split("\n").length; + return `${lines} LOC`; + })()} + + ))}