import React, { useState, useCallback } from 'react' import Breadcrumbs from '../../components/forum/Breadcrumbs' import Button from '../../components/ui/Button' import TextInput from '../../components/ui/TextInput' import RichTextEditor from '../../components/forum/RichTextEditor' import TurnstileField from '../../components/security/TurnstileField' import { populateBotFingerprint } from '../../lib/security/botFingerprint' export default function ForumNewThread({ category, csrfToken, errors = {}, oldValues = {}, captcha = {} }) { const [title, setTitle] = useState(oldValues.title ?? '') const [content, setContent] = useState(oldValues.content ?? '') const [captchaToken, setCaptchaToken] = useState('') const [submitting, setSubmitting] = useState(false) const slug = category?.slug const categoryName = category?.name ?? 'Category' const breadcrumbs = [ { label: 'Home', href: '/' }, { label: 'Forum', href: '/forum' }, { label: categoryName, href: slug ? `/forum/${slug}` : '/forum' }, { label: 'New topic' }, ] const handleSubmit = useCallback(async (e) => { e.preventDefault() if (submitting) return setSubmitting(true) // Standard form submission to keep server-side validation + redirect await populateBotFingerprint(e.currentTarget) e.target.submit() }, [submitting]) return (
New topic