import React from 'react'; import { Card, Tag, Typography, Space, Divider } from 'antd'; import { CalendarOutlined } from '@ant-design/icons'; import { useNavigate } from 'react-router-dom'; import dayjs from 'dayjs'; import ReactMarkdown from 'react-markdown'; const { Title } = Typography; const CompetitionCard = ({ competition }) => { const navigate = useNavigate(); const getStatusColor = (status) => { switch(status) { case 'published': return 'cyan'; case 'registration': return 'green'; case 'submission': return 'blue'; case 'judging': return 'orange'; case 'ended': return 'red'; default: return 'default'; } }; const getStatusText = (status) => { switch(status) { case 'published': return '即将开始'; case 'registration': return '报名中'; case 'submission': return '作品提交中'; case 'judging': return '评审中'; case 'ended': return '已结束'; default: return '草稿'; } }; return ( {competition.title}
{getStatusText(competition.status)}
} style={{ height: '100%', display: 'flex', flexDirection: 'column', fontSize: 16 }} bodyStyle={{ flex: 1, display: 'flex', flexDirection: 'column', padding: 24 }} onClick={() => navigate(`/competitions/${competition.id}`)} > {competition.title}
, }} > {competition.description}
{dayjs(competition.start_time).format('YYYY-MM-DD')} ~ {dayjs(competition.end_time).format('YYYY-MM-DD')}
); }; export default CompetitionCard;