import React, { ChangeEventHandler, FormEventHandler, KeyboardEventHandler, useEffect, useRef, useState, } from 'react'; import { PaperPlaneIcon } from './icons/paper-plane-icon'; interface ComposerProps { onSubmit: (message: string) => void; disabled?: boolean; placeholder?: string; } export function Composer({ onSubmit, disabled, placeholder = 'Send a message…', }: ComposerProps) { const [isSubmitting, setIsSubmitting] = useState(false); const [value, setValue] = useState(''); const ref = useRef(null); const handleSubmit = async () => { try { setIsSubmitting(true); setValue(''); onSubmit(value); } finally { setIsSubmitting(false); } }; const handleSubmitForm: FormEventHandler = (event) => { event.preventDefault(); handleSubmit(); }; const handlePressEnter: KeyboardEventHandler = (e) => { if (e.key !== 'Enter' || e.shiftKey) return; e.preventDefault(); handleSubmit(); return false; }; const handleInputChange: ChangeEventHandler = (e) => setValue(e.target.value); useEffect(() => { if (disabled || !ref.current) return; ref.current.focus(); }, [disabled, ref]); return (
          {value}