"use client"; import {useRouter} from "next/navigation"; import {useMutation} from "@tanstack/react-query"; import {Form, FormControl, FormField, FormItem, FormLabel, FormMessage, useZodForm} from "@/components/ui/form"; import {Organization} from "@/db/schema/03_organization"; import {Input} from "@/components/ui/input"; import {ButtonWithLoading} from "@/components/common/button-with-loading"; import {Button} from "@/components/ui/button"; import {UserSchema, UserType} from "@/features/users/user.schema"; import {toast} from "sonner"; import {createUserAction} from "@/features/users/user.action"; type AdminUserFormProps = { onSuccess?: () => void; organizations: Organization[]; }; export const AdminUserForm = ({onSuccess, organizations}: AdminUserFormProps) => { const router = useRouter(); const form = useZodForm({ schema: UserSchema, }); const onCancel = () => { form.reset(); onSuccess?.(); }; const mutation = useMutation({ mutationFn: async (data: UserType) => { const result = await createUserAction(data); const inner = result?.data; if (inner?.success) { toast.success("User Successfully created"); onSuccess?.(); router.refresh(); } else { toast.error("An error occurred"); onSuccess?.(); } }, }); return (
); };