From bbf9bae28f2b88f437cc0f48147140981cc89295 Mon Sep 17 00:00:00 2001 From: Luke Vella Date: Fri, 17 Jan 2025 11:39:24 +0000 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Set=20default=20values=20in=20new?= =?UTF-8?q?=20participant=20form=20when=20user=20is=20logged=20in=20(#1501?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/new-participant-modal.tsx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) 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 (
{