import React from "react"; import Icon from "@/components/Icon"; import { useForm } from "react-hook-form"; import { yupResolver } from "@hookform/resolvers/yup"; import { signUpValidationSchema } from "@/utils/form"; import { companySizeList } from "@/constants"; import pb from "@/lib/pocketbase"; import { login } from "@/app/(auth)/actions"; function ModalSignUp() { const { register, handleSubmit, reset, formState: { errors }, } = useForm({ resolver: yupResolver(signUpValidationSchema), }); const onSubmit = async (data: any) => { data = { emailVisibility: false, lastSeen: new Date(), role: "Admin", displayName: `${data.firstName} ${data.lastName}`, ...data, }; try { //create organisation const organisation = await pb.collection("organisation").create({ name: data.organisation, organisationSize: data.organisationSize, }); //create user await pb .collection("user") .create({ ...data, organisation: organisation.id }); //login user if ( (await login({ email: data.email, password: data.password })).success ) { reset(); document.getElementById("sign-up-modal")?.click(); } } catch (error) { console.log("heyaa"); } }; return ( <> { reset(); }} /> { reset(); }} > We Are Growing Fast, and We Want You To Join The Party! Excited to see what we've got! Signup and get started! {errors.email?.message} {errors.firstName?.message} {errors.lastName?.message} {errors.phoneNumber?.message} {errors.organisation?.message} Company Size… {companySizeList.map((companySizeOption, i) => { return ( {companySizeOption} ); })} {errors.organisationSize?.message} {errors.password?.message} {errors.passwordConfirm?.message} Sign Up > ); } export default ModalSignUp;
Excited to see what we've got! Signup and get started!