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:
@@ -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>
|
||||
);
|
||||
}
|
||||
@@ -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 />;
|
||||
}
|
||||
Reference in New Issue
Block a user