"use client"; import { useState } from "react"; import { useSession } from "next-auth/react"; import { LoginModal } from "@/components/common/LoginModal"; interface ForumEditorProps { onSubmit: (content: string) => void; placeholder?: string; maxLength?: number; submitText?: string; disabled?: boolean; } export default function ForumEditor({ onSubmit, placeholder = "写下你的想法...", maxLength = 10000, submitText = "发布", disabled = false, }: ForumEditorProps) { const { data: session, status } = useSession(); const [content, setContent] = useState(""); const [submitting, setSubmitting] = useState(false); const [showLoginModal, setShowLoginModal] = useState(false); const [error, setError] = useState(""); const handleSubmit = async () => { if (status !== "authenticated") { setShowLoginModal(true); return; } const trimmed = content.trim(); if (!trimmed) { setError("内容不能为空"); return; } if (trimmed.length > maxLength) { setError(`内容不能超过${maxLength}个字符`); return; } setSubmitting(true); setError(""); try { await onSubmit(trimmed); setContent(""); } catch (err) { setError(err instanceof Error ? err.message : "提交失败"); } finally { setSubmitting(false); } }; return ( <>