diff --git a/frontend/src/pages/ChallengeListPage.jsx b/frontend/src/pages/ChallengeListPage.jsx index ece5f5b..7ce2a2f 100644 --- a/frontend/src/pages/ChallengeListPage.jsx +++ b/frontend/src/pages/ChallengeListPage.jsx @@ -16,12 +16,17 @@ const TYPE_LABEL = { export default function ChallengeListPage() { const [challenges, setChallenges] = useState([]) + const [passedIds, setPassedIds] = useState(new Set()) const [error, setError] = useState(null) useEffect(() => { - api.get('/challenges') - .then(res => setChallenges(res.data)) - .catch(() => setError('Failed to load challenges.')) + Promise.all([ + api.get('/challenges'), + api.get('/submissions/me/passed'), + ]).then(([challengesRes, passedRes]) => { + setChallenges(challengesRes.data) + setPassedIds(new Set(passedRes.data)) + }).catch(() => setError('Failed to load challenges.')) }, []) return ( @@ -37,6 +42,7 @@ export default function ChallengeListPage() {
| # | Title | Type | @@ -49,6 +55,9 @@ export default function ChallengeListPage() { key={c.id} style={{ borderBottom: '1px solid #1a202c' }} > ++ {passedIds.has(c.id) ? '✓' : ''} + | {i + 1} |
diff --git a/src/main/java/no/hvl/schemalab/controller/SubmissionController.java b/src/main/java/no/hvl/schemalab/controller/SubmissionController.java
index 4dfc6af..fa97e0f 100644
--- a/src/main/java/no/hvl/schemalab/controller/SubmissionController.java
+++ b/src/main/java/no/hvl/schemalab/controller/SubmissionController.java
@@ -58,4 +58,16 @@ public List |
|---|