/* Copyright 2024 New Vector Ltd. Copyright 2022 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ import React, { ReactNode } from "react"; import { Tooltip } from "@vector-im/compound-web"; import { _t } from "../../../../languageHandler"; import AccessibleButton from "../../../views/elements/AccessibleButton"; import { Icon as RetryIcon } from "../../../../../res/img/compound/retry-16px.svg"; import { Icon as EmailPromptIcon } from "../../../../../res/img/element-icons/email-prompt.svg"; import { useTimeoutToggle } from "../../../../hooks/useTimeoutToggle"; import { ErrorMessage } from "../../ErrorMessage"; interface Props { email: string; errorText: ReactNode | null; onFinished(): void; // This modal is weird in that the way you close it signals intent onCloseClick: () => void; onReEnterEmailClick: () => void; onResendClick: () => Promise; } export const VerifyEmailModal: React.FC = ({ email, errorText, onCloseClick, onReEnterEmailClick, onResendClick, }) => { const { toggle: toggleTooltipVisible, value: tooltipVisible } = useTimeoutToggle(false, 2500); const onResendClickFn = async (): Promise => { await onResendClick(); toggleTooltipVisible(); }; return ( <>

{_t("auth|verify_email_heading")}

{_t( "auth|verify_email_explainer", { email, }, { b: (sub) => {sub}, }, )}

{_t("auth|check_email_resend_prompt")} {_t("action|resend")} {errorText && }
{_t("auth|check_email_wrong_email_prompt")} {_t("auth|check_email_wrong_email_button")}
); };