| import { useState } from "react"; | |
| import reactLogo from "./assets/react.svg"; | |
| import viteLogo from "./assets/vite.svg"; | |
| import { BackendHealthCheck } from "./components/BackendHealthCheck"; | |
| function App() { | |
| const [count, setCount] = useState(0); | |
| return ( | |
| <div className="min-h-screen bg-gray-900 text-white flex items-center justify-center"> | |
| <div className="max-w-4xl mx-auto p-8 text-center"> | |
| {/* Backend Status Indicator - Only shown in development mode */} | |
| <BackendHealthCheck /> | |
| <div className="flex justify-center space-x-8 mb-8"> | |
| <a href="https://vite.dev" target="_blank" className="hover:scale-110 transition-transform duration-300"> | |
| <img src={viteLogo} className="h-24 w-24 p-6 hover:drop-shadow-[0_0_2em_#646cffaa] transition-all duration-300" alt="Vite logo" /> | |
| </a> | |
| <a href="https://react.dev" target="_blank" className="hover:scale-110 transition-transform duration-300"> | |
| <img src={reactLogo} className="h-24 w-24 p-6 hover:drop-shadow-[0_0_2em_#61dafbaa] transition-all duration-300 animate-spin" alt="React logo" /> | |
| </a> | |
| </div> | |
| <h1 className="text-5xl font-bold mb-8">Vite + React</h1> | |
| <div className="bg-gray-800 rounded-lg p-8 mb-8"> | |
| <button | |
| onClick={() => setCount((count) => count + 1)} | |
| className="bg-blue-600 hover:bg-blue-700 text-white font-medium py-3 px-6 rounded-lg border border-transparent hover:border-blue-400 transition-all duration-250 focus:outline-none focus:ring-4 focus:ring-blue-500/50 mb-4" | |
| > | |
| count is {count} | |
| </button> | |
| <p className="text-gray-300"> | |
| Edit <code className="bg-gray-700 px-2 py-1 rounded text-sm">src/App.tsx</code> and save to test HMR | |
| </p> | |
| </div> | |
| <p className="text-gray-400"> | |
| Click on the Vite and React logos to learn more | |
| </p> | |
| </div> | |
| </div> | |
| ); | |
| } | |
| export default App; | |