"use client" import { useEffect, useState } from "react"; import { MemoizedReactMarkdown } from '../../../components/MemoizedReactMarkdown' export default function WebSearchPage({ searchParams }) { const [aiResponse, setAiResponse] = useState(""); const [searchTerm, setSearchTerm] = useState() useEffect(() => { setSearchTerm(searchParams.searchTerm) }, [searchParams]) useEffect(() => { const controller = new AbortController(); const signal = controller.signal; async function fetchData() { const response = await fetch(`/api/llm`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ question: searchTerm || "Seattle activities this weekend" }), signal, }); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } else { // Consume the stream as text let responseText = await response.text(); // Try to parse the JSON let json; try { json = JSON.parse(responseText); } catch (error) { console.error("Failed to parse JSON", error); } console.log(json); setAiResponse(json); } } fetchData().catch(error => { console.error('Fetch failed: ', error); }); return () => controller.abort(); }, [searchParams, searchTerm]); console.log(aiResponse); return (
▍ } children[0] = (children[0]).replace("`▍`", "▍") } const match = /language-(\w+)/.exec(className || ''); return !inline ? ( ) : ( {children} ); }, table({ children }) { return ( {children}
); }, th({ children }) { return ( {children} ); }, td({ children }) { return ( {children} ); }, }} > {aiResponse}
); }