feat: Add new chat and resize input

This commit is contained in:
gpt-engineer-app[bot]
2025-10-16 19:12:21 +00:00
parent 873cc533aa
commit 821526295d
3 changed files with 19 additions and 3 deletions
+1 -1
View File
@@ -90,7 +90,7 @@ export const ChatInput = ({ onSendMessage }: ChatInputProps) => {
onChange={(e) => setMessage(e.target.value)} onChange={(e) => setMessage(e.target.value)}
onKeyDown={handleKeyDown} onKeyDown={handleKeyDown}
placeholder="Digite sua mensagem..." placeholder="Digite sua mensagem..."
className="min-h-[60px] max-h-[200px] resize-none border-0 bg-transparent focus-visible:ring-0 focus-visible:ring-offset-0 pr-24" className="min-h-[60px] max-h-[400px] resize-y border-0 bg-transparent focus-visible:ring-0 focus-visible:ring-offset-0 pr-24"
/> />
<div className="absolute right-2 bottom-2 flex items-center gap-1"> <div className="absolute right-2 bottom-2 flex items-center gap-1">
+3 -2
View File
@@ -46,9 +46,10 @@ interface ChatFolder {
interface ChatSidebarProps { interface ChatSidebarProps {
isCollapsed: boolean; isCollapsed: boolean;
onToggleCollapse: () => void; onToggleCollapse: () => void;
onNewChat: () => void;
} }
export const ChatSidebar = ({ isCollapsed, onToggleCollapse }: ChatSidebarProps) => { export const ChatSidebar = ({ isCollapsed, onToggleCollapse, onNewChat }: ChatSidebarProps) => {
const [searchQuery, setSearchQuery] = useState(""); const [searchQuery, setSearchQuery] = useState("");
const [isCreateFolderOpen, setIsCreateFolderOpen] = useState(false); const [isCreateFolderOpen, setIsCreateFolderOpen] = useState(false);
const [isEditFolderOpen, setIsEditFolderOpen] = useState(false); const [isEditFolderOpen, setIsEditFolderOpen] = useState(false);
@@ -218,7 +219,7 @@ export const ChatSidebar = ({ isCollapsed, onToggleCollapse }: ChatSidebarProps)
/> />
</div> </div>
<Button className="w-full gap-2 cyber-glow" variant="default"> <Button className="w-full gap-2 cyber-glow" variant="default" onClick={onNewChat}>
<Plus className="w-4 h-4" /> <Plus className="w-4 h-4" />
Novo Chat Novo Chat
</Button> </Button>
+15
View File
@@ -20,6 +20,7 @@ interface Message {
export const ChatView = () => { export const ChatView = () => {
const [isChatSidebarCollapsed, setIsChatSidebarCollapsed] = useState(false); const [isChatSidebarCollapsed, setIsChatSidebarCollapsed] = useState(false);
const [selectedModel, setSelectedModel] = useState("ChatGPT 4.1"); const [selectedModel, setSelectedModel] = useState("ChatGPT 4.1");
const [currentChatId, setCurrentChatId] = useState("1");
const [messages, setMessages] = useState<Message[]>([ const [messages, setMessages] = useState<Message[]>([
{ {
id: "1", id: "1",
@@ -31,6 +32,19 @@ export const ChatView = () => {
const [isLoading, setIsLoading] = useState(false); const [isLoading, setIsLoading] = useState(false);
const handleNewChat = () => {
const newChatId = Date.now().toString();
setCurrentChatId(newChatId);
setMessages([
{
id: "1",
role: "assistant",
content: "Olá! Sou o assistente HGTX Codex. Como posso ajudá-lo hoje?",
model: selectedModel,
},
]);
};
const handleSendMessage = (content: string, files?: File[]) => { const handleSendMessage = (content: string, files?: File[]) => {
const newMessage: Message = { const newMessage: Message = {
id: Date.now().toString(), id: Date.now().toString(),
@@ -66,6 +80,7 @@ export const ChatView = () => {
<ChatSidebar <ChatSidebar
isCollapsed={isChatSidebarCollapsed} isCollapsed={isChatSidebarCollapsed}
onToggleCollapse={() => setIsChatSidebarCollapsed(!isChatSidebarCollapsed)} onToggleCollapse={() => setIsChatSidebarCollapsed(!isChatSidebarCollapsed)}
onNewChat={handleNewChat}
/> />
{/* Main Chat Area */} {/* Main Chat Area */}