diff --git a/AgentCompany-New/src/renderer/src/pages/chat/ChatConversation.tsx b/AgentCompany-New/src/renderer/src/pages/chat/ChatConversation.tsx index c4024210..11173758 100644 --- a/AgentCompany-New/src/renderer/src/pages/chat/ChatConversation.tsx +++ b/AgentCompany-New/src/renderer/src/pages/chat/ChatConversation.tsx @@ -1,4 +1,4 @@ -import type { FormEvent, MutableRefObject } from "react"; +import { useState, type FormEvent, type MutableRefObject } from "react"; import { AvatarStack, Icon, IconButton } from "../../shared/ui"; import type { ApprovalRecord, @@ -53,13 +53,18 @@ export function ChatConversation({ onSubmit: (event: FormEvent) => void; composerRef: MutableRefObject; }) { + const [query, setQuery] = useState(""); + const trimmed = query.trim().toLowerCase(); + const visibleRoots = trimmed + ? rootMessages.filter((message) => message.bodyMd.toLowerCase().includes(trimmed)) + : rootMessages; return (
- {space && } + {space && }
{space && ( void; }) { + const [searchOpen, setSearchOpen] = useState(false); + const toggleSearch = () => { + setSearchOpen((open) => { + if (open) onQueryChange(""); + return !open; + }); + }; return (
@@ -114,8 +130,20 @@ function ConversationHeader({ {space.topic}
- {participants.length > 0 && } - + {searchOpen && ( + onQueryChange(event.target.value)} + onKeyDown={(event) => { if (event.key === "Escape") toggleSearch(); }} + style={{ width: 200, height: 28, padding: "0 10px" }} + /> + )} + {!searchOpen && participants.length > 0 && } +