import { zodResolver } from "@hookform/resolvers/zod"; import { useEffect } from "react"; import { useForm } from "react-hook-form"; import { z } from "zod"; import { Dialog } from "@calcom/features/components/controlled-dialog"; import { emailSchema } from "@calcom/lib/emailSchema"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { Button } from "@calcom/ui/components/button"; import { DialogContent, DialogFooter, DialogClose } from "@calcom/ui/components/dialog"; import { Form, TextField, InputError } from "@calcom/ui/components/form"; interface SecondaryEmailModalProps { isLoading: boolean; errorMessage?: string; handleAddEmail: (value: { email: string }) => void; onCancel: () => void; clearErrorMessage: () => void; } const SecondaryEmailModal = ({ isLoading, errorMessage, handleAddEmail, onCancel, clearErrorMessage, }: SecondaryEmailModalProps) => { const { t } = useLocale(); type FormValues = { email: string; }; const formMethods = useForm({ resolver: zodResolver( z.object({ email: emailSchema, }) ), }); useEffect(() => { // We will reset the errorMessage once the user starts modifying the email const subscription = formMethods.watch(() => clearErrorMessage()); return () => subscription.unsubscribe(); }, [formMethods.watch]); return (
{t("change_email_hint")}
{errorMessage && } {t("cancel")}
); }; export default SecondaryEmailModal;