Spaces:
Running
Running
Anish-530 commited on
Commit ·
6ed7f39
1
Parent(s): c475a73
Added backend to status page
Browse files- frontend/app/page.tsx +18 -18
frontend/app/page.tsx
CHANGED
|
@@ -16,7 +16,7 @@ function DeletedToastManager() {
|
|
| 16 |
if (searchParams.get("deleted") === "true") {
|
| 17 |
setDeletedToast(true);
|
| 18 |
setTimeout(() => setDeletedToast(false), 5000);
|
| 19 |
-
|
| 20 |
// Clean up URL
|
| 21 |
const url = new URL(window.location.href);
|
| 22 |
url.searchParams.delete("deleted");
|
|
@@ -48,7 +48,7 @@ export default function LandingPage() {
|
|
| 48 |
const handleEsc = (e: KeyboardEvent) => {
|
| 49 |
if (e.key === 'Escape' && isUploadModalOpen) setIsUploadModalOpen(false);
|
| 50 |
};
|
| 51 |
-
|
| 52 |
window.addEventListener('dragover', handleDragOver);
|
| 53 |
window.addEventListener('keydown', handleEsc);
|
| 54 |
return () => {
|
|
@@ -60,7 +60,7 @@ export default function LandingPage() {
|
|
| 60 |
// --- Footer Copyright and Dynamic Date ---
|
| 61 |
const [year, setYear] = useState(new Date().getFullYear());
|
| 62 |
|
| 63 |
-
useEffect(() =>{
|
| 64 |
setYear(new Date().getFullYear());
|
| 65 |
}, []);
|
| 66 |
|
|
@@ -354,14 +354,14 @@ export default function LandingPage() {
|
|
| 354 |
|
| 355 |
{/* Hero Section */}
|
| 356 |
<section className="relative min-h-screen flex flex-col justify-center px-6 md:px-12 pt-32 pb-32 overflow-hidden bg-[var(--theme-bg)]" id="hero-section">
|
| 357 |
-
|
| 358 |
|
| 359 |
<div className="absolute inset-0 bg-[var(--theme-bg)] z-0"></div>
|
| 360 |
<div className="absolute inset-0 opacity-40 pointer-events-none bg-[radial-gradient(circle_at_50%_50%,_#11141d_0%,_var(--theme-bg)_100%)] z-[1]" id="hero-bg"></div>
|
| 361 |
<div className="absolute inset-0 z-[2] opacity-[0.03] pointer-events-none" style={{ backgroundImage: `url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.90' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")` }}></div>
|
| 362 |
<div className="absolute inset-0 pointer-events-none" id="hero-grid"></div>
|
| 363 |
<div className="absolute inset-0 pointer-events-none" id="hero-glow"></div>
|
| 364 |
-
|
| 365 |
<div className="relative z-10 max-w-5xl mx-auto w-full flex flex-col items-center lg:items-start text-center lg:text-left h-full justify-center min-h-[500px]">
|
| 366 |
|
| 367 |
{/* Main Hero Content */}
|
|
@@ -396,21 +396,21 @@ export default function LandingPage() {
|
|
| 396 |
|
| 397 |
<div className="absolute right-[-5%] bottom-[10%] w-1/3 aspect-square breathing-glow rounded-full blur-[80px] opacity-30 scroll-reveal z-0"></div>
|
| 398 |
</section>
|
| 399 |
-
|
| 400 |
-
|
| 401 |
-
|
| 402 |
-
|
| 403 |
-
|
| 404 |
-
|
| 405 |
-
|
| 406 |
-
|
| 407 |
-
|
| 408 |
-
|
| 409 |
<div className="w-full max-w-2xl mx-auto flex flex-col items-center justify-center min-h-[400px] pointer-events-auto">
|
| 410 |
<UploadZone autoAnalyze={true} />
|
| 411 |
</div>
|
| 412 |
</div>
|
| 413 |
-
|
| 414 |
|
| 415 |
|
| 416 |
{/* Demo Section */}
|
|
@@ -572,8 +572,8 @@ export default function LandingPage() {
|
|
| 572 |
|
| 573 |
</div>
|
| 574 |
<div className="flex flex-wrap justify-center gap-x-12 gap-y-6 items-center">
|
| 575 |
-
<a className="font-['Inter'] uppercase tracking-[0.2em] text-[10px] text-[#d0c4bb] transition-all duration-300 flex items-center gap-2 group hover:text-green-400 hover:drop-shadow-[0_0_8px_rgba(74,222,128,0.5)] cursor-pointer" href="#">
|
| 576 |
-
<span><a
|
| 577 |
<span className="text-[9px] bg-[var(--theme-text)]/5 px-2 py-0.5 rounded-full border border-[var(--theme-text)]/10 group-hover:border-green-500/30 group-hover:bg-green-500/10 flex items-center gap-1.5 transition-colors">
|
| 578 |
<span className="w-1.5 h-1.5 rounded-full bg-[var(--theme-text)]/40 group-hover:bg-green-400 group-hover:animate-pulse transition-colors"></span>
|
| 579 |
Online
|
|
|
|
| 16 |
if (searchParams.get("deleted") === "true") {
|
| 17 |
setDeletedToast(true);
|
| 18 |
setTimeout(() => setDeletedToast(false), 5000);
|
| 19 |
+
|
| 20 |
// Clean up URL
|
| 21 |
const url = new URL(window.location.href);
|
| 22 |
url.searchParams.delete("deleted");
|
|
|
|
| 48 |
const handleEsc = (e: KeyboardEvent) => {
|
| 49 |
if (e.key === 'Escape' && isUploadModalOpen) setIsUploadModalOpen(false);
|
| 50 |
};
|
| 51 |
+
|
| 52 |
window.addEventListener('dragover', handleDragOver);
|
| 53 |
window.addEventListener('keydown', handleEsc);
|
| 54 |
return () => {
|
|
|
|
| 60 |
// --- Footer Copyright and Dynamic Date ---
|
| 61 |
const [year, setYear] = useState(new Date().getFullYear());
|
| 62 |
|
| 63 |
+
useEffect(() => {
|
| 64 |
setYear(new Date().getFullYear());
|
| 65 |
}, []);
|
| 66 |
|
|
|
|
| 354 |
|
| 355 |
{/* Hero Section */}
|
| 356 |
<section className="relative min-h-screen flex flex-col justify-center px-6 md:px-12 pt-32 pb-32 overflow-hidden bg-[var(--theme-bg)]" id="hero-section">
|
| 357 |
+
|
| 358 |
|
| 359 |
<div className="absolute inset-0 bg-[var(--theme-bg)] z-0"></div>
|
| 360 |
<div className="absolute inset-0 opacity-40 pointer-events-none bg-[radial-gradient(circle_at_50%_50%,_#11141d_0%,_var(--theme-bg)_100%)] z-[1]" id="hero-bg"></div>
|
| 361 |
<div className="absolute inset-0 z-[2] opacity-[0.03] pointer-events-none" style={{ backgroundImage: `url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.90' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")` }}></div>
|
| 362 |
<div className="absolute inset-0 pointer-events-none" id="hero-grid"></div>
|
| 363 |
<div className="absolute inset-0 pointer-events-none" id="hero-glow"></div>
|
| 364 |
+
|
| 365 |
<div className="relative z-10 max-w-5xl mx-auto w-full flex flex-col items-center lg:items-start text-center lg:text-left h-full justify-center min-h-[500px]">
|
| 366 |
|
| 367 |
{/* Main Hero Content */}
|
|
|
|
| 396 |
|
| 397 |
<div className="absolute right-[-5%] bottom-[10%] w-1/3 aspect-square breathing-glow rounded-full blur-[80px] opacity-30 scroll-reveal z-0"></div>
|
| 398 |
</section>
|
| 399 |
+
<div
|
| 400 |
+
className={`fixed inset-0 z-[999] flex flex-col items-center justify-center p-6 md:p-12 transition-all duration-1000 ease-[cubic-bezier(0.23,1,0.32,1)] ${isUploadModalOpen ? 'opacity-100 visible bg-black/60 backdrop-blur-md' : 'opacity-0 invisible pointer-events-none'}`}
|
| 401 |
+
id="hero-upload-inline"
|
| 402 |
+
onClick={(e) => {
|
| 403 |
+
if (e.target === e.currentTarget) {
|
| 404 |
+
setIsUploadModalOpen(false);
|
| 405 |
+
}
|
| 406 |
+
}}
|
| 407 |
+
>
|
| 408 |
+
<div className="w-full relative z-[110] max-w-5xl h-full max-h-[80vh] flex flex-col pointer-events-none" id="upload-content-box">
|
| 409 |
<div className="w-full max-w-2xl mx-auto flex flex-col items-center justify-center min-h-[400px] pointer-events-auto">
|
| 410 |
<UploadZone autoAnalyze={true} />
|
| 411 |
</div>
|
| 412 |
</div>
|
| 413 |
+
</div>
|
| 414 |
|
| 415 |
|
| 416 |
{/* Demo Section */}
|
|
|
|
| 572 |
|
| 573 |
</div>
|
| 574 |
<div className="flex flex-wrap justify-center gap-x-12 gap-y-6 items-center">
|
| 575 |
+
<a href="https://stats.uptimerobot.com/25WvbZF0wj" target="_blank" className="font-['Inter'] uppercase tracking-[0.2em] text-[10px] text-[#d0c4bb] transition-all duration-300 flex items-center gap-2 group hover:text-green-400 hover:drop-shadow-[0_0_8px_rgba(74,222,128,0.5)] cursor-pointer" href="#">
|
| 576 |
+
<span><a>System Status</a></span>
|
| 577 |
<span className="text-[9px] bg-[var(--theme-text)]/5 px-2 py-0.5 rounded-full border border-[var(--theme-text)]/10 group-hover:border-green-500/30 group-hover:bg-green-500/10 flex items-center gap-1.5 transition-colors">
|
| 578 |
<span className="w-1.5 h-1.5 rounded-full bg-[var(--theme-text)]/40 group-hover:bg-green-400 group-hover:animate-pulse transition-colors"></span>
|
| 579 |
Online
|