"use client" import { useState, useEffect } from "react" import { useForm } from "react-hook-form" import { zodResolver } from "@hookform/resolvers/zod" import { userAddSchema, type UserAdd } from "./schema" import { Form, FormField, FormItem, FormLabel, FormControl, FormMessage } from "@/components/ui/form" import { Input } from "@/components/ui/input" import { Button } from "@/components/ui/button" import { Checkbox } from "@/components/ui/checkbox" import { Separator } from "@/components/ui/separator" import { useAddUserMutation } from "./queries" import { DateTimePicker } from "@/components/ui/date-time-picker" import PageAddUserSelections from "../selections/addPage" const UserForm = ({ refetchTable }: { refetchTable: () => void }) => { const form = useForm({ resolver: zodResolver(userAddSchema), defaultValues: { expiryStarts: "", expiryEnds: "", isConfirmed: false, isNotificationSend: false, password: "", rePassword: "", tag: "", email: "", phone: "" }, }) const [defaultSelection, setDefaultSelection] = useState("") const [selectedBuildIDS, setSelectedBuildIDS] = useState([]) const [selectedCompanyIDS, setSelectedCompanyIDS] = useState([]) const appendBuildID = (id: string) => setSelectedBuildIDS((prev) => (id && !selectedBuildIDS.includes(id) ? [...prev, id] : prev)) const appendCompanyID = (id: string) => setSelectedCompanyIDS((prev) => (id && !selectedCompanyIDS.includes(id) ? [...prev, id] : prev)) const removeBuildID = (id: string) => setSelectedBuildIDS((prev) => prev.filter((item) => item !== id)) const removeCompanyID = (id: string) => setSelectedCompanyIDS((prev) => prev.filter((item) => item !== id)) const { handleSubmit } = form const mutation = useAddUserMutation(); function onSubmit(values: UserAdd) { mutation.mutate({ data: values as any, selectedBuildIDS, selectedCompanyIDS, defaultSelection, refetchTable }); } return (
{/* BASIC INFO */}
( Email )} /> ( Phone )} />
{/* PASSWORD / TAG */}
( Password )} /> ( Re-Password )} /> ( Tag )} /> {/* SWITCHES */}
( Confirmed )} /> ( Send Notification )} />
{/* DATES */}
( Expiry Starts )} /> ( Expiry Ends )} />
) } export { UserForm }