import React, { useEffect, useState } from 'react'; import { searchTopics } from '@/lib/services/search'; interface SearchAnswer { title: string; url: string; excerpt: string; } interface SearchOutputProps { query: string; showLoadMore?: boolean; } export default function SearchOutput({ query, showLoadMore = false }: SearchOutputProps) { const [results, setResults] = useState([]); const [loading, setLoading] = useState(true); const [loadingMore, setLoadingMore] = useState(false); const [cannotSearchMore, setCannotSearchMore] = useState(false); useEffect(() => { searchTopics(query, { useWebSearch: true }) .then(response => { setResults(response.results); setCannotSearchMore(response.cannot_search_more); }) .finally(() => setLoading(false)); }, [query]); const handleLoadMore = async () => { setLoadingMore(true); try { const response = await searchTopics(query, { pastResults: results, useWebSearch: true }); setResults(prev => [...prev, ...response.results]); setCannotSearchMore(response.cannot_search_more); } catch (error) { console.error('Failed to load more results:', error); } finally { setLoadingMore(false); } }; if (loading) return
Loading...
; if (!results.length) return
No results
; return (
{results.map((result, i) => (

{result.title.replace(/_/g, ' ')}

$1'), }} /> ))}

{showLoadMore && (
)}
); }