"use client"; import React from "react"; import { useRouter } from "next/navigation"; import { Form } from "@/components/form/Form"; import { Field } from "@/components/form/Field"; import { toast } from "sonner"; import db from "@/lib/dbClient"; import { Button } from "./ui/button"; import ParametersList from "@/components/ParametersList"; import UserAccessList from "@/components/UserAccessList"; import { ResizableHandle, ResizablePanel, ResizablePanelGroup, } from "./ui/resize"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "./ui/tabs"; type Props = { id?: string; defaults?: any }; export default function UserFormClient({ id, defaults }: Props) { const router = useRouter(); const [loading, setLoading] = React.useState(false); return (
{ const vals = fm.data; delete vals.tenants; delete vals.banks; delete vals.database; console.log("vals", vals); if (!id || id === "new") { await db.users.create({ data: vals }); toast.success("User created"); } else { await db.users.update({ where: { user_id: id }, data: vals, }); // toast.success("User updated"); } }} onLoad={async () => { if (id && id !== "new") { const user = await db.users.findFirst({ select: { user_id: true, username: true, tenant_id: true, bank_id: true, private_key_file: true, public_key_file: true, pharaphrase: true, clientbank_id: true, db_id: true, tenants: true, banks: true, database: true, }, where: { user_id: id }, // include: { tenants: true, banks: true }, }); return user || {}; } return {}; }} showResize={false} header={(fm: any) => ( <>
{id && id !== "new" && ( )}
)} children={(fm: any) => ( <>
{ const res = await db.tenants.findMany({ where: { name: { contains: param.search || "" } }, take: param.take || 10, skip: param.skip || 0, }); return res; }} onValue={"tenant_id"} onLabel={"name"} />
{ const res = await db.banks.findMany({ where: { name: { contains: param.search || "" } }, take: param.take || 10, skip: param.skip || 0, }); return res; }} onValue={"bank_id"} onLabel={"name"} />
{ const res = await db.database.findMany({ where: { name: { contains: param.search || "" } }, take: param.take || 10, skip: param.skip || 0, }); return res; }} onValue={"db_id"} onLabel={"name"} />
)} />
{id && id !== "new" ? (
Parameters User Access
) : null}
); }