"use client"; import { useState, useTransition } from "react"; import { Eye, EyeOff, Save } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Md } from "@/app/learn/md"; import { extractQuiz } from "@/lib/quiz-parse"; import { updateMathPoint } from "./actions"; // xuchao: 数学课程编辑器——结构同语法编辑器:改标题/摘要/课文 markdown,可预览,保存即生效 export function EditorForm({ pointId, initialTitle, initialSummary, initialMd, }: { pointId: string; initialTitle: string; initialSummary: string | null; initialMd: string; }) { const [title, setTitle] = useState(initialTitle); const [summary, setSummary] = useState(initialSummary ?? ""); const [md, setMd] = useState(initialMd); const [preview, setPreview] = useState(false); const [msg, setMsg] = useState<{ ok?: boolean; text: string } | null>(null); const [pending, startTransition] = useTransition(); const quizCount = extractQuiz(md).length; const save = () => { setMsg(null); startTransition(async () => { const r = await updateMathPoint(pointId, { title, summary, md }); if (r.error) setMsg({ text: r.error }); else setMsg({ ok: true, text: "已保存,孩子端立即生效" }); }); }; return (
{msg.text}
)}