Spaces:
Sleeping
Sleeping
Anish-530 commited on
Commit ·
e6ca808
1
Parent(s): 6431706
Fix Next.js pre-rendering error by wrapping useSearchParams in Suspense
Browse files- frontend/app/page.tsx +21 -11
frontend/app/page.tsx
CHANGED
|
@@ -1,16 +1,13 @@
|
|
| 1 |
"use client";
|
| 2 |
|
| 3 |
-
import React, { useEffect, useRef, useState, useCallback } from "react";
|
| 4 |
import { useRouter, useSearchParams } from "next/navigation";
|
| 5 |
import axios from "axios";
|
| 6 |
import { ArrowRight, CloudUpload, CheckCircle, Menu, X, Fingerprint, Activity, Network } from "lucide-react";
|
| 7 |
import UploadZone from "@/components/upload/UploadZone";
|
| 8 |
import Navbar from "@/components/shared/Navbar";
|
| 9 |
|
| 10 |
-
|
| 11 |
-
const router = useRouter();
|
| 12 |
-
|
| 13 |
-
const [isUploadModalOpen, setIsUploadModalOpen] = useState(false);
|
| 14 |
const searchParams = useSearchParams();
|
| 15 |
const [deletedToast, setDeletedToast] = useState(false);
|
| 16 |
|
|
@@ -26,6 +23,22 @@ export default function LandingPage() {
|
|
| 26 |
}
|
| 27 |
}, [searchParams]);
|
| 28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
useEffect(() => {
|
| 30 |
const handleDragOver = (e: DragEvent) => {
|
| 31 |
e.preventDefault();
|
|
@@ -331,12 +344,9 @@ export default function LandingPage() {
|
|
| 331 |
)}
|
| 332 |
|
| 333 |
{/* Deleted Account Toast */}
|
| 334 |
-
|
| 335 |
-
<
|
| 336 |
-
|
| 337 |
-
<span className="font-bold tracking-widest uppercase text-sm">Account Deleted Successfully</span>
|
| 338 |
-
</div>
|
| 339 |
-
)}
|
| 340 |
|
| 341 |
{/* Global Navbar */}
|
| 342 |
<Navbar />
|
|
|
|
| 1 |
"use client";
|
| 2 |
|
| 3 |
+
import React, { useEffect, useRef, useState, useCallback, Suspense } from "react";
|
| 4 |
import { useRouter, useSearchParams } from "next/navigation";
|
| 5 |
import axios from "axios";
|
| 6 |
import { ArrowRight, CloudUpload, CheckCircle, Menu, X, Fingerprint, Activity, Network } from "lucide-react";
|
| 7 |
import UploadZone from "@/components/upload/UploadZone";
|
| 8 |
import Navbar from "@/components/shared/Navbar";
|
| 9 |
|
| 10 |
+
function DeletedToastManager() {
|
|
|
|
|
|
|
|
|
|
| 11 |
const searchParams = useSearchParams();
|
| 12 |
const [deletedToast, setDeletedToast] = useState(false);
|
| 13 |
|
|
|
|
| 23 |
}
|
| 24 |
}, [searchParams]);
|
| 25 |
|
| 26 |
+
if (!deletedToast) return null;
|
| 27 |
+
|
| 28 |
+
return (
|
| 29 |
+
<div className="fixed top-24 left-1/2 -translate-x-1/2 z-[100] bg-green-500/10 border border-green-500/20 text-green-400 px-6 py-3 rounded-full flex items-center gap-3 shadow-[0_0_40px_rgba(34,197,94,0.2)] animate-[fade-in_0.5s_ease-out]">
|
| 30 |
+
<CheckCircle className="w-5 h-5" />
|
| 31 |
+
<span className="font-bold tracking-widest uppercase text-sm">Account Deleted Successfully</span>
|
| 32 |
+
</div>
|
| 33 |
+
);
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
export default function LandingPage() {
|
| 37 |
+
const router = useRouter();
|
| 38 |
+
|
| 39 |
+
const [isUploadModalOpen, setIsUploadModalOpen] = useState(false);
|
| 40 |
+
|
| 41 |
+
|
| 42 |
useEffect(() => {
|
| 43 |
const handleDragOver = (e: DragEvent) => {
|
| 44 |
e.preventDefault();
|
|
|
|
| 344 |
)}
|
| 345 |
|
| 346 |
{/* Deleted Account Toast */}
|
| 347 |
+
<Suspense fallback={null}>
|
| 348 |
+
<DeletedToastManager />
|
| 349 |
+
</Suspense>
|
|
|
|
|
|
|
|
|
|
| 350 |
|
| 351 |
{/* Global Navbar */}
|
| 352 |
<Navbar />
|