import { useState } from 'react'; import { Search, Globe, Zap, ExternalLink } from 'lucide-react'; export default function SearchEngine() { const [query, setQuery] = useState(''); const [engine, setEngine] = useState('tavily'); const [results, setResults] = useState([]); const [loading, setLoading] = useState(false); const handleSearch = async (e) => { e.preventDefault(); if (!query.trim()) return; setLoading(true); setResults([]); try { const res = await fetch('/api/search', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ query, engine }), }); const data = await res.json(); setResults(data.results || []); } catch (err) { console.error('Search failed', err); setResults([]); } finally { setLoading(false); } }; return (

Unified Search

setQuery(e.target.value)} placeholder={`Search using ${engine === 'tavily' ? 'Tavily AI' : 'SearXNG'}...`} className="w-full bg-slate-900 border border-slate-600 rounded-lg pl-10 pr-4 py-3 text-white placeholder-slate-500 focus:ring-2 focus:ring-yellow-500 focus:border-transparent outline-none transition-all" />
{loading ? (
Searching the web...
) : results.length > 0 ? ( results.map((result, i) => (