import { useState, useEffect } from 'react'; import { Card, CardContent, CardHeader, CardTitle } from "/components/ui/card"; import { Input } from "/components/ui/input"; import { Textarea } from "/components/ui/textarea"; import { Button } from "/components/ui/button"; import { Label } from "/components/ui/label"; interface Message { id: number; content: string; name: string | null; } export default function PublicMessageBoard() { const [messages, setMessages] = useState([]); const [newMessage, setNewMessage] = useState(''); const [name, setName] = useState(''); const [successMessage, setSuccessMessage] = useState(''); useEffect(() => { const storedMessages = localStorage.getItem('messages'); if (storedMessages) { setMessages(JSON.parse(storedMessages)); } }, []); useEffect(() => { localStorage.setItem('messages', JSON.stringify(messages)); }, [messages]); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); if (newMessage.trim() === '') return; const message: Message = { id: Date.now(), content: newMessage, name: name.trim() || null, }; setMessages((prevMessages) => [message, ...prevMessages]); setNewMessage(''); setName(''); setSuccessMessage('Message posted successfully!'); setTimeout(() => setSuccessMessage(''), 3000); }; return (
Public Message Board
setName(e.target.value)} />