import { cn } from "../../../lib/cn"; import { IconError, IconSuccess } from "../../../assets/icons/missions"; import { useNavigate } from "react-router-dom"; export interface MissionItemProps { id: number; authorId: number; name: string; difficulty: "Easy" | "Medium" | "Hard"; tags: string[]; timeLimit: number; memoryLimit: number; createdAt: string; updatedAt: string; type: "first" | "second"; status: "empty" | "success" | "error"; } export function formatMilliseconds(ms: number): string { const rounded = Math.round(ms) / 1000; const formatted = rounded.toString().replace(/\.?0+$/, ''); return `${formatted} c`; } export function formatBytesToMB(bytes: number): string { const megabytes = Math.floor(bytes / (1024 * 1024)); return `${megabytes} МБ`; } const MissionItem: React.FC = ({ id, name, difficulty, timeLimit, memoryLimit, type, status }) => { const navigate = useNavigate(); return (
{navigate(`/mission/${id}`)}} >
#{id}
{name}
стандартный ввод/вывод {formatMilliseconds(timeLimit)}, {formatBytesToMB(memoryLimit)}
{difficulty}
{ status == "error" && } { status == "success" && }
); }; export default MissionItem;