/** * @fileoverview Conversation management hook * @module hooks/useConversations */ import { useCallback, useMemo } from "react"; import { useChatbot } from "./useChatbot"; import type { Conversation } from "../core/contexts/ChatbotContext"; export interface UseConversationsReturn { conversations: Conversation[]; currentConversation: Conversation | null; startConversation: (title?: string) => Promise; selectConversation: (conversationId: string) => Promise; deleteConversation: (conversationId: string) => Promise; getConversation: (conversationId: string) => Conversation | undefined; conversationCount: number; } export function useConversations(): UseConversationsReturn { const { conversations, currentConversation, startConversation, selectConversation, deleteConversation, } = useChatbot(); const getConversation = useCallback( (conversationId: string) => { return conversations.find((conv) => conv.id === conversationId); }, [conversations] ); const conversationCount = useMemo( () => conversations.length, [conversations] ); return { conversations, currentConversation, startConversation, selectConversation, deleteConversation, getConversation, conversationCount, }; }