diff --git a/apps/web/src/components/new-participant-modal.tsx b/apps/web/src/components/new-participant-modal.tsx index 24c43dc5a..6d078eacf 100644 --- a/apps/web/src/components/new-participant-modal.tsx +++ b/apps/web/src/components/new-participant-modal.tsx @@ -9,13 +9,13 @@ import { TRPCClientError } from "@trpc/client"; import clsx from "clsx"; import { useTranslation } from "next-i18next"; import { useForm } from "react-hook-form"; -import { useMount } from "react-use"; import z from "zod"; import { usePoll } from "@/contexts/poll"; import { useAddParticipantMutation } from "./poll/mutations"; import VoteIcon from "./poll/vote-icon"; +import { useUser } from "./user-provider"; const requiredEmailSchema = z.object({ requireEmail: z.literal(true), @@ -90,17 +90,23 @@ export const NewParticipantForm = (props: NewParticipantModalProps) => { const isEmailRequired = poll.requireParticipantEmail; - const { register, setError, formState, setFocus, handleSubmit } = + const { user } = useUser(); + const isLoggedIn = !user.isGuest; + + const { register, setError, formState, handleSubmit } = useForm({ resolver: zodResolver(schema), defaultValues: { requireEmail: isEmailRequired, + ...(isLoggedIn + ? { name: user.name, email: user.email ?? "" } + : { + name: "", + email: "", + }), }, }); const addParticipant = useAddParticipantMutation(); - useMount(() => { - setFocus("name"); - }); return (
{