import { ReactNode } from "react"; // import Link from "next/link"; // import { EAuthenticationErrorCodes } from "@/helpers/authentication.helper"; export enum EPageTypes { PUBLIC = "PUBLIC", NON_AUTHENTICATED = "NON_AUTHENTICATED", SET_PASSWORD = "SET_PASSWORD", ONBOARDING = "ONBOARDING", AUTHENTICATED = "AUTHENTICATED", } export enum EAuthModes { SIGN_IN = "SIGN_IN", SIGN_UP = "SIGN_UP", } export enum EAuthSteps { EMAIL = "EMAIL", PASSWORD = "PASSWORD", UNIQUE_CODE = "UNIQUE_CODE", } // TODO: remove this export enum EErrorAlertType { BANNER_ALERT = "BANNER_ALERT", INLINE_FIRST_NAME = "INLINE_FIRST_NAME", INLINE_EMAIL = "INLINE_EMAIL", INLINE_PASSWORD = "INLINE_PASSWORD", INLINE_EMAIL_CODE = "INLINE_EMAIL_CODE", } export enum EAuthErrorCodes { // Global INSTANCE_NOT_CONFIGURED = "5000", INVALID_EMAIL = "5005", EMAIL_REQUIRED = "5010", SIGNUP_DISABLED = "5015", MAGIC_LINK_LOGIN_DISABLED = "5017", PASSWORD_LOGIN_DISABLED = "5019", SMTP_NOT_CONFIGURED = "5025", // Password strength INVALID_PASSWORD = "5020", // Sign Up // USER_ACCOUNT_DEACTIVATED = "5019", USER_ALREADY_EXIST = "5030", AUTHENTICATION_FAILED_SIGN_UP = "5035", REQUIRED_EMAIL_PASSWORD_SIGN_UP = "5040", INVALID_EMAIL_SIGN_UP = "5045", INVALID_EMAIL_MAGIC_SIGN_UP = "5050", MAGIC_SIGN_UP_EMAIL_CODE_REQUIRED = "5055", // Sign In USER_DOES_NOT_EXIST = "5060", AUTHENTICATION_FAILED_SIGN_IN = "5065", REQUIRED_EMAIL_PASSWORD_SIGN_IN = "5070", INVALID_EMAIL_SIGN_IN = "5075", INVALID_EMAIL_MAGIC_SIGN_IN = "5080", MAGIC_SIGN_IN_EMAIL_CODE_REQUIRED = "5085", // Both Sign in and Sign up for magic INVALID_MAGIC_CODE = "5090", EXPIRED_MAGIC_CODE = "5095", EMAIL_CODE_ATTEMPT_EXHAUSTED = "5100", // Oauth GOOGLE_NOT_CONFIGURED = "5105", GITHUB_NOT_CONFIGURED = "5110", GOOGLE_OAUTH_PROVIDER_ERROR = "5115", GITHUB_OAUTH_PROVIDER_ERROR = "5120", // Reset Password INVALID_PASSWORD_TOKEN = "5125", EXPIRED_PASSWORD_TOKEN = "5130", // Change password INCORRECT_OLD_PASSWORD = "5135", MISSING_PASSWORD= "5138", INVALID_NEW_PASSWORD = "5140", // set passowrd PASSWORD_ALREADY_SET = "5145", // Admin ADMIN_ALREADY_EXIST = "5150", REQUIRED_ADMIN_EMAIL_PASSWORD_FIRST_NAME = "5155", INVALID_ADMIN_EMAIL = "5160", INVALID_ADMIN_PASSWORD = "5165", REQUIRED_ADMIN_EMAIL_PASSWORD = "5170", ADMIN_AUTHENTICATION_FAILED = "5175", ADMIN_USER_ALREADY_EXIST = "5180", ADMIN_USER_DOES_NOT_EXIST = "5185", } export type TAuthErrorInfo = { type: EErrorAlertType; code: EAuthErrorCodes; title: string; message: ReactNode; }; // const errorCodeMessages: { // [key in EAuthErrorCodes]: { title: string; message: (email?: string | undefined) => ReactNode }; // } = { // // global // [EAuthErrorCodes.INSTANCE_NOT_CONFIGURED]: { // title: `Instance not configured`, // message: () => `Instance not configured. Please contact your administrator.`, // }, // [EAuthErrorCodes.SIGNUP_DISABLED]: { // title: `Sign up disabled`, // message: () => `Sign up disabled. Please contact your administrator.`, // }, // [EAuthErrorCodes.INVALID_PASSWORD]: { // title: `Invalid password`, // message: () => `Invalid password. Please try again.`, // }, // [EAuthErrorCodes.SMTP_NOT_CONFIGURED]: { // title: `SMTP not configured`, // message: () => `SMTP not configured. Please contact your administrator.`, // }, // email check in both sign up and sign in // [EAuthErrorCodes.INVALID_EMAIL]: { // title: `Invalid email`, // message: () => `Invalid email. Please try again.`, // }, // [EAuthenticationErrorCodes.EMAIL_REQUIRED]: { // title: `Email required`, // message: () => `Email required. Please try again.`, // }, // // sign up // [EAuthenticationErrorCodes.USER_ALREADY_EXIST]: { // title: `User already exists`, // message: (email = undefined) => ( //
// Your account is already registered.  // // Sign In // //  now. //
// ), // }, // [EAuthenticationErrorCodes.REQUIRED_EMAIL_PASSWORD_SIGN_UP]: { // title: `Email and password required`, // message: () => `Email and password required. Please try again.`, // }, // [EAuthenticationErrorCodes.AUTHENTICATION_FAILED_SIGN_UP]: { // title: `Authentication failed`, // message: () => `Authentication failed. Please try again.`, // }, // [EAuthenticationErrorCodes.INVALID_EMAIL_SIGN_UP]: { // title: `Invalid email`, // message: () => `Invalid email. Please try again.`, // }, // [EAuthenticationErrorCodes.MAGIC_SIGN_UP_EMAIL_CODE_REQUIRED]: { // title: `Email and code required`, // message: () => `Email and code required. Please try again.`, // }, // [EAuthenticationErrorCodes.INVALID_EMAIL_MAGIC_SIGN_UP]: { // title: `Invalid email`, // message: () => `Invalid email. Please try again.`, // }, // // sign in // [EAuthenticationErrorCodes.USER_ACCOUNT_DEACTIVATED]: { // title: `User account deactivated`, // message: () =>
Your account is deactivated. Contact support@plane.so.
, // }, // [EAuthenticationErrorCodes.USER_DOES_NOT_EXIST]: { // title: `User does not exist`, // message: (email = undefined) => ( //
// No account found.  // // Create one // //  to get started. //
// ), // }, // [EAuthenticationErrorCodes.REQUIRED_EMAIL_PASSWORD_SIGN_IN]: { // title: `Email and password required`, // message: () => `Email and password required. Please try again.`, // }, // [EAuthenticationErrorCodes.AUTHENTICATION_FAILED_SIGN_IN]: { // title: `Authentication failed`, // message: () => `Authentication failed. Please try again.`, // }, // [EAuthenticationErrorCodes.INVALID_EMAIL_SIGN_IN]: { // title: `Invalid email`, // message: () => `Invalid email. Please try again.`, // }, // [EAuthenticationErrorCodes.MAGIC_SIGN_IN_EMAIL_CODE_REQUIRED]: { // title: `Email and code required`, // message: () => `Email and code required. Please try again.`, // }, // [EAuthenticationErrorCodes.INVALID_EMAIL_MAGIC_SIGN_IN]: { // title: `Invalid email`, // message: () => `Invalid email. Please try again.`, // }, // // Both Sign in and Sign up // [EAuthenticationErrorCodes.INVALID_MAGIC_CODE]: { // title: `Authentication failed`, // message: () => `Invalid magic code. Please try again.`, // }, // [EAuthenticationErrorCodes.EXPIRED_MAGIC_CODE]: { // title: `Expired magic code`, // message: () => `Expired magic code. Please try again.`, // }, // [EAuthenticationErrorCodes.EMAIL_CODE_ATTEMPT_EXHAUSTED]: { // title: `Expired magic code`, // message: () => `Expired magic code. Please try again.`, // }, // // Oauth // [EAuthenticationErrorCodes.GOOGLE_NOT_CONFIGURED]: { // title: `Google not configured`, // message: () => `Google not configured. Please contact your administrator.`, // }, // [EAuthenticationErrorCodes.GITHUB_NOT_CONFIGURED]: { // title: `GitHub not configured`, // message: () => `GitHub not configured. Please contact your administrator.`, // }, // [EAuthenticationErrorCodes.GOOGLE_OAUTH_PROVIDER_ERROR]: { // title: `Google OAuth provider error`, // message: () => `Google OAuth provider error. Please try again.`, // }, // [EAuthenticationErrorCodes.GITHUB_OAUTH_PROVIDER_ERROR]: { // title: `GitHub OAuth provider error`, // message: () => `GitHub OAuth provider error. Please try again.`, // }, // // Reset Password // [EAuthenticationErrorCodes.INVALID_PASSWORD_TOKEN]: { // title: `Invalid password token`, // message: () => `Invalid password token. Please try again.`, // }, // [EAuthenticationErrorCodes.EXPIRED_PASSWORD_TOKEN]: { // title: `Expired password token`, // message: () => `Expired password token. Please try again.`, // }, // // Change password // [EAuthenticationErrorCodes.MISSING_PASSWORD]: { // title: `Password required`, // message: () => `Password required. Please try again.`, // }, // [EAuthenticationErrorCodes.INCORRECT_OLD_PASSWORD]: { // title: `Incorrect old password`, // message: () => `Incorrect old password. Please try again.`, // }, // [EAuthenticationErrorCodes.INVALID_NEW_PASSWORD]: { // title: `Invalid new password`, // message: () => `Invalid new password. Please try again.`, // }, // // set password // [EAuthenticationErrorCodes.PASSWORD_ALREADY_SET]: { // title: `Password already set`, // message: () => `Password already set. Please try again.`, // }, // // admin // [EAuthenticationErrorCodes.ADMIN_ALREADY_EXIST]: { // title: `Admin already exists`, // message: () => `Admin already exists. Please try again.`, // }, // [EAuthenticationErrorCodes.REQUIRED_ADMIN_EMAIL_PASSWORD_FIRST_NAME]: { // title: `Email, password and first name required`, // message: () => `Email, password and first name required. Please try again.`, // }, // [EAuthenticationErrorCodes.INVALID_ADMIN_EMAIL]: { // title: `Invalid admin email`, // message: () => `Invalid admin email. Please try again.`, // }, // [EAuthenticationErrorCodes.INVALID_ADMIN_PASSWORD]: { // title: `Invalid admin password`, // message: () => `Invalid admin password. Please try again.`, // }, // [EAuthenticationErrorCodes.REQUIRED_ADMIN_EMAIL_PASSWORD]: { // title: `Email and password required`, // message: () => `Email and password required. Please try again.`, // }, // [EAuthenticationErrorCodes.ADMIN_AUTHENTICATION_FAILED]: { // title: `Authentication failed`, // message: () => `Authentication failed. Please try again.`, // }, // [EAuthenticationErrorCodes.ADMIN_USER_ALREADY_EXIST]: { // title: `Admin user already exists`, // message: () => ( //
// Admin user already exists.  // // Sign In // //  now. //
// ), // }, // [EAuthenticationErrorCodes.ADMIN_USER_DOES_NOT_EXIST]: { // title: `Admin user does not exist`, // message: () => ( //
// Admin user does not exist.  // // Sign In // //  now. //
// ), // }, // }; // export const authErrorHandler = ( // errorCode: EAuthenticationErrorCodes, // email?: string | undefined // ): TAuthErrorInfo | undefined => { // const bannerAlertErrorCodes = [ // EAuthenticationErrorCodes.INSTANCE_NOT_CONFIGURED, // EAuthenticationErrorCodes.INVALID_EMAIL, // EAuthenticationErrorCodes.EMAIL_REQUIRED, // EAuthenticationErrorCodes.SIGNUP_DISABLED, // EAuthenticationErrorCodes.INVALID_PASSWORD, // EAuthenticationErrorCodes.SMTP_NOT_CONFIGURED, // EAuthenticationErrorCodes.USER_ALREADY_EXIST, // EAuthenticationErrorCodes.AUTHENTICATION_FAILED_SIGN_UP, // EAuthenticationErrorCodes.REQUIRED_EMAIL_PASSWORD_SIGN_UP, // EAuthenticationErrorCodes.INVALID_EMAIL_SIGN_UP, // EAuthenticationErrorCodes.INVALID_EMAIL_MAGIC_SIGN_UP, // EAuthenticationErrorCodes.MAGIC_SIGN_UP_EMAIL_CODE_REQUIRED, // EAuthenticationErrorCodes.USER_DOES_NOT_EXIST, // EAuthenticationErrorCodes.AUTHENTICATION_FAILED_SIGN_IN, // EAuthenticationErrorCodes.REQUIRED_EMAIL_PASSWORD_SIGN_IN, // EAuthenticationErrorCodes.INVALID_EMAIL_SIGN_IN, // EAuthenticationErrorCodes.INVALID_EMAIL_MAGIC_SIGN_IN, // EAuthenticationErrorCodes.MAGIC_SIGN_IN_EMAIL_CODE_REQUIRED, // // EAuthenticationErrorCodes.INVALID_MAGIC_CODE, // // EAuthenticationErrorCodes.EXPIRED_MAGIC_CODE, // // EAuthenticationErrorCodes.EMAIL_CODE_ATTEMPT_EXHAUSTED, // EAuthenticationErrorCodes.GOOGLE_NOT_CONFIGURED, // EAuthenticationErrorCodes.GITHUB_NOT_CONFIGURED, // EAuthenticationErrorCodes.GOOGLE_OAUTH_PROVIDER_ERROR, // EAuthenticationErrorCodes.GITHUB_OAUTH_PROVIDER_ERROR, // EAuthenticationErrorCodes.INVALID_PASSWORD_TOKEN, // EAuthenticationErrorCodes.EXPIRED_PASSWORD_TOKEN, // EAuthenticationErrorCodes.INCORRECT_OLD_PASSWORD, // EAuthenticationErrorCodes.INVALID_NEW_PASSWORD, // EAuthenticationErrorCodes.PASSWORD_ALREADY_SET, // EAuthenticationErrorCodes.ADMIN_ALREADY_EXIST, // EAuthenticationErrorCodes.REQUIRED_ADMIN_EMAIL_PASSWORD_FIRST_NAME, // EAuthenticationErrorCodes.INVALID_ADMIN_EMAIL, // EAuthenticationErrorCodes.INVALID_ADMIN_PASSWORD, // EAuthenticationErrorCodes.REQUIRED_ADMIN_EMAIL_PASSWORD, // EAuthenticationErrorCodes.ADMIN_AUTHENTICATION_FAILED, // EAuthenticationErrorCodes.ADMIN_USER_ALREADY_EXIST, // EAuthenticationErrorCodes.ADMIN_USER_DOES_NOT_EXIST, // ]; // if (bannerAlertErrorCodes.includes(errorCode)) // return { // type: EErrorAlertType.BANNER_ALERT, // code: errorCode, // title: errorCodeMessages[errorCode]?.title || "Error", // message: errorCodeMessages[errorCode]?.message(email) || "Something went wrong. Please try again.", // }; // return undefined; // };