"use client"; import { useState, useEffect } from "react"; import { Label } from "@/components/ui/label"; import { Input } from "@/components/ui/input"; import { Button } from "@/components/ui/button"; import MdxPreview from "@/components/mdx-preview"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { CoreEditor } from '@/components/core-editor'; import { getProblemData } from '@/app/actions/getProblem'; import { Accordion } from "@/components/ui/accordion"; // ← 这里导入 Accordion export default function EditDescriptionPanel({ problemId, }: { problemId: string; }) { const [description, setDescription] = useState({ title: `Description for Problem ${problemId}`, content: `Description content for Problem ${problemId}...` }); const [viewMode, setViewMode] = useState<'edit' | 'preview' | 'compare'>('edit'); useEffect(() => { async function fetchData() { try { const problemData = await getProblemData(problemId); setDescription({ title: problemData.title, content: problemData.description }); } catch (error) { console.error('获取题目信息失败:', error); } } fetchData(); }, [problemId]); return ( 题目描述
setDescription({...description, title: e.target.value})} placeholder="输入题目标题" />
setDescription({ ...description, content: newContent || '' }) } language="markdown" className="absolute inset-0 rounded-md border border-input" />
{viewMode !== 'edit' && (
)}
); }