"use client"; import { cn } from "@/lib/utils"; import { useEffect } from "react"; import { ArrowLeftIcon } from "lucide-react"; import { Button } from "@/components/ui/button"; import { useProblem } from "@/hooks/use-problem"; import MdxPreview from "@/components/mdx-preview"; import { useDockviewStore } from "@/stores/dockview"; import { Separator } from "@/components/ui/separator"; import { getStatusColorClass, statusMap } from "@/lib/status"; import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area"; import { formatDistanceToNow, isBefore, subDays, format } from "date-fns"; export default function DetailsPage() { const { api, submission } = useDockviewStore(); const { editorLanguageConfigs, problemId } = useProblem(); useEffect(() => { if (!api || !problemId || !submission?.id) return; if (problemId !== submission.problemId) { const detailsPanel = api.getPanel("Details"); if (detailsPanel) { api.removePanel(detailsPanel); } } }, [api, problemId, submission]) if (!api || !problemId || !submission?.id) return null; const createdAt = new Date(submission.createdAt); const submittedDisplay = isBefore(createdAt, subDays(new Date(), 1)) ? format(createdAt, "yyyy-MM-dd") : formatDistanceToNow(createdAt, { addSuffix: true }); const source = `\`\`\`${submission?.language}\n${submission?.code}\n\`\`\``; const handleClick = () => { if (!api) return; const submissionsPanel = api.getPanel("Submissions"); submissionsPanel?.api.setActive(); const detailsPanel = api.getPanel("Details"); if (detailsPanel) { api.removePanel(detailsPanel); } } return (