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:
@@ -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 */}
|
||||
|
||||
14
src/components/admin/round/ranking-dashboard.tsx
Normal file
14
src/components/admin/round/ranking-dashboard.tsx
Normal 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>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user