import { useState, useEffect } from "react"; import "./App.css"; import Options from "./components/Options"; import Recipe from "./components/Recipe"; import { setModelLayers } from "./utils/modelCookies"; import { useAPI } from "./hooks/useAPI"; import { devError } from "./utils/devLogger"; function App() { const [models, setModels] = useState([]); const [selectedModel1, setSelectedModel1] = useState(""); const [selectedModel2, setSelectedModel2] = useState(""); const [layerRecipe, setLayerRecipe] = useState([]); const [embeddingLambdas, setEmbeddingLambdas] = useState([0.5, 0.5]); const [linearLambdas, setLinearLambdas] = useState([0.5, 0.5]); const [mergedName, setMergedName] = useState("merged"); const [numLayers, setNumLayers] = useState(12); const [isSpaceLoading, setIsSpaceLoading] = useState(true); const { fetchModels, checkTaskStatus } = useAPI(); useEffect(() => { setModelLayers("svamp", 24); setModelLayers("tinystories", 24); const loadModels = async () => { try { const taskId = await fetchModels(); if (taskId) { checkTaskStatus( taskId, (result) => { if (result && Array.isArray(result.response)) { setModels(result.response); setIsSpaceLoading(false); } }, (error) => { devError("Failed to load models:", error); setIsSpaceLoading(false); // Set to false even on error } ); } else { setIsSpaceLoading(false); } } catch (error) { devError("Error fetching models:", error); setIsSpaceLoading(false); // Set to false even on error } }; loadModels(); }, [fetchModels, checkTaskStatus]); return (
{/* GitHub Corner */} {/* Loading Overlay */} {isSpaceLoading && (

Space is starting up...

Initializing Evolution Transformer

)}
); } export default App;