import React, { useState } from 'react'; import { Modal, Text, Button, Group, Stack, PasswordInput, } from '@mantine/core'; interface EmailPasswordModalProps { opened: boolean; onClose: () => void; onConfirm: (password: string) => Promise; email: string; } const EmailPasswordModal: React.FC = ({ opened, onClose, onConfirm, email, }) => { const [password, setPassword] = useState(''); async function handleConfirm(): Promise { const trimmedPassword = password.trim(); if (!trimmedPassword) { return; } try { await onConfirm(trimmedPassword); setPassword(''); } catch (error) { // Keep password in case of error console.error('Error confirming password:', error); } } const handleKeyDown = (event: React.KeyboardEvent): void => { if (event.key === 'Enter' && !event.shiftKey) { event.preventDefault(); void handleConfirm(); } }; return ( {`Please enter your password to confirm changing your email to: ${email}`} setPassword(e.currentTarget.value)} required /> ); }; export default EmailPasswordModal;