import React, { useState } from "react"; import { useNavigate } from "react-router-dom"; // Import useNavigate import { Constellation } from "@/components/Constellation"; import ExploreApps from "@/components/ExploreApps"; // Import the new component import { Features } from "@/components/Features"; import { Footer } from "@/components/Footer"; import Header from "@/components/Header"; // Import the new component import { Hero } from "@/components/Hero"; function App() { const [prompt, setPrompt] = useState(""); // const [generatedHtml, setGeneratedHtml] = useState(null); // Remove generatedHtml state const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(null); const navigate = useNavigate(); // Get navigate function const handleSubmit = async (event: React.FormEvent) => { event.preventDefault(); setIsLoading(true); setError(null); // setGeneratedHtml(null); // Remove console.log("Submitting prompt:", prompt); try { const response = await fetch("/api/apps", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ prompt }), }); // Expecting 202 Accepted status now if (response.status !== 202) { const errorText = await response.text(); throw new Error( `HTTP error! status: ${response.status} - ${ errorText || "Failed to start app generation." }` ); } // Expecting { id: number } in the response const result = (await response.json()) as { id: string; editKey: string; previewKey: string; }; console.log("API Response:", result); window.localStorage.setItem(`app_${result.id}_editKey`, result.editKey); window.localStorage.setItem( `app_${result.id}_previewKey`, result.previewKey ); if (result && typeof result.id === "number") { // Redirect to the app status page navigate(`/apps/${result.id}`); // Don't clear prompt here, user might want to see it on the next page (or we clear it there) } else { console.error("Unexpected API response format:", result); setError("Received unexpected data format from the server."); } // setPrompt(""); // Don't clear prompt here } catch (err) { console.error("Failed to submit prompt:", err); setError( err instanceof Error ? err.message : "An unknown error occurred." ); } finally { setIsLoading(false); } }; return (
{/* Error display */} {error && (
{" "} {/* Added margin-top */} Error: {error}
)} {/* Removed iframe display */} {/* Add the ExploreApps component here */} {" "} {/* Pass setPrompt as the onFork prop */}
); } export default App;