feat(02-01): register Ranking tab in round detail page + create component stub

- Create src/components/admin/round/ranking-dashboard.tsx (stub with placeholder text)
- Import RankingDashboard in round detail page.tsx
- Add Ranking tab entry guarded by isEvaluation (uses existing BarChart3 icon)
- Add TabsContent block rendering RankingDashboard with competitionId + roundId props
This commit is contained in:
2026-02-27 09:41:59 +01:00
parent 68422e6c26
commit 8f71527353
2 changed files with 23 additions and 0 deletions

View File

@@ -89,6 +89,7 @@ import { ProjectStatesTable } from '@/components/admin/round/project-states-tabl
// SubmissionWindowManager removed — round dates + file requirements in Config are sufficient
import { FileRequirementsEditor } from '@/components/admin/round/file-requirements-editor'
import { FilteringDashboard } from '@/components/admin/round/filtering-dashboard'
import { RankingDashboard } from '@/components/admin/round/ranking-dashboard'
import { CoverageReport } from '@/components/admin/assignment/coverage-report'
import { AssignmentPreviewSheet } from '@/components/admin/assignment/assignment-preview-sheet'
import { AnimatedCard } from '@/components/shared/animated-container'
@@ -842,6 +843,7 @@ export default function RoundDetailPage() {
{ value: 'projects', label: 'Projects', icon: Layers },
...(isFiltering ? [{ value: 'filtering', label: 'Filtering', icon: Shield }] : []),
...(isEvaluation ? [{ value: 'assignments', label: 'Assignments & Jury', icon: ClipboardList }] : []),
...(isEvaluation ? [{ value: 'ranking', label: 'Ranking', icon: BarChart3 }] : []),
...(hasJury && !isEvaluation ? [{ value: 'jury', label: 'Jury', icon: Users }] : []),
{ value: 'config', label: 'Config', icon: Settings },
...(hasAwards ? [{ value: 'awards', label: 'Awards', icon: Trophy }] : []),
@@ -2046,6 +2048,13 @@ export default function RoundDetailPage() {
</TabsContent>
)}
{/* ═══════════ RANKING TAB (EVALUATION rounds) ═══════════ */}
{isEvaluation && (
<TabsContent value="ranking" className="space-y-4">
<RankingDashboard competitionId={competitionId} roundId={roundId} />
</TabsContent>
)}
{/* ═══════════ CONFIG TAB ═══════════ */}
<TabsContent value="config" className="space-y-6">
{/* Round Dates */}

View File

@@ -0,0 +1,14 @@
'use client'
type RankingDashboardProps = {
competitionId: string
roundId: string
}
export function RankingDashboard({ competitionId: _competitionId, roundId: _roundId }: RankingDashboardProps) {
return (
<div className="text-muted-foreground text-sm p-4">
Ranking dashboard coming soon...
</div>
)
}