{"version":3,"file":"PasswordResetRedirect.mjs","names":["React","useEffect","useState","useTranslation","clearStoredPath","LINK_EXPIRED","ACCOUNT_NOT_FOUND","UNEXPECTED_ERROR","PasswordResetRedirect","props","$","_c","t","errorType","setErrorType","t0","Symbol","for","errorDescription","decodedDescription","decodeURIComponent","replace","includes","formatError","t1","error","errorMessage","hash","window","location","params","URLSearchParams","substring","errorDescription_0","get","t2","t3","t4","defaultValue","t5","t6","t7","errorMessages","handleGoHome","_temp","t8","textAlign","marginTop","t9","t10","height","marginBottom","t11","t12","t13","t14","backgroundColor","color","border","padding","cursor","borderRadius","fontSize","t15","href"],"sources":["../../../src/routes/components/PasswordResetRedirect.jsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { clearStoredPath } from '../../utilities/redirect/LocalRedirectUrlStorage';\n\nconst LINK_EXPIRED = 'linkExpired';\nconst ACCOUNT_NOT_FOUND = 'accountNotFound';\nconst UNEXPECTED_ERROR = 'unexpectedError';\n\nexport const PasswordResetRedirect = (props) => {\n  const { t } = useTranslation();\n  const [errorType, setErrorType] = useState(null);\n\n  const formatError = (errorDescription) => {\n    const decodedDescription = decodeURIComponent(errorDescription).replace(\n      /%0d%0a/g,\n      '\\n'\n    ); // Replace %0d%0a with newlines for clarity\n\n    if (decodedDescription.includes('AADB2C90208')) {\n      // Hardcoded message for AADB2C90208 (a specific error code, often related to user not found or invalid credentials)\n      setErrorType(LINK_EXPIRED);\n      // Check for \"AADB2C\" or \"AADB2C90208\" in the decoded description\n    } else if (decodedDescription.includes('AADB2C')) {\n      // Hardcoded message for generic AADB2C errors\n      setErrorType(ACCOUNT_NOT_FOUND);\n    } else {\n      // Fallback message if neither error is found (optional)\n      setErrorType(UNEXPECTED_ERROR);\n    }\n  };\n\n  useEffect(() => {\n    // Get the hash portion of the URL\n    const hash = window.location.hash || ''; // Fallback to empty string if no hash\n\n    if (props?.error?.errorMessage) {\n      formatError(props?.error?.errorMessage);\n    } else if (hash) {\n      // Parse the hash to get query parameters\n      const params = new URLSearchParams(hash.substring(1)); // Remove \"#\" and parse\n\n      // Get and decode the error_description\n      const errorDescription = params.get('error_description');\n\n      if (errorDescription) {\n        formatError(errorDescription);\n        // Decode the URL-encoded string\n      }\n    }\n  }, [props?.error?.errorMessage]);\n\n  const errorMessages = {\n    [LINK_EXPIRED]: t('routes.passwordReset.linkExpired', {\n      defaultValue: 'The password reset link has expired.'\n    }),\n    [ACCOUNT_NOT_FOUND]: t('routes.passwordReset.accountNotFound', {\n      defaultValue: 'Unable to find an account associated to that email.'\n    }),\n    [UNEXPECTED_ERROR]: t('routes.passwordReset.unexpectedError', {\n      defaultValue: 'An unexpected error occurred.'\n    })\n  };\n\n  const handleGoHome = () => {\n    clearStoredPath();\n    window.location.href = '/';\n  };\n\n  return (\n    <div>\n      <div style={{ textAlign: 'center', marginTop: '50px' }}>\n        <img\n          src='https://customb2cpolicydevtest.blob.core.windows.net/root/unitylogo.svg'\n          alt={t('routes.passwordReset.logoAlt', {\n            defaultValue: 'Unity Logo'\n          })}\n          width='300'\n          style={{ height: 'auto', marginBottom: 50 }}\n        />\n        {errorType ? (\n          <h2>{errorMessages[errorType]}</h2>\n        ) : (\n          <h2>\n            {t('routes.passwordReset.success', {\n              defaultValue: 'Your password has been successfully reset'\n            })}\n          </h2>\n        )}\n        {errorType !== LINK_EXPIRED && (\n          <p>\n            {t('routes.passwordReset.returnPrompt', {\n              defaultValue:\n                'Please click below to return to the sign in page'\n            })}\n          </p>\n        )}\n\n        {errorType !== LINK_EXPIRED && (\n          <button\n            onClick={handleGoHome}\n            style={{\n              marginTop: '10px',\n              backgroundColor: '#0C2F50',\n              color: 'white',\n              border: 'none',\n              padding: '10px 20px',\n              cursor: 'pointer',\n              borderRadius: '5px',\n              fontSize: '16px'\n            }}\n          >\n            {t('routes.passwordReset.signIn', { defaultValue: 'Sign In' })}\n          </button>\n        )}\n      </div>\n    </div>\n  );\n};\n\nexport default PasswordResetRedirect;\n"],"mappings":"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"}