diff --git a/pages/index.tsx b/pages/index.tsx index 68e0435..e04e22b 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -17,6 +17,7 @@ const Home: NextPage = () => { const [Gita, setGita] = useState(""); const [language, setLanguage] = useState("Professional"); const [generatedGitas, setGeneratedGitas] = useState(""); + const [errorMessage, setErrorMessage] = useState("") console.log("Streamed response: ", generatedGitas); const prompt = @@ -29,39 +30,47 @@ const Home: NextPage = () => { e.preventDefault(); setGeneratedGitas(""); setLoading(true); - const response = await fetch("/api/generate", { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ - prompt, - }), - }); - console.log("Edge function returned."); + setErrorMessage(""); + try { + const response = await fetch("/api/generate", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + prompt, + }), + }); + console.log("Edge function returned."); + + if (!response.ok) { + // throw new Error(response.statusText); + setErrorMessage(`${response.statusText}. Please try again later.` || "Something went wrong. Please try again later.") + } - if (!response.ok) { - throw new Error(response.statusText); - } - - // This data is a ReadableStream - const data = response.body; - if (!data) { - return; - } + // This data is a ReadableStream + const data = response.body; + if (!data) { + return; + } - const reader = data.getReader(); - const decoder = new TextDecoder(); - let done = false; + const reader = data.getReader(); + const decoder = new TextDecoder(); + let done = false; - while (!done) { - const { value, done: doneReading } = await reader.read(); - done = doneReading; - const chunkValue = decoder.decode(value); - setGeneratedGitas((prev) => prev + chunkValue); + while (!done) { + const { value, done: doneReading } = await reader.read(); + done = doneReading; + const chunkValue = decoder.decode(value); + setGeneratedGitas((prev) => prev + chunkValue); + } + } catch(e) { + console.log(e) + // console.log("e.message", e.message) + setErrorMessage("Something went wrong. Please try again later.") + } finally { + setLoading(false); } - - setLoading(false); }; return ( @@ -92,7 +101,10 @@ const Home: NextPage = () => { "How can I find inner peace?" } /> - + {/* Display error message below */} + {errorMessage && ( +

{errorMessage}

+ )} {!loading && (