Skip to content

Commit 8271625

Browse files
committed
fix(suspense): use suspense boundary
1 parent d4d63cf commit 8271625

File tree

5 files changed

+26
-4
lines changed

5 files changed

+26
-4
lines changed

src/app/layout.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import { getCurrentUser } from "@/lib/auth";
1010
import { Toaster } from "@/components/ui/sonner";
1111
import { getNotifications, getUnreadCount } from "@/lib/notifications";
1212

13+
export const dynamic = "force-dynamic";
14+
1315
const geistSans = Geist({
1416
variable: "--font-geist-sans",
1517
subsets: ["latin"],

src/app/organizations/[slug]/members/invitations/page.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { OrganizationInvitation } from "@/lib/types/organization";
44
import { PaginatedData } from "@/lib/types/api";
55
import { InvitationsView } from "./invitations-view";
66
import { cookies } from "next/headers";
7+
import { Suspense } from "react";
78

89
async function getInvitations(slug: string, page: number, size: number) {
910
try {
@@ -56,5 +57,9 @@ export default async function InvitationsPage({ params, searchParams }: PageProp
5657

5758
const data = await getInvitations(slug, page, size);
5859

59-
return <InvitationsView organizationSlug={slug} initialData={data} currentUserRole={role} />;
60+
return (
61+
<Suspense fallback={<div>Loading invitations...</div>}>
62+
<InvitationsView organizationSlug={slug} initialData={data} currentUserRole={role} />
63+
</Suspense>
64+
);
6065
}

src/app/organizations/[slug]/members/page.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { OrganizationMember } from "@/lib/types/organization";
44
import { PaginatedData } from "@/lib/types/api";
55
import { MembersView } from "./members-view";
66
import { cookies } from "next/headers";
7+
import { Suspense } from "react";
78

89
async function getMembers(slug: string, page: number, size: number) {
910
try {
@@ -61,5 +62,9 @@ export default async function MembersPage({ params, searchParams }: PageProps) {
6162
)
6263
}
6364

64-
return <MembersView data={data} />;
65+
return (
66+
<Suspense fallback={<div>Loading members...</div>}>
67+
<MembersView data={data} />
68+
</Suspense>
69+
);
6570
}

src/app/signin/page.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { getCurrentUser } from "@/lib/auth";
22
import { redirect } from "next/navigation";
33
import SigninPage from "./signin-page";
44
import { Metadata } from "next";
5+
import { Suspense } from "react";
56

67
export const metadata: Metadata = {
78
title: "Sign In | HeapDog",
@@ -20,5 +21,9 @@ export default async function Page(props: {
2021
redirect(redirectUrl);
2122
}
2223

23-
return <SigninPage />;
24+
return (
25+
<Suspense fallback={<div>Loading...</div>}>
26+
<SigninPage />
27+
</Suspense>
28+
);
2429
}

src/app/verify/page.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { getCurrentUser } from "@/lib/auth";
22
import { redirect } from "next/navigation";
33
import VerifyPage from "./verify-page";
44
import { Metadata } from "next";
5+
import { Suspense } from "react";
56

67
export const metadata: Metadata = {
78
title: "Verify Email | HeapDog",
@@ -15,6 +16,10 @@ export default async function Page() {
1516
redirect("/");
1617
}
1718

18-
return <VerifyPage />;
19+
return (
20+
<Suspense fallback={<div>Loading...</div>}>
21+
<VerifyPage />
22+
</Suspense>
23+
);
1924
}
2025

0 commit comments

Comments
 (0)