import {
Alert,
Box,
Button,
Card,
Chip,
Stack,
Table,
TableCell,
TableHead,
TableRow,
Typography,
} from '@mui/material'
import { useNavigate } from 'react-router'
import { useCompareStore } from '../../stores/compareStore'
import {
CompareEmptyState,
CompareColumnHeader,
AICompareSummary,
CompareCriteriaCard,
CompareTableBody,
} from '../../components/compare'
import { AddToPipelineDialog } from '../../components/shortlist'
import {
LABEL_SX,
DATA_SX,
} from '../../components/compare/compareUtils'
import { useCompareData } from '../../hooks/useCompareData'
// ── Main component ────────────────────────────────────────────────────────────
export default function Compare() {
const navigate = useNavigate()
const { compareItems, removeFromCompare, clearCompare } = useCompareStore()
const {
aiSummary,
aiLoading,
activeNeed,
relevantCriteria,
overallWinnerIdx,
bestScoreIdx,
worstConfIdx,
worstDQIdx,
missingCriticalCounts,
maxMissingCritical,
} = useCompareData(compareItems)
if (compareItems.length === 0) {
return (
Vergleich
)
}
return (
{/* Page header */}
Vergleich
{/* Mobile notice */}
Die Vergleichsansicht ist für Desktop optimiert. Für beste Erfahrung auf einem grösseren Bildschirm öffnen.
{/* Desktop table */}
{/* AI Summary */}
= 2} />
{/* Criteria Head-to-Head */}
{activeNeed && relevantCriteria.length > 0 && (
)}
{/* Column headers */}
Kriterium
{compareItems.map(item => (
removeFromCompare(item.matchId)} />
))}
{/* Add more prompt */}
{compareItems.length < 4 && (
Weiteres Ergebnis hinzufügen
Bis zu {4 - compareItems.length} weitere{4 - compareItems.length === 1 ? 's' : ''} Ergebnis{4 - compareItems.length === 1 ? '' : 'se'} möglich
)}
)
}