import { PageParams } from "@/types/next"; import { Page, PageActions, PageContent, PageDescription, PageTitle } from "@/features/layout/page"; import { buttonVariants } from "@/components/ui/button"; import { GearIcon } from "@radix-ui/react-icons"; import Link from "next/link"; import { ButtonDeleteProject } from "@/components/wrappers/dashboard/projects/button-delete-project/button-delete-project"; import { CardsWithPagination } from "@/components/wrappers/common/cards-with-pagination"; import { ProjectDatabaseCard } from "@/components/wrappers/dashboard/projects/project-card/project-database-card"; import {notFound, redirect} from "next/navigation"; import { db } from "@/db"; import { eq } from "drizzle-orm"; import {getOrganization} from "@/lib/auth/auth"; import * as drizzleDb from "@/db"; export default async function RoutePage(props: PageParams<{ projectId: string }>) { const { projectId } = await props.params; const organization = await getOrganization({}); if (!organization) { notFound(); } const org = await db.query.organization.findFirst({ where: eq(drizzleDb.schemas.organization.slug, organization.slug), }); if (!org) notFound(); const proj = await db.query.project.findFirst({ where: (proj, { and, eq, not }) => and(eq(proj.id, projectId), eq(proj.organizationId, org.id), not(eq(proj.isArchived, true))), with: { databases: true, }, }); if (!proj) { redirect("/dashboard/projects"); } return (
{proj.name}
The list of associated databases {proj.databases.length > 0 ? ( ) : (

No databases found

You haven’t added any databases to this project yet.

)}
); }