@restnfeel/agentc-starter-kit
Version:
한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템
48 lines (40 loc) • 1.18 kB
text/typescript
/**
* @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<ConversationMessage>;
isProcessing: boolean;
lastMessage: ConversationMessage | null;
messageCount: number;
getMessageHistory: (
conversationId?: string
) => Promise<ConversationMessage[]>;
}
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,
};
}