import { useState, useRef } from "react"; import { BrowserRouter, Routes, Route } from "react-router-dom"; import ImageUploader from "./components/ImageUploader"; import ImageCanvas from "./components/ImageCanvas"; import LoginForm from "./components/Loginform"; import Page from "./components/Page"; import useLogout from "./hooks/useLogout"; import useautoLogout from "./hooks/useautoLogout"; import "./styles/App.css"; function MainPage() { const [imageUrl, setImageUrl] = useState(null); const [rawCircles, setRawCircles] = useState([]); const [rawTexts, setRawTexts] = useState([]); const [circles, setCircles] = useState([]); const [texts, setTexts] = useState([]); const [selectedShape, setSelectedShape] = useState(null); const [loaded, setLoaded] = useState(false); const [error, setError] = useState(null); const [imageInfo, setImageInfo] = useState(null); const [user, setUser] = useState(null); const [sessionId, setSessionId] = useState(null); const imgRef = useRef(null); // Shared logout hook const handleLogout = useLogout(sessionId, setUser, setSessionId, setImageUrl); // Auto logout (inactivity + tab close) useautoLogout(sessionId, handleLogout, 100*10 * 1000); return (

Generative AI for Stem Education

{!user ? ( ) : ( <> { setLoaded(false); setError(null); setRawCircles([]); setRawTexts([]); setCircles([]); setTexts([]); setSelectedShape(null); }} /> {error &&
{error}
} {imageUrl && ( )} {selectedShape && ( <>
setSelectedShape(null)} /> )} )} {user && ( )}
); } function App() { return ( } /> } /> ); } export default App;