History

Wrap useSearchParams consumers in Suspense boundaries

Next.js requires components using useSearchParams to be wrapped in a Suspense boundary for static page generation. Fixes build failure on /approvals (and preemptively /organization).

Rhys Sullivan committed 9 months ago

Commit 002c0ef1 parent 86d54b02 files · +13 −4Browse files

Unified · Split

2 files
  1. executor/apps/web/src/app/organization/page.tsx +6 −1
  2. executor/apps/web/src/components/app-shell.tsx +7 −3
executor/apps/web/src/app/organization/page.tsx+6−1
@@ -1,5 +1,10 @@
1+import { Suspense } from "react";
12 import { OrganizationSettingsView } from "@/components/organization-settings-view";
23
34 export default function OrganizationPage() {
4− return <OrganizationSettingsView />;
5+ return (
6+ <Suspense>
7+ <OrganizationSettingsView />
8+ </Suspense>
9+ );
510 }
executor/apps/web/src/components/app-shell.tsx+7−3
@@ -1,6 +1,6 @@
11 "use client";
22
3−import { useEffect, useMemo, useState, type FormEvent } from "react";
3+import { Suspense, useEffect, useMemo, useState, type FormEvent } from "react";
44 import Link from "next/link";
55 import { usePathname, useRouter, useSearchParams } from "next/navigation";
66 import { useMutation } from "convex/react";
@@ -513,7 +513,9 @@ function Sidebar() { · 506 unmodified lines
513513 <NavLinks />
514514 </div>
515515 <div className="pb-4">
516− <SessionInfo />
516+ <Suspense>
517+ <SessionInfo />
518+ </Suspense>
517519 </div>
518520 </aside>
519521 );
@@ -542,7 +544,9 @@ function MobileHeader() { · 22 unmodified lines
542544 <NavLinks onClick={() => setOpen(false)} />
543545 </div>
544546 <div className="mt-auto pb-4">
545− <SessionInfo />
547+ <Suspense>
548+ <SessionInfo />
549+ </Suspense>
546550 </div>
547551 </SheetContent>
548552 </Sheet>