@restnfeel/agentc-starter-kit
Version:
한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템
51 lines (44 loc) • 1.32 kB
text/typescript
/**
* @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<Conversation>;
selectConversation: (conversationId: string) => Promise<void>;
deleteConversation: (conversationId: string) => Promise<void>;
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,
};
}