feat: notifications inbox page

The bell only ever showed the last 30; add a full paginated /notifications
page, per-notification mark-read, and a shared notificationHref helper so
the bell and the page route identically instead of duplicating the logic.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Arnaud
2026-07-10 07:57:17 +02:00
parent 45b886e398
commit 913410dbf3
9 changed files with 265 additions and 12 deletions
@@ -0,0 +1,14 @@
import { PageHeaderSkeleton, ListRowSkeleton } from "@/components/shared/skeletons";
export default function NotificationsLoading() {
return (
<div className="space-y-6 max-w-2xl">
<PageHeaderSkeleton actions={1} />
<div className="space-y-3">
{Array.from({ length: 6 }).map((_, i) => (
<ListRowSkeleton key={i} />
))}
</div>
</div>
);
}
+13
View File
@@ -0,0 +1,13 @@
import type { Metadata } from "next";
import { headers } from "next/headers";
import { auth } from "@/lib/auth/server";
import { NotificationsPageContent } from "@/components/notifications/notifications-page-content";
export const metadata: Metadata = {};
export default async function NotificationsPage() {
const session = await auth.api.getSession({ headers: await headers() });
if (!session) return null;
return <NotificationsPageContent />;
}