import React, { ComponentType, ReactElement, ReactNode } from 'react'; import { Link } from 'react-router-dom'; import { FormattedMessage as Message } from 'react-intl'; import { RelativeTime } from 'app/components/ui'; import messages from './errorsDict.intl.json'; const SuggestResetPassword: ComponentType = () => ( <>
), }} /> ); const ResendKey: ComponentType<{ url: string }> = ({ url }) => ( <> {' '} ); const errorsMap: Record< string, (props?: Record) => ReactElement > = { 'error.login_required': () => , 'error.login_not_exist': () => , 'error.password_required': () => , 'error.password_incorrect': (props) => ( // props are handled in validationErrorsHandler in components/auth/actions <> {props && props.isGuest ? : null} ), 'error.username_required': () => , 'error.username_invalid': () => , 'error.username_too_short': () => , 'error.username_too_long': () => , 'error.username_not_available': () => ( ), 'error.email_required': () => , 'error.email_too_long': () => , 'error.email_invalid': () => , 'error.email_is_tempmail': () => , 'error.email_not_available': (props) => ( // props are handled in validationErrorsHandler in components/auth/actions <> {props && props.isGuest ? : null} ), 'error.totp_required': () => , 'error.totp_incorrect': () => , 'error.otp_already_enabled': () => ( ), 'error.rePassword_required': () => ( ), 'error.password_too_short': () => , 'error.rePassword_does_not_match': () => ( ), 'error.rulesAgreement_required': () => ( ), 'error.key_required': () => , 'error.key_not_exists': (props) => ( <> {props && props.repeatUrl ? : null} ), 'error.key_expire': (props) => errorsMap['error.key_not_exists'](props), 'error.newPassword_required': () => ( ), 'error.newRePassword_required': () => ( ), 'error.account_not_activated': () => ( ), 'error.account_banned': () => , 'error.recently_sent_message': (props) => ( , }} /> ), 'error.email_not_found': () => , 'error.account_already_activated': () => ( ), 'error.captcha_required': () => , 'error.captcha_invalid': (props) => errorsMap['error.captcha_required'](props), 'error.redirectUri_required': () => ( ), 'error.redirectUri_invalid': () => ( ), }; interface ErrorLiteral { type: string; payload?: Record; } type Error = string | ErrorLiteral; export function resolve(error: Error): ReactNode { let payload = {}; if (typeof error !== 'string') { payload = error.payload || {}; error = error.type; } return errorsMap[error] ? errorsMap[error](payload) : error; }