Files
portabase/app/(customer)/dashboard/(admin)/admin/page.tsx
T

46 lines
1.2 KiB
TypeScript
Raw Normal View History

2025-08-02 11:14:51 +02:00
import {PageParams} from "@/types/next";
import {Page, PageContent, PageHeader, PageTitle} from "@/features/layout/page";
import {AdminTabs} from "@/components/wrappers/dashboard/admin/admin-tabs";
import {db} from "@/db";
2025-07-26 22:23:00 +02:00
import {isNull} from "drizzle-orm";
2025-11-04 08:48:46 +01:00
import {Metadata} from "next";
2025-07-16 18:15:28 +02:00
2025-11-04 08:48:46 +01:00
export const metadata: Metadata = {
title: "Admin",
};
2024-12-13 12:28:08 +01:00
export default async function RoutePage(props: PageParams<{}>) {
2025-05-16 15:54:17 +02:00
const users = await db.query.user.findMany({
2025-08-02 11:14:51 +02:00
where: (fields) => isNull(fields.deletedAt),
with: {
accounts: true
}
2025-05-16 15:54:17 +02:00
});
2024-12-13 12:28:08 +01:00
2025-11-01 19:38:05 +01:00
const organizations = await db.query.organization.findMany({
where: (fields) => isNull(fields.deletedAt),
with: {
members: true,
},
});
2025-05-16 15:54:17 +02:00
const settings = await db.query.setting.findFirst({
2025-08-02 11:14:51 +02:00
where: (fields, {eq}) => eq(fields.name, "system"),
2025-05-16 15:54:17 +02:00
});
2024-12-13 12:28:08 +01:00
2025-11-01 19:38:05 +01:00
2024-12-13 12:28:08 +01:00
return (
<Page>
<PageHeader>
2025-05-16 15:54:17 +02:00
<PageTitle>Administration Panel</PageTitle>
2024-12-13 12:28:08 +01:00
</PageHeader>
2025-07-26 22:23:00 +02:00
<PageContent>
2025-11-01 19:38:05 +01:00
<AdminTabs
organizations={organizations}
settings={settings!}
users={users}/>
2024-12-13 12:28:08 +01:00
</PageContent>
</Page>
2025-05-16 15:54:17 +02:00
);
}