added logbook

This commit is contained in:
PxlLoewe
2025-05-30 19:28:07 -07:00
parent 7822369126
commit eaedd78202
17 changed files with 372 additions and 128 deletions

View File

@@ -25,7 +25,7 @@ import {
} from "@radix-ui/react-icons";
import { Button } from "../../../../../_components/ui/Button";
import { Select } from "../../../../../_components/ui/Select";
import { UserOptionalDefaults, UserOptionalDefaultsSchema, UserSchema } from "@repo/db/zod";
import { UserOptionalDefaults, UserOptionalDefaultsSchema } from "@repo/db/zod";
import { useRouter } from "next/navigation";
import { PaginatedTable, PaginatedTableRef } from "_components/PaginatedTable";
import { cn } from "../../../../../../helper/cn";
@@ -41,10 +41,7 @@ interface ProfileFormProps {
export const ProfileForm: React.FC<ProfileFormProps> = ({ user }: ProfileFormProps) => {
const [isLoading, setIsLoading] = useState(false);
const form = useForm<UserOptionalDefaults>({
defaultValues: {
...user,
emailVerified: user.emailVerified ?? undefined,
},
defaultValues: user,
resolver: zodResolver(UserOptionalDefaultsSchema),
});
if (!user) return <Error title="User not found" statusCode={404} />;

View File

@@ -1,37 +1,41 @@
import { User2 } from 'lucide-react';
import { PaginatedTable } from '../../../_components/PaginatedTable';
import { User2 } from "lucide-react";
import { PaginatedTable } from "../../../_components/PaginatedTable";
export default async () => {
return (
<>
<PaginatedTable
showEditButton
prismaModel="user"
searchFields={['publicId', 'firstname', 'lastname', 'email']}
columns={[
{
header: 'ID',
accessorKey: 'publicId',
},
{
header: 'Vorname',
accessorKey: 'firstname',
},
{
header: 'Nachname',
accessorKey: 'lastname',
},
{
header: 'Email',
accessorKey: 'email',
},
]}
leftOfSearch={
<p className="text-2xl font-semibold text-left flex items-center gap-2">
<User2 className="w-5 h-5" /> Benutzer
</p>
}
/>
</>
);
const AdminUserPage = async () => {
return (
<>
<PaginatedTable
showEditButton
prismaModel="user"
searchFields={["publicId", "firstname", "lastname", "email"]}
columns={[
{
header: "ID",
accessorKey: "publicId",
},
{
header: "Vorname",
accessorKey: "firstname",
},
{
header: "Nachname",
accessorKey: "lastname",
},
{
header: "Email",
accessorKey: "email",
},
]}
leftOfSearch={
<p className="text-2xl font-semibold text-left flex items-center gap-2">
<User2 className="w-5 h-5" /> Benutzer
</p>
}
/>
</>
);
};
AdminUserPage.displayName = "AdminUserPage";
export default AdminUserPage;