ConversationSidebar.tsx 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. "use client";
  2. import { ConversationSummary } from "@/features/agent/types";
  3. import { ConversationHeader } from "./ConversationHeader";
  4. import { ConversationSearch } from "./ConversationSearch";
  5. import { ConversationList } from "./ConversationList";
  6. interface ConversationSidebarProps {
  7. conversations: ConversationSummary[];
  8. selectedConversationId: number | null;
  9. searchQuery: string;
  10. onSearchChange: (value: string) => void;
  11. onSelectConversation: (id: number) => void;
  12. }
  13. export function ConversationSidebar({
  14. conversations,
  15. selectedConversationId,
  16. searchQuery,
  17. onSearchChange,
  18. onSelectConversation,
  19. }: ConversationSidebarProps) {
  20. return (
  21. <div className="w-80 bg-white border-r border-gray-200 flex flex-col min-h-0">
  22. <ConversationHeader />
  23. <ConversationSearch value={searchQuery} onChange={onSearchChange} />
  24. <ConversationList
  25. conversations={conversations}
  26. selectedConversationId={selectedConversationId}
  27. onSelect={onSelectConversation}
  28. searchQuery={searchQuery}
  29. />
  30. </div>
  31. );
  32. }