feat: filter users by name or email

This commit is contained in:
pit
2023-10-06 15:48:05 +03:00
committed by Mythie
parent 02b6f6a7b7
commit 9682f8ea36
7 changed files with 192 additions and 45 deletions

View File

@ -1,10 +1,6 @@
import { findUsers } from '@documenso/lib/server-only/user/get-all-users';
/*
1. retrieve all users from the db
2. display them in a table
*/
import { UsersDataTable } from './data-table-users';
import { Users } from './users';
type AdminManageUsersProps = {
searchParams?: {
@ -13,23 +9,22 @@ type AdminManageUsersProps = {
};
};
export default async function AdminManageUsers({ searchParams = {} }: AdminManageUsersProps) {
export default function AdminManageUsers({ searchParams = {} }: AdminManageUsersProps) {
const page = Number(searchParams.page) || 1;
const perPage = Number(searchParams.perPage) || 10;
const results = await findUsers({ page, perPage });
async function search(search: string) {
'use server';
const results = await findUsers({ username: search, email: search, page, perPage });
return results;
}
return (
<div>
<h2 className="text-4xl font-semibold">Manage users</h2>
<div className="mt-8">
<UsersDataTable
users={results.users}
perPage={perPage}
page={page}
totalPages={results.totalPages}
/>
</div>
<Users search={search} page={page} perPage={perPage} />
</div>
);
}