import { getConfig } from '@edx/frontend-platform'; import { FormattedMessage, useIntl } from '@edx/frontend-platform/i18n'; import { Alert } from '@openedx/paragon'; import { CheckCircle, Error } from '@openedx/paragon/icons'; import PropTypes from 'prop-types'; import messages from './messages'; import { COMPLETE_STATE, FORBIDDEN_STATE, FORM_SUBMISSION_ERROR, INTERNAL_SERVER_ERROR, } from '../data/constants'; import { PASSWORD_RESET } from '../reset-password/data/constants'; const ForgotPasswordAlert = (props) => { const { formatMessage } = useIntl(); const { email, emailError } = props; let message = ''; let heading = formatMessage(messages['forgot.password.error.alert.title']); let { status } = props; if (emailError) { status = FORM_SUBMISSION_ERROR; } switch (status) { case COMPLETE_STATE: heading = formatMessage(messages['confirmation.message.title']); message = ( {email}, supportLink: ( {formatMessage(messages['confirmation.support.link'])} ), }} /> ); break; case INTERNAL_SERVER_ERROR: message = formatMessage(messages['internal.server.error']); break; case FORBIDDEN_STATE: heading = formatMessage(messages['forgot.password.error.message.title']); message = formatMessage(messages['forgot.password.request.in.progress.message']); break; case FORM_SUBMISSION_ERROR: message = formatMessage(messages['extend.field.errors'], { emailError }); break; case PASSWORD_RESET.INVALID_TOKEN: heading = formatMessage(messages['invalid.token.heading']); message = formatMessage(messages['invalid.token.error.message']); break; case PASSWORD_RESET.FORBIDDEN_REQUEST: heading = formatMessage(messages['token.validation.rate.limit.error.heading']); message = formatMessage(messages['token.validation.rate.limit.error']); break; case PASSWORD_RESET.INTERNAL_SERVER_ERROR: heading = formatMessage(messages['token.validation.internal.sever.error.heading']); message = formatMessage(messages['token.validation.internal.sever.error']); break; default: break; } if (message) { return ( {heading}

{message}

); } return null; }; ForgotPasswordAlert.defaultProps = { email: '', emailError: '', }; ForgotPasswordAlert.propTypes = { status: PropTypes.string.isRequired, email: PropTypes.string, emailError: PropTypes.string, }; export default ForgotPasswordAlert;