import React, { useState } from 'react'; import { InputTextarea } from 'primereact/inputtextarea'; import GenericButton from '@/components/buttons/GenericButton'; import { Panel } from 'primereact/panel'; import { useNDKContext } from "@/context/NDKContext"; import { NDKEvent } from "@nostr-dev-kit/ndk"; import { useToast } from '@/hooks/useToast'; const MessageInput = ({ onMessageSent }) => { const [message, setMessage] = useState(''); const [collapsed, setCollapsed] = useState(true); const [isSubmitting, setIsSubmitting] = useState(false); const { ndk, addSigner } = useNDKContext(); const { showToast } = useToast(); const handleSubmit = async () => { if (!message.trim() || !ndk || isSubmitting) return; setIsSubmitting(true); try { if (!ndk.signer) { await addSigner(); } const event = new NDKEvent(ndk); event.kind = 1; event.content = message; event.tags = [['t', 'plebdevs']]; await event.publish(); showToast('success', 'Message Sent', 'Your message has been sent to the PlebDevs community.'); setMessage(''); // Clear the input after successful publish onMessageSent(); // Call this function to close the accordion } catch (error) { console.error("Error publishing message:", error); showToast('error', 'Error', 'There was an error sending your message. Please try again.'); } finally { setIsSubmitting(false); } }; const headerTemplate = (options) => { return (

New Message

); }; return ( setCollapsed(e.value)} className="w-full" >
setMessage(e.target.value)} rows={2} cols={10} autoResize placeholder="Type your message here..." className="w-full" />
); }; export default MessageInput;