| import { useState } from "react"; | |
| import { Button } from "@/components/ui/button"; | |
| import { Input } from "@/components/ui/input"; | |
| import { Send } from "lucide-react"; | |
| interface ChatInputProps { | |
| onSendMessage: (message: string) => void; | |
| disabled?: boolean; | |
| } | |
| const ChatInput = ({ onSendMessage, disabled = false }: ChatInputProps) => { | |
| const [message, setMessage] = useState(""); | |
| const handleSubmit = (e: React.FormEvent) => { | |
| e.preventDefault(); | |
| if (message.trim() && !disabled) { | |
| onSendMessage(message.trim()); | |
| setMessage(""); | |
| } | |
| }; | |
| return ( | |
| <div className="bg-header-bg border-t border-header-border p-4 input-shadow"> | |
| <form onSubmit={handleSubmit} className="flex gap-2"> | |
| <Input | |
| value={message} | |
| onChange={(e) => setMessage(e.target.value)} | |
| placeholder="Type your message..." | |
| disabled={disabled} | |
| className="flex-1 bg-input-bg border-input-border focus:border-input-focus-border text-sm py-3 px-4 rounded-xl" | |
| /> | |
| <Button | |
| type="submit" | |
| disabled={!message.trim() || disabled} | |
| className="send-button-gradient text-send-button-fg hover:opacity-90 transition-opacity rounded-xl px-4 py-3 min-w-[44px]" | |
| > | |
| <Send className="w-4 h-4" /> | |
| </Button> | |
| </form> | |
| </div> | |
| ); | |
| }; | |
| export default ChatInput; |