Files
sign/apps/web/src/app/(dashboard)/admin/users/page.tsx

40 lines
1.1 KiB
TypeScript
Raw Normal View History

import { getPricesByPlan } from '@documenso/ee/server-only/stripe/get-prices-by-plan';
import { STRIPE_PLAN_TYPE } from '@documenso/lib/constants/billing';
import { UsersDataTable } from './data-table-users';
2023-10-11 16:20:04 +03:00
import { search } from './fetch-users.actions';
2023-09-21 12:43:36 +01:00
type AdminManageUsersProps = {
searchParams?: {
2023-10-11 16:20:04 +03:00
search?: string;
2023-09-21 12:43:36 +01:00
page?: number;
perPage?: number;
};
};
2023-10-11 16:20:04 +03:00
export default async function AdminManageUsers({ searchParams = {} }: AdminManageUsersProps) {
2023-09-21 12:43:36 +01:00
const page = Number(searchParams.page) || 1;
const perPage = Number(searchParams.perPage) || 10;
2023-10-11 16:20:04 +03:00
const searchString = searchParams.search || '';
const [{ users, totalPages }, individualPrices] = await Promise.all([
search(searchString, page, perPage),
2024-03-03 01:55:33 +11:00
getPricesByPlan(STRIPE_PLAN_TYPE.COMMUNITY).catch(() => []),
]);
const individualPriceIds = individualPrices.map((price) => price.id);
2023-09-21 12:43:36 +01:00
return (
<div>
<h2 className="text-4xl font-semibold">Manage users</h2>
<UsersDataTable
users={users}
individualPriceIds={individualPriceIds}
totalPages={totalPages}
page={page}
perPage={perPage}
/>
2023-09-21 12:43:36 +01:00
</div>
);
}