/** * @fileoverview Message management hook * @module hooks/useMessages */ import { useCallback, useMemo } from "react"; import { useChatbot } from "./useChatbot"; import type { ConversationMessage } from "../core/contexts/ChatbotContext"; export interface UseMessagesReturn { messages: ConversationMessage[]; sendMessage: (content: string) => Promise; isProcessing: boolean; lastMessage: ConversationMessage | null; messageCount: number; getMessageHistory: ( conversationId?: string ) => Promise; } export function useMessages(): UseMessagesReturn { const { currentConversation, sendMessage, isProcessing, getConversationHistory, } = useChatbot(); const messages = useMemo(() => { return currentConversation?.messages || []; }, [currentConversation]); const lastMessage = useMemo(() => { return messages[messages.length - 1] || null; }, [messages]); const messageCount = useMemo(() => messages.length, [messages]); return { messages, sendMessage, isProcessing, lastMessage, messageCount, getMessageHistory: getConversationHistory, }; }