'use client' import { useState } from 'react' import { useRouter } from 'next/navigation' import Link from 'next/link' import { createProposal } from '@/lib/actions' import { proposalTypes, thresholdRules, } from '@/lib/validations' export function NewProposalForm() { const router = useRouter() const [title, setTitle] = useState('') const [body, setBody] = useState('') const [proposalType, setProposalType] = useState('advisory_poll') const [threshold, setThreshold] = useState('simple_majority') const [openImmediately, setOpenImmediately] = useState(false) const [error, setError] = useState('') const [submitting, setSubmitting] = useState(false) async function handleSubmit(e: React.FormEvent) { e.preventDefault() setSubmitting(true) setError('') const result = await createProposal({ title, body, proposal_type: proposalType, threshold, open_immediately: openImmediately, }) if ('error' in result && result.error) { setError(result.error) setSubmitting(false) return } if ('data' in result && result.data) { router.push(`/proposals/${(result.data as { id: string }).id}`) } else { router.push('/proposals') } } return (
setTitle(e.target.value)} maxLength={200} required className="w-full bg-background border border-border text-foreground font-sans text-sm rounded px-3 py-2 focus:outline-none focus:border-primary" placeholder="Approve new laser station rules" />