in src/app/(proper_react)/(redesign)/(authenticated)/user/(dashboard)/settings/panels/SettingsPanelEditInfoRedesign.tsx [51:120]
function MonitoredEmail(props: {
actions: {
onRemoveEmail: typeof onRemoveEmail;
};
emailAddress: SanitizedEmailAddressRow;
}) {
const l10n = useL10n();
const recordTelemetry = useTelemetry();
const [isVerificationEmailResent, setIsVerificationEmailResent] =
useState(false);
return (
<div className={styles.emailWrapper}>
<div className={styles.emailContent}>
<div className={styles.emailAddress}>
{props.emailAddress.email}
{!props.emailAddress.verified && (
<span className={styles.emailNote}>
{l10n.getString("settings-email-verification-callout")}
</span>
)}
</div>
{!props.emailAddress.verified && (
<Button
className={styles.button}
variant="link"
isDisabled={isVerificationEmailResent}
onPress={() => {
void fetch("/api/v1/user/resend-email", {
headers: {
"Content-Type": "application/json",
Accept: "text/html", // set to request localized HTML email
},
mode: "same-origin",
method: "POST",
body: JSON.stringify({ emailId: props.emailAddress.id }),
}).then((response) => {
if (response.ok) {
setIsVerificationEmailResent(true);
}
});
}}
>
{isVerificationEmailResent ? (
<CheckIcon alt="" width={14} height={14} />
) : (
<LinkIcon alt="" />
)}
{l10n.getString(
"settings-email-addresses-add-email-resend-button-label",
)}
</Button>
)}
</div>
<Button
className={`${styles.button} ${styles.removeButton}`}
variant="link"
onPress={() => {
recordTelemetry("button", "click", {
button_id: "removed_email_address",
});
void props.actions.onRemoveEmail(props.emailAddress);
}}
>
<MinusCircledIcon alt="" />
{l10n.getString("settings-remove-email-button-label")}
</Button>
</div>
);
}