Anish-530 commited on
Commit
e6ca808
·
1 Parent(s): 6431706

Fix Next.js pre-rendering error by wrapping useSearchParams in Suspense

Browse files
Files changed (1) hide show
  1. 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
- export default function LandingPage() {
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
- {deletedToast && (
335
- <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]">
336
- <CheckCircle className="w-5 h-5" />
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 />