{"version":3,"file":"AuthPage-b_gDWLOc.js","sources":["../../src/images/auth-background.webp","../../src/components/pages/Auth/AuthPageHeader.tsx","../../src/hooks/queries/useIsLoggedInQuery.ts","../../src/components/shared/PublicOnlyRoute.tsx","../../src/components/pages/Auth/FormSection/FormContent/FormContentElements/Form.tsx","../../src/components/pages/Auth/FormSection/FormContent/FormContentElements/SubmitButton.tsx","../../src/components/pages/Auth/FormSection/FormContent/CreateAccountFormContent/CreateAccountForm.tsx","../../src/components/pages/Auth/FormSection/FormContent/FormContentElements/FormContentHeader.tsx","../../src/components/pages/Auth/FormSection/FormContent/FormContentElements/FormContentFooter.tsx","../../src/components/pages/Auth/FormSection/FormContent/CreateAccountFormContent/SignupsOpen/useSetSessionValues/useSetSessionValues.ts","../../src/components/pages/Auth/FormSection/FormContent/CreateAccountFormContent/SignupsOpen/SignupsOpen.tsx","../../src/components/pages/Auth/FormSection/FormContent/FormContentElements/Subtitle.tsx","../../src/components/pages/Auth/FormSection/FormContent/CreateAccountFormContent/SignupsClosed.tsx","../../src/components/pages/Auth/FormSection/FormContent/CreateAccountFormContent/CreateAccountFormContent.tsx","../../src/components/pages/Auth/FormSection/FormContent/ForgotPasswordFormContent/ForgotPasswordForm.tsx","../../src/components/pages/Auth/FormSection/FormContent/ForgotPasswordFormContent/ForgotPasswordFormContent.tsx","../../src/components/pages/Auth/FormSection/FormContent/LoginFormContent/LoginForm.tsx","../../src/components/pages/Auth/FormSection/FormContent/LoginFormContent/LoginFormContent.tsx","../../src/components/pages/Auth/FormSection/FormContent/ResetPasswordFormContent/ResetPasswordForm.tsx","../../src/components/pages/Auth/FormSection/FormContent/ResetPasswordFormContent/ResetPasswordFormContent.tsx","../../src/components/pages/Auth/FormSection/FormContent/VerifyEmailFormContent.tsx","../../src/components/pages/Auth/FormSection/FormRouting.tsx","../../src/components/pages/Auth/FormSection/FormSection.tsx","../../src/utils/getRandomIntegerInInterval.ts","../../src/components/pages/Auth/WelcomeSection/useWelcomeMessageGenerator.ts","../../src/components/pages/Auth/WelcomeSection/WelcomeSection.tsx","../../src/components/pages/Auth/InviteAndEarnSection/InviteAndEarnSection.tsx","../../src/components/pages/Auth/AuthPage.tsx"],"sourcesContent":["export default \"__VITE_ASSET__A$7xXXtr__\"","import styled from '@emotion/styled';\nimport { AppBar, Container, Toolbar } from '@mui/material';\nimport { FunctionComponent } from 'react';\n\nimport { isCurrentAppTheme } from 'appConfig';\nimport { ReactComponent as AppLogoSVG } from 'images/app-logo.svg';\nimport { ReactComponent as AppLogoAltSVG } from 'images/app-logo-alt.svg';\n\nconst isDefaultAppTheme = isCurrentAppTheme('default');\n\nconst StyledAppLogo = styled(isDefaultAppTheme ? AppLogoSVG : AppLogoAltSVG)`\n width: auto;\n display: flex;\n height: 3.25rem;\n\n ${({ theme }) => theme.breakpoints.down('md')} {\n height: 2.5rem;\n }\n`;\n\nexport const AuthPageHeader: FunctionComponent = () => {\n const backgroundColor = isDefaultAppTheme ? 'transparent' : 'background.paper';\n\n return (\n \n \n \n \n \n \n \n );\n};\n","import { gql, useQuery, QueryHookOptions, QueryResult } from '@apollo/client';\nimport { useDefaultOnError } from 'hooks/useDefaultOnError';\n\nconst IS_LOGGED_IN_QUERY = gql`\n query isLoggedInQuery {\n isLoggedIn\n }\n`;\n\ninterface IsLoggedInQueryData {\n isLoggedIn: boolean;\n}\n\nexport function useIsLoggedInQuery(options?: QueryHookOptions): QueryResult {\n const onError = useDefaultOnError();\n return useQuery(IS_LOGGED_IN_QUERY, { ...options, onError });\n}\n","import { FunctionComponent } from 'react';\nimport { RouteProps, Redirect } from 'react-router-dom';\nimport { Route } from 'shared/Route';\n\nimport { useIsLoggedInQuery } from 'hooks/queries/useIsLoggedInQuery';\n\nexport const PublicOnlyRoute: FunctionComponent = (props) => {\n const { data, loading, error } = useIsLoggedInQuery();\n\n if (loading) {\n return null;\n }\n\n if (error || !data) {\n return ;\n }\n\n if (data.isLoggedIn) {\n return ;\n }\n\n return ;\n};\n","import styled from '@emotion/styled';\nimport { Form } from 'formik';\n\nexport const StyledForm = styled(Form)`\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-top: 0.5rem;\n`;\n","import styled from '@emotion/styled';\n\nimport { ProgressButton, ProgressButtonProps } from 'shared/ProgressButtons/ProgressButton';\n\nexport const SubmitButton = styled((props: ProgressButtonProps) => (\n \n))`\n margin-top: 1rem;\n margin-bottom: 0.5rem;\n min-width: 15rem;\n\n ${({ theme }) => theme.breakpoints.down('sm')} {\n width: 100%;\n }\n`;\n","import { gql, useMutation } from '@apollo/client';\nimport { ChangeEvent, FunctionComponent, useState } from 'react';\nimport styled from '@emotion/styled';\nimport { Email as EmailIcon } from '@mui/icons-material';\n\nimport { Formik } from 'formik';\nimport { useSnackbar } from 'notistack';\nimport { useHistory } from 'react-router-dom';\nimport { APIErrorCode } from 'utils/APIErrorCodes/APIErrorCode';\nimport { PasswordPolicy } from 'shared/PasswordPolicy/PasswordPolicy';\n\nimport { config } from 'appConfig';\nimport { logError } from 'utils/logging';\nimport { useUserTracking } from 'userTracking/useUserTracking';\nimport { FormValues } from 'hooks/useFormUtils';\nimport { PasswordField } from 'shared/PasswordField';\nimport { PasswordErrors } from 'shared/PasswordErrors';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { validatePassword } from 'utils/passwordValidation';\nimport { useSearchParamsDictionary, sanitizeToSingleValue } from 'utils/searchParams';\nimport { useDefaultOnError } from 'hooks/useDefaultOnError';\nimport { isError } from 'typeDeclarations/typeGuards';\nimport { StyledForm } from '../FormContentElements/Form';\nimport { SubmitButton } from '../FormContentElements/SubmitButton';\n\nimport { Link, Checkbox, TextField, Typography, InputAdornment, FormControlLabel, Alert } from '@mui/material';\n\nconst REFERRAL_SEARCH_PARAM = 'referral';\nconst EMAIL_SEARCH_PARAM = 'email';\nconst NAME_SEARCH_PARAM = 'name';\n\nconst StyledFormControlLabel = styled(FormControlLabel)`\n display: flex;\n align-self: flex-start;\n`;\n\nconst StyledPasswordPolicy = styled(PasswordPolicy)`\n width: 100%;\n margin-top: 1rem;\n`;\n\nconst StyledPasswordErrors = styled(PasswordErrors)`\n width: 100%;\n margin-bottom: 0.5rem;\n`;\n\nconst SIGNUP_MUTATION = gql`\n mutation signupMutation($input: SignupInput!) {\n signup(input: $input) {\n clientMutationId\n }\n }\n`;\n\ninterface SignupMutationInput {\n email: string;\n password: string;\n name?: string | null;\n referredBy?: string | null;\n}\n\ninterface SignupMutationVariables {\n input: SignupMutationInput;\n}\n\ninterface CreateAccountFormValues extends FormValues {\n email: string;\n password: string;\n repeatPassword: string;\n acceptTermsOfUse: boolean;\n}\n\nexport const CreateAccountForm: FunctionComponent = () => {\n const history = useHistory();\n const onError = useDefaultOnError();\n const { enqueueSnackbar } = useSnackbar();\n const { captureEvent, identifyUser } = useUserTracking();\n const { formatMessage, formatAPIErrorCode } = useExtendedIntl();\n\n const [emailMutationError, setEmailMutationError] = useState(null);\n const [passwordMutationError, setPasswordMutationError] = useState(null);\n\n const searchParams = useSearchParamsDictionary();\n const sanitizedName = sanitizeToSingleValue(searchParams[NAME_SEARCH_PARAM]);\n const sanitizedEmail = sanitizeToSingleValue(searchParams[EMAIL_SEARCH_PARAM]);\n const sanitizedReferralId = sanitizeToSingleValue(searchParams[REFERRAL_SEARCH_PARAM]);\n\n const [signup, { client, error: mutationError }] = useMutation(SIGNUP_MUTATION, {\n onCompleted: async () => {\n await identifyUser();\n captureEvent({ eventName: 'signUp' });\n\n client\n .resetStore()\n .then(() => history.replace('/'))\n .catch((err) => {\n if (isError(err)) {\n logError(err);\n }\n\n window.location.href = '/';\n });\n },\n onError: (apolloError) =>\n onError(apolloError, {\n errorHandlers: {\n [APIErrorCode.PasswordTooShort]: () => {},\n [APIErrorCode.PasswordTooCommon]: () => {},\n [APIErrorCode.PasswordEntirelyNumeric]: () => {},\n [APIErrorCode.PasswordSimilarWithUserData]: () => {},\n [APIErrorCode.EmailAlreadyExists]: (data) => {\n const errorMessage = formatAPIErrorCode({\n data,\n errorCode: APIErrorCode.EmailAlreadyExists,\n });\n\n setEmailMutationError(errorMessage);\n },\n [APIErrorCode.AlreadyLoggedIn]: (data) => {\n enqueueSnackbar(formatAPIErrorCode({ errorCode: APIErrorCode.AlreadyLoggedIn, data }), { variant: 'info' });\n\n history.replace('/');\n },\n },\n }),\n });\n\n return (\n \n validateOnBlur={false}\n validateOnChange={false}\n initialValues={{\n password: '',\n repeatPassword: '',\n acceptTermsOfUse: false,\n email: sanitizedEmail ?? '',\n }}\n onSubmit={({ email, password }) => {\n // clear the errors states\n setPasswordMutationError(null);\n setEmailMutationError(null);\n\n return signup({\n variables: {\n input: {\n email,\n password,\n referredBy: sanitizedReferralId ?? null,\n name: sanitizedName ?? null,\n },\n },\n });\n }}\n validate={({ password, repeatPassword }) => {\n const errors: PartialRecord = {};\n\n if (password && repeatPassword && password !== repeatPassword) {\n errors.password = formatMessage({ id: 'error.password.passwords-do-not-match' });\n errors.repeatPassword = formatMessage({ id: 'error.password.passwords-do-not-match' });\n } else if (!validatePassword(password)) {\n errors.password = formatMessage({ id: 'error.password.invalid-password' });\n errors.repeatPassword = formatMessage({ id: 'error.password.invalid-password' });\n }\n\n return errors;\n }}\n >\n {({ values, errors, setErrors, handleBlur, isSubmitting, handleChange: defaultHandleChange }) => {\n const handleChange = (e: ChangeEvent) => {\n defaultHandleChange(e);\n setErrors({ ...errors, [e.target.name]: undefined });\n };\n\n return (\n \n {errors.generic && {errors.generic}}\n \n \n \n ),\n }}\n />\n \n \n \n \n }\n label={\n \n {formatMessage(\n { id: 'auth-page.form-section.create-account.form.checkbox.label' },\n {\n a1: (...chunks: unknown[]) => (\n \n {chunks}\n \n ),\n a2: (...chunks: unknown[]) => (\n \n {chunks}\n \n ),\n },\n )}\n \n }\n />\n \n {formatMessage({ id: 'auth-page.form-section.create-account.signups-open.form.submit-button' })}\n \n \n );\n }}\n \n );\n};\n","import { FunctionComponent } from 'react';\nimport { Typography } from '@mui/material';\n\nexport const FormContentHeader: FunctionComponent = ({ children }) => (\n \n {children}\n \n);\n","import { FunctionComponent } from 'react';\nimport styled from '@emotion/styled';\nimport { Typography } from '@mui/material';\n\nconst StyledFooter = styled.footer`\n width: 100%;\n margin-top: 2rem;\n`;\n\nexport const FormContentFooter: FunctionComponent = ({ children }) => (\n \n \n {children}\n \n \n);\n","import { useMutation, gql } from '@apollo/client';\n\nimport { useEffect } from 'react';\nimport { getObjectKeys } from 'utils/getObjectKeys';\nimport { useSearchParamsDictionary, sanitizeToSingleValue } from 'utils/searchParams';\n\n// refer to https://ga-dev-tools.appspot.com/campaign-url-builder/\nconst CAMPAIGN_SOURCE_SEARCH_PARAM = 'utm_source';\nconst CAMPAIGN_MEDIUM_SEARCH_PARAM = 'utm_medium';\nconst CAMPAIGN_NAME_SEARCH_PARAM = 'utm_campaign';\nconst CAMPAIGN_TERM_SEARCH_PARAM = 'utm_term';\nconst CAMPAIGN_CONTENT_SEARCH_PARAM = 'utm_content';\n\n// google click identifier\nconst GCLID_SEARCH_PARAM = 'gclid';\n\ninterface UTMExtra {\n utmTerm?: string | null;\n utmContent?: string | null;\n}\n\ninterface UTMValues {\n utmSource?: string | null;\n utmMedium?: string | null;\n utmCampaign?: string | null;\n}\n\ntype TrackingTerm = keyof UTMExtra | keyof UTMValues | 'gclid';\n\ninterface SetSessionValuesInput extends UTMValues {\n /**\n * JSON.stringify'ed object from UTMExtra\n */\n utmExtra?: string | null;\n gclid?: string | null;\n}\n\nexport interface SetSessionValuesMutationVariables {\n input: SetSessionValuesInput;\n}\n\nexport const SET_SESSION_VALUES_MUTATION = gql`\n mutation setSessionValuesMutation($input: SetSessionValuesInput!) {\n setSessionValues(input: $input) {\n clientMutationId\n }\n }\n`;\n\nexport function useSetSessionValues(): void {\n const [setSessionValues] = useMutation(SET_SESSION_VALUES_MUTATION, {\n fetchPolicy: 'no-cache', // we don't care about this mutation's data\n });\n\n const searchParams = useSearchParamsDictionary();\n\n useEffect(() => {\n const termsToSearchParamsMap: Record = {\n gclid: GCLID_SEARCH_PARAM,\n utmSource: CAMPAIGN_SOURCE_SEARCH_PARAM,\n utmMedium: CAMPAIGN_MEDIUM_SEARCH_PARAM,\n utmCampaign: CAMPAIGN_NAME_SEARCH_PARAM,\n utmTerm: CAMPAIGN_TERM_SEARCH_PARAM,\n utmContent: CAMPAIGN_CONTENT_SEARCH_PARAM,\n };\n\n // gclid and UTMValues go here\n const input: SetSessionValuesInput = {};\n // any other terms go here\n const utmExtra: UTMExtra = {};\n\n getObjectKeys(termsToSearchParamsMap).forEach((term) => {\n const param = termsToSearchParamsMap[term];\n const value = sanitizeToSingleValue(searchParams[param]);\n\n if (!value) {\n return;\n }\n\n if (term === 'utmTerm' || term === 'utmContent') {\n utmExtra[term] = value;\n } else {\n input[term] = value;\n }\n });\n\n if (Object.keys(utmExtra).length > 0) {\n input.utmExtra = JSON.stringify(utmExtra);\n }\n\n // only mutate if we have anything to send\n if (Object.keys(input).length > 0) {\n setSessionValues({ variables: { input } });\n }\n }, [searchParams, setSessionValues]);\n}\n","import { FunctionComponent } from 'react';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { Link as RouterLink } from 'react-router-dom';\nimport styled from '@emotion/styled';\nimport { CreateAccountForm } from '../CreateAccountForm';\n\nimport { TextDivider } from 'shared/TextDivider';\nimport { FormContentHeader } from '../../FormContentElements/FormContentHeader';\nimport { FormContentFooter } from '../../FormContentElements/FormContentFooter';\nimport { useSetSessionValues } from './useSetSessionValues/useSetSessionValues';\nimport { SocialProviders } from '../../SocialProviders';\nimport { PartnersThemeDecider } from 'shared/PartnersThemeDecider';\nimport { Link } from '@mui/material';\n\nconst StyledTextDivider = styled(TextDivider)`\n height: 4rem;\n`;\n\nexport const SignupsOpen: FunctionComponent = () => {\n const { formatMessage } = useExtendedIntl();\n\n useSetSessionValues();\n\n return (\n <>\n \n {formatMessage({ id: 'auth-page.form-section.create-account.signups-open.header' })}\n \n \n \n \n }\n />\n \n {formatMessage(\n { id: 'auth-page.form-section.create-account.signups-open.footer' },\n {\n a: (...chunks: unknown[]) => (\n \n {chunks}\n \n ),\n },\n )}\n \n \n );\n};\n","import { FunctionComponent } from 'react';\nimport styled from '@emotion/styled';\nimport { useIsMobileResolution } from 'hooks/useIsMobileResolution';\n\nimport { Typography } from '@mui/material';\n\nconst StyledTypography = styled(Typography)`\n margin-top: 1rem;\n`;\n\nexport const Subtitle: FunctionComponent = ({ children }) => {\n const isMobile = useIsMobileResolution();\n\n return (\n \n {children}\n \n );\n};\n","import { FunctionComponent } from 'react';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport styled from '@emotion/styled';\nimport { ReactComponent as FacebookIcon } from 'images/facebook-circle.svg';\nimport { ReactComponent as LinkedInIcon } from 'images/linkedin-circle.svg';\nimport { ReactComponent as TwitterIcon } from 'images/twitter-circle.svg';\nimport { FormContentHeader } from '../FormContentElements/FormContentHeader';\nimport { Subtitle } from '../FormContentElements/Subtitle';\n\nimport { Link, SvgIcon } from '@mui/material';\n\nconst FACEBOOK_URL = 'https://www.facebook.com/leadzaifb';\nconst LINKEDIN_URL = 'https://www.linkedin.com/company/leadzai';\nconst TWITTER_URL = 'https://twitter.com/leadzai';\n\nconst SOCIAL_PROVIDER_ICONS_DICT = {\n twitter: TwitterIcon,\n facebook: FacebookIcon,\n linkedin: LinkedInIcon,\n};\n\nconst StyledLink = styled(Link)`\n height: 3rem;\n width: 3rem;\n\n svg {\n width: inherit;\n height: inherit;\n }\n`;\n\nconst SocialAccountsWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n padding: 0rem 3rem;\n margin-top: 1rem;\n\n ${({ theme }) => theme.breakpoints.down('lg')} {\n padding: 0rem 2rem;\n }\n\n ${({ theme }) => theme.breakpoints.down('md')} {\n justify-content: space-evenly;\n }\n\n ${({ theme }) => theme.breakpoints.down('sm')} {\n justify-content: space-between;\n }\n`;\n\nexport const SignupsClosed: FunctionComponent = () => {\n const { formatMessage } = useExtendedIntl();\n\n return (\n <>\n \n {formatMessage({ id: 'auth-page.form-section.create-account.signups-closed.header' })}\n \n {formatMessage({ id: 'auth-page.form-section.create-account.signups-closed.subtitle1' })}\n {formatMessage({ id: 'auth-page.form-section.create-account.signups-closed.subtitle2' })}\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { FunctionComponent } from 'react';\nimport { useQuery, gql } from '@apollo/client';\n\nimport { ErrorMessage } from 'shared/ErrorMessage';\nimport { SignupsOpen } from './SignupsOpen/SignupsOpen';\nimport { SignupsClosed } from './SignupsClosed';\n\nconst IS_SIGNUP_OPEN_QUERY = gql`\n query isSignupOpenQuery {\n isSignupOpen\n }\n`;\n\ninterface IsSignupOpenQueryData {\n isSignupOpen: boolean;\n}\n\nexport const CreateAccountFormContent: FunctionComponent = () => {\n const { data, loading, error } = useQuery(IS_SIGNUP_OPEN_QUERY);\n\n if (loading) {\n return null;\n }\n\n if (error || !data) {\n return ;\n }\n\n const { isSignupOpen } = data;\n\n if (!isSignupOpen) {\n return ;\n }\n\n return ;\n};\n","import { FunctionComponent, useState } from 'react';\nimport { gql, useMutation } from '@apollo/client';\n\nimport { Formik } from 'formik';\nimport { useHistory } from 'react-router-dom';\nimport { Email as EmailIcon } from '@mui/icons-material';\n\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { APIErrorCode } from 'utils/APIErrorCodes/APIErrorCode';\n\nimport { FormValues } from 'hooks/useFormUtils';\nimport { useDefaultOnError } from 'hooks/useDefaultOnError';\nimport { StyledForm } from '../FormContentElements/Form';\nimport { SubmitButton } from '../FormContentElements/SubmitButton';\n\nimport { TextField, InputAdornment, Alert } from '@mui/material';\n\nconst REQUEST_PASSWORD_RESET_MUTATION = gql`\n mutation requestPasswordResetMutation($input: RequestPasswordResetEmailInput!) {\n requestPasswordResetEmail(input: $input) {\n clientMutationId\n }\n }\n`;\n\ninterface RequestPasswordResetMutationInput {\n email: string;\n}\n\ninterface RequestPasswordResetMutationVariables {\n input: RequestPasswordResetMutationInput;\n}\n\ninterface ForgotPasswordFormValues extends FormValues {\n email: string;\n}\n\nexport const ForgotPasswordForm: FunctionComponent = () => {\n const onError = useDefaultOnError();\n const { formatMessage, formatAPIErrorCode } = useExtendedIntl();\n\n const [emailError, setEmailError] = useState(null);\n\n const history = useHistory();\n\n const [requestPasswordReset] = useMutation(\n REQUEST_PASSWORD_RESET_MUTATION,\n {\n onCompleted: () => {\n history.push('/auth/verify-email');\n },\n onError: (apolloError) =>\n onError(apolloError, {\n errorHandlers: {\n [APIErrorCode.EmailNotFound]: (data) => {\n setEmailError(\n formatAPIErrorCode({\n data,\n errorCode: APIErrorCode.EmailNotFound,\n }),\n );\n },\n [APIErrorCode.CantRequestPasswordForAnotherUser]: (data) => {\n setEmailError(\n formatAPIErrorCode({\n data,\n errorCode: APIErrorCode.CantRequestPasswordForAnotherUser,\n }),\n );\n },\n },\n }),\n },\n );\n\n return (\n \n initialValues={{\n email: '',\n }}\n onSubmit={(values) => {\n setEmailError(null);\n\n return requestPasswordReset({\n variables: {\n input: values,\n },\n });\n }}\n >\n {({ values, errors, handleChange, handleBlur, isSubmitting }) => (\n \n {errors.generic && {errors.generic}}\n \n \n \n ),\n }}\n />\n \n {formatMessage({ id: 'auth-page.form-section.forgot-password.form.submit-button' })}\n \n \n )}\n \n );\n};\n","import { FunctionComponent } from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { FormContentHeader } from '../FormContentElements/FormContentHeader';\n\nimport { FormContentFooter } from '../FormContentElements/FormContentFooter';\nimport { Subtitle } from '../FormContentElements/Subtitle';\nimport { ForgotPasswordForm } from './ForgotPasswordForm';\n\nimport { Link } from '@mui/material';\n\nexport const ForgotPasswordFormContent: FunctionComponent = () => {\n const { formatMessage } = useExtendedIntl();\n\n return (\n <>\n {formatMessage({ id: 'auth-page.form-section.forgot-password.header' })}\n {formatMessage({ id: 'auth-page.form-section.forgot-password.subtitle' })}\n \n \n {formatMessage(\n { id: 'auth-page.form-section.forgot-password.footer' },\n {\n a: (...chunks: unknown[]) => (\n \n {chunks}\n \n ),\n },\n )}\n \n \n );\n};\n","import { FunctionComponent, useState } from 'react';\nimport { Link, useHistory } from 'react-router-dom';\nimport { useMutation, gql } from '@apollo/client';\nimport styled from '@emotion/styled';\nimport { useSnackbar } from 'notistack';\nimport { Formik } from 'formik';\nimport { Email as EmailIcon } from '@mui/icons-material';\n\nimport { APIPermission } from 'typeDeclarations/enums';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\n\nimport { config } from 'appConfig';\nimport { FormValues } from 'hooks/useFormUtils';\nimport { PasswordField } from 'shared/PasswordField';\nimport { useDefaultOnError } from 'hooks/useDefaultOnError';\nimport { APIErrorCode } from 'utils/APIErrorCodes/APIErrorCode';\nimport { NUM_INITIAL_TEAMS } from 'components/Header/HeaderMenuToggle/HeaderMenuContent/TeamsMenu/TeamsMenu';\nimport { SessionQueryFragmentData, SessionQueryVariables, SESSION_QUERY_FRAGMENT } from 'hooks/queries/useSessionQuery';\nimport { StyledForm } from '../FormContentElements/Form';\nimport { SubmitButton } from '../FormContentElements/SubmitButton';\n\nimport { TextField, FormControlLabel, Checkbox, Typography, InputAdornment, Alert } from '@mui/material';\n\nconst StyledFormControlLabel = styled(FormControlLabel)`\n align-self: flex-start;\n margin-top: 0.5rem;\n`;\n\nconst StyledLinkTypography = styled(Typography)`\n margin-top: 0.5rem;\n outline: none;\n` as typeof Typography;\n\n/**\n * @author bra\n * if for some reason you decide to change the mutation's name: 'loginMutation'\n * don't forget to check/change the 'link.ts' file where this condition is being employed:\n * 'operation.operationName !== \"loginMutation\"'\n */\nconst LOGIN_MUTATION = gql`\n mutation loginMutation($frontend: String!, $teamsAmount: Int!, $input: LoginInput!, $permissions: [String!]!) {\n login(input: $input) {\n clientMutationId\n }\n query {\n ...sessionQueryFragment\n }\n }\n ${SESSION_QUERY_FRAGMENT}\n`;\n\ntype LoginMutationData = {\n query: SessionQueryFragmentData;\n};\n\ninterface LoginMutationInput {\n email: string;\n password: string;\n rememberMe: boolean | null;\n}\n\ninterface LoginMutationVariables extends SessionQueryVariables {\n input: LoginMutationInput;\n}\n\ninterface LoginFormValues extends FormValues {\n email: string;\n password: string;\n rememberMe: boolean;\n}\n\nexport const LoginForm: FunctionComponent = () => {\n const history = useHistory();\n const onError = useDefaultOnError();\n const { enqueueSnackbar } = useSnackbar();\n const { formatMessage, formatAPIErrorCode } = useExtendedIntl();\n\n const [emailError, setEmailError] = useState(null);\n const [passwordError, setPasswordError] = useState(null);\n\n const [attemptedEmail, setAttemptedEmail] = useState('');\n const [loginAttemptsError, setLoginAttemptsError] = useState(false);\n\n const nextPage = `/${history.location.search || ''}`;\n\n const [login] = useMutation(LOGIN_MUTATION, {\n onCompleted: () => history.replace(nextPage),\n onError: (apolloError) =>\n onError(apolloError, {\n errorHandlers: {\n [APIErrorCode.TooManyLoginAttempts]: () => {\n setLoginAttemptsError(true);\n },\n [APIErrorCode.AlreadyLoggedIn]: (data) => {\n enqueueSnackbar(formatAPIErrorCode({ errorCode: APIErrorCode.AlreadyLoggedIn, data }), { variant: 'info' });\n\n history.replace(nextPage);\n },\n [APIErrorCode.InvalidLoginCredentials]: (data) => {\n const errorMessage = formatAPIErrorCode({\n data,\n errorCode: APIErrorCode.InvalidLoginCredentials,\n });\n\n setEmailError(errorMessage);\n setPasswordError(errorMessage);\n },\n },\n }),\n });\n\n return (\n \n initialValues={{\n email: '',\n password: '',\n rememberMe: false,\n }}\n onSubmit={(values) => {\n // clear the errors states\n setEmailError(null);\n setPasswordError(null);\n setLoginAttemptsError(false);\n\n // need this to save which email the user attempted to login with\n // to show it when the TooManyLoginAttempts error occurs\n setAttemptedEmail(values.email);\n\n const { ViewAds, ViewKeywords, ViewAdIssues, PublishCampaigns } = APIPermission;\n\n return login({\n variables: {\n input: values,\n frontend: config.name,\n teamsAmount: NUM_INITIAL_TEAMS,\n permissions: [ViewAds, ViewKeywords, ViewAdIssues, PublishCampaigns],\n },\n });\n }}\n >\n {({ values, errors, handleBlur, handleChange, isSubmitting }) => (\n \n {errors.generic && {errors.generic}}\n {loginAttemptsError && (\n \n {formatAPIErrorCode({\n data: { email: attemptedEmail },\n errorCode: APIErrorCode.TooManyLoginAttempts,\n })}\n \n )}\n \n \n \n ),\n }}\n />\n \n }\n label={\n \n {formatMessage({ id: 'auth-page.form-section.login.form.checkbox.label' })}\n \n }\n />\n \n {formatMessage({ id: 'auth-page.form-section.login.form.submit-button' })}\n \n \n {formatMessage({ id: 'auth-page.form-section.login.form.forgot-password-link' })}\n \n \n )}\n \n );\n};\n","import { FunctionComponent } from 'react';\nimport styled from '@emotion/styled';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { PartnersThemeDecider } from 'shared/PartnersThemeDecider';\n\nimport { TextDivider } from 'shared/TextDivider';\nimport { FormContentHeader } from '../FormContentElements/FormContentHeader';\nimport { FormContentFooter } from '../FormContentElements/FormContentFooter';\nimport { LoginForm } from './LoginForm';\nimport { SocialProviders } from '../SocialProviders';\nimport { Link } from '@mui/material';\n\nconst StyledTextDivider = styled(TextDivider)`\n height: 4rem;\n`;\n\nexport const LoginFormContent: FunctionComponent = () => {\n const { formatMessage } = useExtendedIntl();\n\n return (\n <>\n {formatMessage({ id: 'auth.login-to-your-acc' })}\n \n \n \n }\n />\n \n {formatMessage(\n { id: 'auth-page.form-section.login.footer' },\n {\n a: (...chunks: unknown[]) => (\n \n {chunks}\n \n ),\n },\n )}\n \n \n );\n};\n","import { ChangeEvent, FunctionComponent } from 'react';\nimport { useMutation, gql } from '@apollo/client';\n\nimport { Formik } from 'formik';\nimport styled from '@emotion/styled';\nimport { useSnackbar } from 'notistack';\nimport { useHistory, Redirect } from 'react-router-dom';\n\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { APIErrorCode } from 'utils/APIErrorCodes/APIErrorCode';\n\nimport { FormValues } from 'hooks/useFormUtils';\nimport { PasswordField } from 'shared/PasswordField';\nimport { PasswordErrors } from 'shared/PasswordErrors';\nimport { validatePassword } from 'utils/passwordValidation';\nimport { useDefaultOnError } from 'hooks/useDefaultOnError';\nimport { PasswordPolicy } from 'shared/PasswordPolicy/PasswordPolicy';\nimport { useSearchParamsDictionary, sanitizeToSingleValue } from 'utils/searchParams';\nimport { StyledForm } from '../FormContentElements/Form';\nimport { SubmitButton } from '../FormContentElements/SubmitButton';\nimport { Alert } from '@mui/material';\n\nconst StyledPasswordPolicy = styled(PasswordPolicy)`\n width: 100%;\n margin-top: 1rem;\n`;\n\nconst StyledPasswordErrors = styled(PasswordErrors)`\n width: 100%;\n margin-top: 1rem;\n margin-bottom: 0.5rem;\n`;\n\nconst RESET_PASSWORD_MUTATION = gql`\n mutation resetPasswordMutation($input: ResetPasswordWithRecoveryTokenInput!) {\n resetPasswordWithRecoveryToken(input: $input) {\n clientMutationId\n }\n }\n`;\n\ninterface ResetPasswordMutationInput {\n token: string;\n newPassword: string;\n}\n\ninterface ResetPasswordMutationVariables {\n input: ResetPasswordMutationInput;\n}\n\ninterface ResetPasswordFormValues extends FormValues {\n password: string;\n repeatPassword: string;\n}\n\nexport const ResetPasswordForm: FunctionComponent = () => {\n const history = useHistory();\n const { enqueueSnackbar } = useSnackbar();\n const onError = useDefaultOnError();\n const { formatMessage } = useExtendedIntl();\n\n const { token } = useSearchParamsDictionary();\n const sanitizedToken = sanitizeToSingleValue(token);\n\n const [resetPassword, { error: mutationError }] = useMutation(\n RESET_PASSWORD_MUTATION,\n {\n onCompleted: () => {\n enqueueSnackbar(formatMessage({ id: 'auth-page.form-section.reset-password.form.on-completed' }), {\n variant: 'success',\n });\n\n history.replace('/auth/login');\n },\n onError: (apolloError) =>\n onError(apolloError, {\n errorHandlers: {\n [APIErrorCode.PasswordTooShort]: () => {},\n [APIErrorCode.PasswordTooCommon]: () => {},\n [APIErrorCode.PasswordEntirelyNumeric]: () => {},\n [APIErrorCode.PasswordSimilarWithUserData]: () => {},\n },\n }),\n },\n );\n\n if (!sanitizedToken) {\n return ;\n }\n\n return (\n \n validateOnChange={false}\n validateOnBlur={false}\n initialValues={{\n password: '',\n repeatPassword: '',\n }}\n onSubmit={({ password }) =>\n resetPassword({\n variables: {\n input: {\n token: sanitizedToken,\n newPassword: password,\n },\n },\n })\n }\n validate={({ password, repeatPassword }) => {\n const errors: PartialRecord = {};\n\n if (password && repeatPassword && password !== repeatPassword) {\n errors.password = formatMessage({ id: 'error.password.passwords-do-not-match' });\n errors.repeatPassword = formatMessage({ id: 'error.password.passwords-do-not-match' });\n } else if (!validatePassword(password)) {\n errors.password = formatMessage({ id: 'error.password.invalid-password' });\n errors.repeatPassword = formatMessage({ id: 'error.password.invalid-password' });\n }\n\n return errors;\n }}\n >\n {({ values, errors, setErrors, handleBlur, isSubmitting, handleChange: defaultHandleChange }) => {\n const handleChange = (e: ChangeEvent) => {\n defaultHandleChange(e);\n setErrors({ ...errors, [e.target.name]: undefined });\n };\n\n return (\n \n {errors.generic && {errors.generic}}\n \n \n \n \n \n {formatMessage({ id: 'auth-page.form-section.reset-password.form.submit-button' })}\n \n \n );\n }}\n \n );\n};\n","import { FunctionComponent } from 'react';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\n\nimport { FormContentHeader } from '../FormContentElements/FormContentHeader';\nimport { ResetPasswordForm } from './ResetPasswordForm';\n\nexport const ResetPasswordFormContent: FunctionComponent = () => {\n const { formatMessage } = useExtendedIntl();\n\n return (\n <>\n {formatMessage({ id: 'auth-page.form-section.reset-password.header' })}\n \n \n );\n};\n","import { FunctionComponent } from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { FormContentFooter } from './FormContentElements/FormContentFooter';\nimport { FormContentHeader } from './FormContentElements/FormContentHeader';\nimport { Subtitle } from './FormContentElements/Subtitle';\nimport { Link } from '@mui/material';\n\nexport const VerifyEmailFormContent: FunctionComponent = () => {\n const { formatMessage } = useExtendedIntl();\n\n return (\n <>\n {formatMessage({ id: 'auth-page.form-section.verify-email.header' })}\n {formatMessage({ id: 'auth-page.form-section.verify-email.subtitle' })}\n \n \n {formatMessage({ id: 'auth-page.form-section.verify-email.footer' })}\n \n \n \n );\n};\n","import { FunctionComponent } from 'react';\nimport { Switch } from 'react-router-dom';\nimport { Route } from 'shared/Route';\n\nimport { PublicOnlyRoute } from 'shared/PublicOnlyRoute';\nimport { CreateAccountFormContent } from './FormContent/CreateAccountFormContent/CreateAccountFormContent';\nimport { ForgotPasswordFormContent } from './FormContent/ForgotPasswordFormContent/ForgotPasswordFormContent';\nimport { LoginFormContent } from './FormContent/LoginFormContent/LoginFormContent';\nimport { ResetPasswordFormContent } from './FormContent/ResetPasswordFormContent/ResetPasswordFormContent';\nimport { VerifyEmailFormContent } from './FormContent/VerifyEmailFormContent';\n\nexport const FormRouting: FunctionComponent = () => (\n \n \n \n \n \n \n \n);\n","import { gql, useQuery } from '@apollo/client';\nimport { Paper, PaperProps, Theme, useMediaQuery } from '@mui/material';\nimport { FunctionComponent } from 'react';\n\nimport { FormRouting } from './FormRouting';\nimport { isCurrentAppTheme } from 'appConfig';\n\nconst IS_SIGNUP_OPEN_PRE_FETCH_QUERY = gql`\n query isSignupOpenPreFetchQuery {\n isSignupOpen\n }\n`;\n\nexport const FormSection: FunctionComponent = () => {\n // pre-fetch to avoid loading on create account form\n useQuery(IS_SIGNUP_OPEN_PRE_FETCH_QUERY);\n\n const isScreenBreakpointXs = useMediaQuery((theme) => theme.breakpoints.only('xs'));\n\n let variant: PaperProps['variant'] = undefined;\n if (!isCurrentAppTheme('default')) {\n variant = isScreenBreakpointXs ? 'elevation' : 'outlined';\n }\n\n return (\n \n \n \n );\n};\n","export function getRandomIntegerInInterval(min: number, max: number): number {\n if (min === max) {\n return min;\n }\n\n if (min > max) {\n throw new Error('Minimum is more than maximum');\n }\n\n return Math.floor(Math.random() * (max - min + 1) + min);\n}\n","import { useState, useEffect } from 'react';\n\nimport { isNull } from 'typeDeclarations/typeGuards';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { getRandomIntegerInInterval } from 'utils/getRandomIntegerInInterval';\n\nconst TOTAL_VARIANTS = 9;\nconst INTL_ID_STRING = 'auth-page.welcome-section.welcome-message.variant'; // <-- needs variant number at the end\n\nexport function useWelcomeMessageGenerator(): string | null {\n const { formatMessage } = useExtendedIntl();\n\n const [variant, setVariant] = useState(null);\n\n useEffect(() => {\n setVariant(getRandomIntegerInInterval(1, TOTAL_VARIANTS));\n }, []);\n\n if (isNull(variant)) return null;\n\n return formatMessage({ id: `${INTL_ID_STRING}${variant}` });\n}\n","import { Stack, Typography } from '@mui/material';\nimport { FunctionComponent } from 'react';\nimport { Switch, useRouteMatch } from 'react-router-dom';\n\nimport { Route } from 'shared/Route';\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { useWelcomeMessageGenerator } from 'pages/Auth/WelcomeSection/useWelcomeMessageGenerator';\n\nexport const WelcomeSection: FunctionComponent = () => {\n const { formatMessage } = useExtendedIntl();\n const { path } = useRouteMatch();\n\n const subheading = useWelcomeMessageGenerator();\n\n return (\n \n \n \n \n \n {formatMessage({ id: 'auth-page.welcome-section.header.create-account' })}\n \n {formatMessage({ id: 'auth-page.welcome-section.header.default' })}\n \n \n \n {subheading}\n \n \n \n );\n};\n","import { Stack, Typography } from '@mui/material';\nimport { FunctionComponent } from 'react';\n\nimport { useExtendedIntl } from 'hooks/useExtendedIntl';\nimport { DefaultStepper, DefaultStepperProps } from 'shared/DefaultStepper';\n\n// This yellow is not part of our current color palette.\nconst YELLOW_COLOR = '#F1BE48';\n\nconst YellowSpan = (...chunks: unknown[]) => {chunks};\n\nexport const InviteAndEarnSection: FunctionComponent = () => {\n const { formatMessage } = useExtendedIntl();\n\n const steps: DefaultStepperProps['steps'] = [\n { label: formatMessage({ id: 'auth.login-to-your-acc' }) },\n { label: formatMessage({ id: 'shared.click-profile-icon' }) },\n { label: formatMessage({ id: 'shared.invite-friends' }) },\n ];\n\n return (\n \n \n \n {formatMessage({ id: 'shared.earn-credit' })}\n \n
\n \n {formatMessage({ id: 'shared.spread-the-word' })}\n \n \n {formatMessage(\n { id: 'shared.earn-credit.info' },\n {\n value: 50,\n span: YellowSpan,\n },\n )}\n \n
\n
\n \n
\n );\n};\n","import { Box, Grid, Hidden } from '@mui/material';\nimport { FunctionComponent } from 'react';\n\nimport { isCurrentAppTheme } from 'appConfig';\nimport { MainContainer } from 'shared/MainContainer';\nimport WavesImage from 'images/auth-background.webp';\nimport { AuthPageHeader } from 'pages/Auth/AuthPageHeader';\nimport { FormSection } from 'pages/Auth/FormSection/FormSection';\nimport { WelcomeSection } from 'pages/Auth/WelcomeSection/WelcomeSection';\nimport { InviteAndEarnSection } from 'pages/Auth/InviteAndEarnSection/InviteAndEarnSection';\n\nconst PageWavesBackground: FunctionComponent = ({ children }) => (\n ({\n width: '100%',\n display: 'flex',\n minHeight: '100vh',\n flexDirection: 'column',\n background: `${theme.palette.background.paper} url(${WavesImage}) no-repeat center / 100% auto`,\n [theme.breakpoints.down('sm')]: {\n background: theme.palette.background.paper,\n },\n })}\n />\n);\n\nconst PageGradientBackground: FunctionComponent = ({ children }) => (\n \n);\n\nconst isCurrentAppThemeDefault = isCurrentAppTheme('default');\n\nconst PageBackground = isCurrentAppThemeDefault ? PageGradientBackground : PageWavesBackground;\n\nconst SpotlightSection = isCurrentAppThemeDefault ? InviteAndEarnSection : WelcomeSection;\n\nexport const AuthPage: FunctionComponent = () => (\n \n {!isCurrentAppThemeDefault && }\n \n {isCurrentAppThemeDefault && }\n \n \n \n \n \n \n \n \n \n \n \n \n);\n"],"names":["WavesImage","isDefaultAppTheme","isCurrentAppTheme","StyledAppLogo","styled","AppLogoSVG","AppLogoAltSVG","theme","AuthPageHeader","backgroundColor","jsx","AppBar","Toolbar","Container","IS_LOGGED_IN_QUERY","gql","useIsLoggedInQuery","options","onError","useDefaultOnError","useQuery","PublicOnlyRoute","props","data","loading","error","Redirect","Route","StyledForm","Form","SubmitButton","ProgressButton","REFERRAL_SEARCH_PARAM","EMAIL_SEARCH_PARAM","NAME_SEARCH_PARAM","StyledFormControlLabel","FormControlLabel","StyledPasswordPolicy","PasswordPolicy","StyledPasswordErrors","PasswordErrors","SIGNUP_MUTATION","CreateAccountForm","history","useHistory","enqueueSnackbar","useSnackbar","captureEvent","identifyUser","useUserTracking","formatMessage","formatAPIErrorCode","useExtendedIntl","emailMutationError","setEmailMutationError","useState","passwordMutationError","setPasswordMutationError","searchParams","useSearchParamsDictionary","sanitizedName","sanitizeToSingleValue","sanitizedEmail","sanitizedReferralId","signup","client","mutationError","useMutation","err","isError","logError","apolloError","APIErrorCode","errorMessage","Formik","email","password","repeatPassword","errors","validatePassword","values","setErrors","handleBlur","isSubmitting","defaultHandleChange","handleChange","e","Alert","TextField","InputAdornment","EmailIcon","PasswordField","Checkbox","Typography","chunks","Link","config","FormContentHeader","children","StyledFooter","FormContentFooter","CAMPAIGN_SOURCE_SEARCH_PARAM","CAMPAIGN_MEDIUM_SEARCH_PARAM","CAMPAIGN_NAME_SEARCH_PARAM","CAMPAIGN_TERM_SEARCH_PARAM","CAMPAIGN_CONTENT_SEARCH_PARAM","GCLID_SEARCH_PARAM","SET_SESSION_VALUES_MUTATION","useSetSessionValues","setSessionValues","useEffect","termsToSearchParamsMap","input","utmExtra","getObjectKeys","term","param","value","StyledTextDivider","TextDivider","SignupsOpen","jsxs","Fragment","PartnersThemeDecider","SocialProviders","RouterLink","StyledTypography","Subtitle","isMobile","useIsMobileResolution","FACEBOOK_URL","LINKEDIN_URL","TWITTER_URL","SOCIAL_PROVIDER_ICONS_DICT","TwitterIcon","FacebookIcon","LinkedInIcon","StyledLink","SocialAccountsWrapper","SignupsClosed","SvgIcon","IS_SIGNUP_OPEN_QUERY","CreateAccountFormContent","ErrorMessage","isSignupOpen","REQUEST_PASSWORD_RESET_MUTATION","ForgotPasswordForm","emailError","setEmailError","requestPasswordReset","ForgotPasswordFormContent","StyledLinkTypography","LOGIN_MUTATION","SESSION_QUERY_FRAGMENT","LoginForm","passwordError","setPasswordError","attemptedEmail","setAttemptedEmail","loginAttemptsError","setLoginAttemptsError","nextPage","login","ViewAds","ViewKeywords","ViewAdIssues","PublishCampaigns","APIPermission","NUM_INITIAL_TEAMS","LoginFormContent","RESET_PASSWORD_MUTATION","ResetPasswordForm","token","sanitizedToken","resetPassword","ResetPasswordFormContent","VerifyEmailFormContent","FormRouting","Switch","IS_SIGNUP_OPEN_PRE_FETCH_QUERY","FormSection","isScreenBreakpointXs","useMediaQuery","variant","Paper","getRandomIntegerInInterval","min","max","TOTAL_VARIANTS","INTL_ID_STRING","useWelcomeMessageGenerator","setVariant","isNull","WelcomeSection","path","useRouteMatch","subheading","Stack","YELLOW_COLOR","YellowSpan","InviteAndEarnSection","steps","DefaultStepper","PageWavesBackground","Box","PageGradientBackground","isCurrentAppThemeDefault","PageBackground","SpotlightSection","AuthPage","MainContainer","Grid","Hidden"],"mappings":"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"}