UNPKG

@restnfeel/agentc-starter-kit

Version:

한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템

60 lines (51 loc) 1.49 kB
/** * @fileoverview Search functionality hook * @module hooks/useSearch */ import { useCallback, useState } from "react"; import { useChatbot } from "./useChatbot"; import type { Document } from "../core/contexts/ChatbotContext"; export interface UseSearchReturn { searchResults: Document[]; isSearching: boolean; searchQuery: string; search: (query: string, limit?: number) => Promise<void>; clearSearch: () => void; hasResults: boolean; } export function useSearch(): UseSearchReturn { const { searchSimilarDocuments } = useChatbot(); const [searchResults, setSearchResults] = useState<Document[]>([]); const [isSearching, setIsSearching] = useState(false); const [searchQuery, setSearchQuery] = useState(""); const search = useCallback( async (query: string, limit = 10) => { if (!query.trim()) return; setIsSearching(true); setSearchQuery(query); try { const results = await searchSimilarDocuments(query, limit); setSearchResults(results); } catch (error) { console.error("Search failed:", error); setSearchResults([]); } finally { setIsSearching(false); } }, [searchSimilarDocuments] ); const clearSearch = useCallback(() => { setSearchResults([]); setSearchQuery(""); setIsSearching(false); }, []); return { searchResults, isSearching, searchQuery, search, clearSearch, hasResults: searchResults.length > 0, }; }