/** * @file trash/page.tsx * @description Server component rendering the trash management view, fetching soft-deleted tasks belonging to the authenticated user. */ import { db } from "@/db"; import { tasksTable } from "@/db/schema"; import { eq, and, isNotNull } from "drizzle-orm"; import { auth } from "@/auth"; import { redirect } from "next/navigation"; import TrashList from "./TrashList"; import TrashHeader from "./components/TrashHeader"; /** * Renders the trash page verifying user authentication, querying soft-deleted tasks, * and passing them down to the list and header components. * * @async * @returns {Promise} The rendered trash page component. */ export default async function TrashPage() { const session = await auth(); if (!session?.user?.id) redirect("/login"); const trashedTasks = await db .select() .from(tasksTable) .where( and( eq(tasksTable.userId, session.user.id), isNotNull(tasksTable.deletedAt), ), ); return (
); }