"use client" import { AlertDialog, AlertDialogContent, AlertDialogDescription, AlertDialogHeader, AlertDialogTitle, } from "~/components/ui/alert-dialog" import { Button } from "~/components/ui/button" import { Form, FormControl, FormField, FormItem, FormLabel, } from "~/components/ui/form" import { Input } from "~/components/ui/input" import { z } from "zod" import { zodResolver } from "@hookform/resolvers/zod" import { useForm } from "react-hook-form" import { useEffect, useState } from "react" const formSchema = z.object({ users_name: z.string().min(2, { message: "Really? Your name is one letter? You expect me to believe that?", }), users_profile_image: z.string().url().optional(), }); export default function First_Sign_In_Form({ users_name, users_email }: { users_name: string, users_email: string }) { const [isOpen, setIsOpen] = useState(false); const form = useForm>({ resolver: zodResolver(formSchema), }); const update_users_name = async (users_name: string, users_email: string) => { try { const res = await fetch("/api/users/set_users_name_by_email", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ users_name: users_name, users_email: users_email, }), }); if (!res.ok) { throw new Error("Failed to update user's name"); } } catch (error) { console.error("Could not update user's name", error); } }; const update_users_pfp = async (users_pfp: string, users_email: string) => { try { const res = await fetch("/api/users/set_users_pfp_by_email", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ users_pfp: users_pfp, users_email: users_email, }), }); if (!res.ok) { throw new Error("Failed to update user's name"); } } catch (error) { console.error("Could not update user's name", error); } }; const onSubmit = async (data: z.infer) => { if (data.users_profile_image === undefined) { data.users_profile_image = ""; } await update_users_name(data.users_name, users_email); await update_users_pfp(data.users_profile_image, users_email); setIsOpen(false); }; useEffect(() => { if (users_name === "New User") { setIsOpen(true); } }, [users_name]); if (users_name === "New User") { return ( Welcome to the Tenant Portal Please fill out the form to complete your account setup.
( Enter your name )} > ( Enter a URL path to your profile picture )} >
); } else { return (
); } };