{"version":3,"file":"loginweb/loginweb-team-join.4e9b760c.js","mappings":"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","sources":["/app/apps/loginweb/src/app/pages/team/components/LoadingSpinner/index.tsx","/app/apps/loginweb/src/app/pages/team/auth.tsx","/app/apps/loginweb/src/app/pages/team/components/InvalidInviteErrorCard/index.tsx","/app/apps/loginweb/src/app/pages/team/helpers.ts","/app/apps/loginweb/src/app/pages/team/hooks.ts","/app/apps/loginweb/src/app/pages/team/components/NiceLink/useStyles.ts","/app/apps/loginweb/src/app/pages/team/components/NiceLink/index.tsx","/app/apps/loginweb/src/app/pages/team/components/DowngradeModal/DowngradeModal.tsx","/app/apps/loginweb/src/app/pages/team/components/ProgressButton/ProgressButton.tsx","/app/apps/loginweb/src/app/pages/team/components/TeamPageHeader/TeamPageHeader.tsx","/app/apps/loginweb/src/app/pages/team/components/TeamWindow/index.tsx","/app/apps/loginweb/src/app/pages/team/components/TermsOfUseCheckbox/index.tsx","/app/apps/loginweb/src/app/pages/team/teamsApiClient.ts","/app/apps/loginweb/src/app/pages/team/sharedCopy.ts","/app/apps/loginweb/src/app/pages/team/TeamJoinConvertExistingPage/ConvertErrorCard.tsx","/app/apps/loginweb/src/app/pages/team/TeamJoinConvertExistingPage/TeamJoinConvertSkeleton.tsx","/app/apps/loginweb/src/app/pages/team/TeamJoinConvertExistingPage/index.tsx","/app/apps/loginweb/src/app/pages/team/TeamJoinCreateNewPage/CreateErrorCard.tsx","/app/apps/loginweb/src/app/pages/team/TeamJoinCreateNewPage/index.tsx","/app/apps/loginweb/src/app/pages/team/TeamJoinLandingPage/index.tsx","/app/apps/loginweb/src/app/pages/team/TeamReassignConfirmPage/ReassignErrorCard.tsx","/app/apps/loginweb/src/app/pages/team/TeamReassignConfirmPage/TeamReassignConfirmPage.tsx","/app/apps/loginweb/src/app/pages/team/TeamReassignLandingPage/TeamReassignLandingPage.tsx","/app/apps/loginweb/src/app/pages/team/TeamBasePage/index.tsx","/app/apps/loginweb/src/app/helpers/gql/LinkedAccounts.graphql","/app/apps/loginweb/src/app/pages/team/TeamJoin.graphql"],"sourcesContent":["import { defineMessages, t } from '@sm/intl';\nimport { Box } from '@wds/box';\nimport { ProgressCircle } from '@wds/progress-circle';\nimport React from 'react';\nimport { createUseStyles } from 'react-jss';\n\nconst COPY = defineMessages({\n LOADING: {\n id: 'team.LoadingSpinner.Loading',\n defaultMessage: 'Loading team invite',\n description: '[Type: Label][Vis: low] - Accessible text label for progress bar',\n },\n});\n\nconst useStyles = createUseStyles({\n fullHeight: {\n height: '100vh',\n },\n});\n\nconst LoadingSpinner = (): JSX.Element => {\n const { fullHeight } = useStyles();\n return (\n \n \n \n );\n};\n\nexport default LoadingSpinner;\n","import React, { ReactElement, useContext } from 'react';\nimport { AppState, Auth0Provider, Auth0ProviderOptions, useAuth0 } from '@auth0/auth0-react';\nimport { CaptiveWindow, clientErrorHandler, ErrorCard, StaticContext } from '@sm/webassets';\nimport { Box } from '@wds/box';\nimport { Responsive } from '@wds/responsive';\nimport { Route, RouteProps } from 'react-router-dom';\nimport { SmShow } from '~app/handlers/handlers';\nimport { Auth0Config } from '~app/helpers/auth0Config';\nimport history from '~app/utils/history';\nimport SHARED_ROUTES from '../sharedRoutes';\nimport LoadingSpinner from './components/LoadingSpinner';\nimport { SmParams } from '~common/entities/smParams';\n\n/**\n * Called by Auth0 to redirect the user after a successful auth.\n */\nexport const onRedirectCallback = (appState?: AppState): void => {\n // Use the router's history module to replace the url\n history.replace(appState?.returnTo ?? window.location.pathname);\n};\n\ntype ProviderOptions = Omit;\n\n/**\n * Provides auth context to child components\n *\n * @param param0\n * @returns\n */\nexport const AuthProvider = ({ children, ...rest }: ProviderOptions): JSX.Element => {\n // Grab domain & clientId from the page context, any remaining options will be passed through\n // to the Auth0 login page\n const {\n 'client-config': { auth0 },\n } = useContext<{ 'client-config': { auth0: Auth0Config } }>(StaticContext);\n\n const nowProvider = (): number => auth0.now;\n\n return (\n \n {children}\n \n );\n};\n\nfunction AuthErrorCard(): ReactElement {\n // shows a generic error view when auth0 errored out\n return (\n \n \n {(matches: boolean) => (\n \n \n \n )}\n \n \n );\n}\n\ntype ProtectedRouteProps = RouteProps & {\n /** Which experience to show at the unified login page (LOGIN or SIGNUP). */\n smShow: SmShow;\n\n /** The invite token providing context that might be needed for signing up. */\n smInviteToken: string;\n};\n\n/**\n * Wraps a route to require authentication\n */\nexport const ProtectedRoute = ({ children, smShow, smInviteToken, ...rest }: ProtectedRouteProps): JSX.Element => {\n const {\n environment: { languageCode, countryCode },\n } = useContext(StaticContext);\n\n const { isAuthenticated, isLoading, loginWithRedirect, error } = useAuth0();\n\n if (isLoading) {\n return ;\n }\n if (error) {\n clientErrorHandler.logError(error, 'Auth failure');\n return ;\n }\n if (!isAuthenticated) {\n // Login needed, redirect to the login page\n void loginWithRedirect({\n authorizationParams: {\n prompt: 'login', // always prompt, dont use session\n [SmParams.SM_SHOW]: smShow,\n [SmParams.SM_LOCALE]: languageCode,\n [SmParams.SM_COUNTRY]: countryCode,\n [SmParams.SM_INVITE_TOKEN]: smInviteToken,\n },\n appState: {\n // Return to the URL that the user was originally attempting to view\n returnTo: window.location.pathname,\n },\n });\n return ;\n }\n\n // Render the route\n return {children};\n};\n","import { defineMessages, t } from '@sm/intl';\nimport { CaptiveWindow } from '@sm/webassets';\nimport { Box } from '@wds/box';\nimport { Responsive } from '@wds/responsive';\nimport { Typography } from '@wds/typography';\nimport React from 'react';\n\nconst COPY = defineMessages({\n INVALID_INVITE: {\n id: 'team.InvalidInviteErrorCard.InvalidInvite',\n defaultMessage: 'This invitation is no longer valid.',\n description: '[Type: Header][Vis: high] - Text informing the user',\n },\n ASK_TEAM_ADMIN: {\n id: 'team.InvalidInviteErrorCard.AskTeamAdmin',\n defaultMessage: 'Ask the team’s admin for a new invitation.',\n description: '[Type: Header][Vis: high] - Text prompting the user',\n },\n});\n\nconst InvalidInviteErrorCard = (): JSX.Element => {\n return (\n \n \n {(matches: boolean) => (\n \n \n {t(COPY.INVALID_INVITE)}\n \n \n {t(COPY.ASK_TEAM_ADMIN)}\n \n \n )}\n \n \n );\n};\n\nexport default InvalidInviteErrorCard;\n","import { generateMetricsAttribute } from '@sm/metrics';\n\nconst getGraphQLContext: () => { targetPath: string } = () => ({\n targetPath: '/lo-graphql/teamJoin',\n});\n\nfunction metricsHelper(actionFlow: 'team_join' | 'reassign', actionType: string): string {\n return generateMetricsAttribute({\n data: {\n actionFlow,\n actionType,\n },\n }).toString();\n}\n\n/** @returns a value for `data-sm-metrics` to be used in the create/convert flows */\nexport const joinMetricsAttribute = (actionType: string): string => metricsHelper('team_join', actionType);\n\n/** @returns a value for `data-sm-metrics` to be used in the reassign flow */\nexport const reassignMetricsAttribute = (actionType: string): string => metricsHelper('reassign', actionType);\n\nexport default getGraphQLContext;\n","import { useQuery } from '@apollo/react-hooks';\nimport { IdToken, useAuth0 } from '@auth0/auth0-react';\nimport { useEffect, useState } from 'react';\nimport { useParams } from 'react-router';\nimport { InvalidJWTError } from '~app/helpers/sessionsApiClient';\nimport getGraphQLContext from './helpers';\nimport { TeamInvite } from './model';\nimport { fetchTeamInvite } from './TeamJoin.graphql';\n\ntype TeamInviteState = { status: 'loading' } | { status: 'loaded'; teamInvite: TeamInvite };\n\n/** Hook that delivers the invite token obtained from the page URL */\nfunction useInviteToken(): { inviteToken: string } {\n const { inviteToken } = useParams<{ inviteToken?: string }>();\n if (!inviteToken) {\n throw new Error('Missing required route param: inviteToken');\n }\n\n return { inviteToken };\n}\n\n/**\n * Delivers a state object exposing the invite token and an initial 'loading' state.\n */\nexport function useTeamInvite(): TeamInviteState {\n const { inviteToken } = useInviteToken();\n\n const { loading, error, data } = useQuery<{ teamInvite: TeamInvite }>(fetchTeamInvite, {\n variables: { inviteToken },\n context: getGraphQLContext(),\n });\n\n if (error) {\n throw error;\n }\n\n if (loading) return { status: 'loading' };\n\n const { teamInvite } = data as { teamInvite: TeamInvite }; // can assume it's defined here\n return { status: 'loaded', teamInvite };\n}\n\n/**\n * Hook that extracts the ID token from the user's auth0 session.\n *\n * @returns ID token and error\n */\nexport function useIdToken(): { error: Error | null; idToken: IdToken | null } {\n const { getIdTokenClaims } = useAuth0();\n const [idToken, setIdToken] = useState(null);\n const [error, setError] = useState(null);\n\n useEffect(() => {\n async function getClaims(): Promise {\n const claims = await getIdTokenClaims();\n if (claims) {\n setIdToken(claims);\n } else {\n setError(new InvalidJWTError());\n }\n }\n\n getClaims().catch(setError);\n }, [getIdTokenClaims, setIdToken]);\n\n return { error, idToken };\n}\n","import { createUseStyles } from 'react-jss';\n\nconst useStyles = createUseStyles({\n noUnderline: {\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'none',\n },\n },\n});\n\nexport default useStyles;\n","import { useAuth0 } from '@auth0/auth0-react';\nimport React, { MouseEvent } from 'react';\nimport { Link as ReactRouterLink, LinkProps } from 'react-router-dom';\nimport useStyles from './useStyles';\n\nconst NiceLink = (props: LinkProps): JSX.Element => {\n const { noUnderline } = useStyles();\n const { logout } = useAuth0();\n\n const onClick = (e: MouseEvent): void => {\n // For the team-join workflows, we want to use explicit auth (where Auth0 prompts the user\n // to login), not implicit (where Auth0 reuses a session stored in the browser). To make\n // absolutely certain of this, clear client storage when transitioning between pages\n // so the next page can start in a clean state.\n logout({ openUrl: false });\n };\n\n return ;\n};\n\nexport default NiceLink;\n","import React, { ReactElement } from 'react';\nimport { defineMessages, T, t } from '@sm/intl';\nimport { Box } from '@wds/box';\nimport { Button } from '@wds/button';\nimport { Modal } from '@wds/modal';\nimport { Theme } from '@wds/styles';\nimport { createMemoStyles } from '@wds/utils';\nimport NiceLink from '../NiceLink';\n\nexport const CONFIRM_DOWNGRADE_TEST_ID = 'DowngradeModal__ButtonConfirm';\n\nconst COPY = defineMessages({\n HEADER: {\n id: 'team.DowngradeModal.header',\n defaultMessage: 'Convert this account and downgrade your plan?',\n description: '[Type: Header][Vis: med] - Header text shown in the dialog',\n },\n BODY: {\n id: 'team.DowngradeModal.body',\n defaultMessage:\n 'Converting this account will downgrade your plan from {currentPlan} to {newPlan}. You won’t receive a refund for time remaining on your plan.

If you don’t want to downgrade this account, you can create a new account with a different email instead.

',\n description: '[Type: Paragraph][Vis: med] - Body text shown in the dialog.',\n },\n BUTTON_CREATE: {\n id: 'team.DowngradeModal.buttonCreate',\n defaultMessage: 'Create a new account',\n description: '[Type: Label][Vis: high] - Label for the button',\n },\n BUTTON_CONVERT: {\n id: 'team.DowngradeModal.buttonConfirm',\n defaultMessage: 'Convert and join team',\n description: '[Type: Label][Vis: high] - Label for the button',\n },\n});\n\ntype Props = {\n inviteToken: string;\n currentPlan: string;\n newPlan: string;\n onClose(): void;\n onConfirm(): void;\n};\n\nconst useStyles = createMemoStyles((theme: Theme) => {\n const { spacing, palette } = theme;\n return {\n modalBody: {\n background: palette.background.accent,\n\n // This is a hack to make our background color extend to the edge of the modal body.\n marginLeft: -spacing[6],\n marginRight: -spacing[6],\n marginBottom: -spacing[6],\n padding: [spacing[6], spacing[6], spacing[6], spacing[6]],\n\n '& p': {\n marginBlockEnd: 0,\n },\n },\n };\n});\n\nexport default function DowngradeModal({ inviteToken, currentPlan, newPlan, onClose, onConfirm }: Props): ReactElement {\n const { modalBody } = useStyles();\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","import { Button, ButtonProps } from '@wds/button';\nimport { ProgressCircle } from '@wds/progress-circle';\nimport React, { ReactElement } from 'react';\n\nexport const SPINNER_TEST_ID = 'ProgressButton__Spinner';\n\nexport type ProgressButtonProps = {\n /** Button content to be displayed when !progress */\n children: JSX.Element;\n\n /** Whether to show the spinner */\n progress?: boolean;\n\n /** Accessible text to associate with the spinner */\n progressText?: string;\n} & ButtonProps;\n\n/**\n * A wrench Button that shows a spinner inside the button while `progress` is true\n */\nexport default function ProgressButton({\n children,\n progress,\n progressText,\n ...rest\n}: ProgressButtonProps): ReactElement {\n return (\n \n );\n}\n","import { PageHeader } from '@wds/page-header';\nimport { Theme } from '@wds/styles';\nimport React, { ReactElement } from 'react';\nimport { createUseStyles } from 'react-jss';\n\nexport type TeamPageHeaderProps = {\n title: ReactElement;\n subTitle?: string;\n};\n\ntype StyleProps = Pick;\n\nconst useStyles = createUseStyles((theme: Theme) => ({\n titleClass: ({ subTitle }: StyleProps) => ({\n color: theme.palette.text.dark,\n fontSize: theme.type.fontSize.pageTitle,\n ...(subTitle ? { marginBottom: theme.spacing[6] } : {}), // vertical space between title & subtitle when both are present\n\n // allow words to break anywhere to avoid overflow\n wordBreak: 'break-word',\n hyphens: 'auto',\n }),\n subTitleClass: {\n color: theme.palette.text.dark,\n fontSize: theme.type.fontSize.body,\n },\n}));\n\nexport default function TeamPageHeader({ title, subTitle }: TeamPageHeaderProps): ReactElement {\n const { titleClass, subTitleClass } = useStyles({ subTitle });\n return (\n {title}}\n subTitle={\n \n \n
{subTitle}
\n
\n
\n }\n >\n <>\n \n );\n}\n","import React from 'react';\nimport { CaptiveWindow } from '@sm/webassets';\nimport { createUseStyles } from 'react-jss';\n\nconst useStyles = createUseStyles({\n teamWindow: {\n maxWidth: '636px',\n },\n});\n\nconst TeamWindow = ({ children }: JSX.ElementChildrenAttribute): JSX.Element => {\n const { teamWindow } = useStyles();\n return {children};\n};\n\nexport default TeamWindow;\n","import { defineMessages, t } from '@sm/intl';\nimport { createURL } from '@sm/utils';\nimport { Box } from '@wds/box';\nimport { Checkbox } from '@wds/checkbox';\nimport { Typography } from '@wds/typography';\nimport React, { ChangeEventHandler, ReactElement } from 'react';\n\nconst COPY = defineMessages({\n TermsOfUse: {\n id: 'team.TermsOfUseCheckbox.TermsOfUse',\n defaultMessage: `I agree to the Terms of Use, Privacy Notice, and transfer of ownership of my existing account to this team’s Primary Admin or organization.`,\n description: '[Type: Label][Vis: med] - Label for the Terms-of-Use checkbox',\n },\n TermsOfUsePlainText: {\n id: 'team.TermsOfUseCheckbox.TermsOfUsePlainText',\n defaultMessage: `I agree to the Terms of Use, Privacy Notice, and transfer of ownership of my existing account to this team’s Primary Admin or organization.`,\n description: '[Type: Label][Vis: med] - Accessible text label for the Terms-of-Use checkbox',\n },\n});\n\ntype Props = {\n checked: boolean;\n id: string;\n onChange: ChangeEventHandler;\n};\n\nconst TermsOfUseCheckbox = ({ checked, onChange, ...props }: Props): ReactElement => {\n return (\n \n \n {t(\n COPY.TermsOfUse,\n {\n touLink: createURL('/mp/legal/terms-of-use/', { ut_source: 'team_join' }),\n privacyLink: createURL('/mp/legal/privacy/', { ut_source: 'team_join' }),\n },\n { html: true }\n )}\n \n \n }\n {...props}\n />\n );\n};\n\nexport default TermsOfUseCheckbox;\n","import { clientErrorHandler } from '@sm/webassets';\nimport { IdToken } from '@auth0/auth0-react';\nimport { FormattedError } from '~common/errors/userFacing';\n\nexport class NotEnoughSeatsError extends Error {}\nexport class DataCenterMismatchError extends Error {}\nexport class ServerError extends Error {}\nexport class UserAlreadyInGroupError extends Error {}\nexport class UserIsHipaaError extends Error {}\n\ntype ErrResponseBody = {\n errors: FormattedError[];\n};\n\nexport class TeamClient {\n private readonly baseUrl = '/login/api/v1/teams';\n\n private readonly log = clientErrorHandler;\n\n async create(inviteToken: string): Promise {\n return this.acceptTeamInvite('create', inviteToken);\n }\n\n async convert(inviteToken: string, targetUserId?: string): Promise {\n return this.acceptTeamInvite('convert', inviteToken, targetUserId);\n }\n\n async reassign({ idToken, inviteToken }: { idToken: IdToken; inviteToken: string }): Promise {\n const resp = await fetch(`${this.baseUrl}/actions/accept_reassignment_invite`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ id_token: idToken.__raw, invite_token: inviteToken }),\n });\n\n if (resp.status === 200) {\n return;\n }\n return this.handleErrorResponse(resp);\n }\n\n private async acceptTeamInvite(\n action: 'create' | 'convert',\n inviteToken: string,\n targetUserId?: string\n ): Promise {\n const resp = await fetch(`${this.baseUrl}/actions/accept_invite`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n action,\n invite_token: inviteToken,\n target_user_id: targetUserId, // omitted if undefined\n }),\n });\n\n if (resp.status === 200) {\n return;\n }\n return this.handleErrorResponse(resp);\n }\n\n private async handleErrorResponse(resp: Response): Promise {\n const body = await resp.json();\n const {\n errors: [firstError],\n }: ErrResponseBody = body;\n\n switch (firstError.code) {\n case 'data_center_mismatch':\n throw new DataCenterMismatchError();\n case 'not_enough_seats':\n throw new NotEnoughSeatsError();\n case 'user_already_in_group':\n throw new UserAlreadyInGroupError();\n case 'user_is_hipaa':\n throw new UserIsHipaaError();\n default:\n break; // will throw generic error below\n }\n\n this.log.logError({ ...body }, 'Error accepting team invite');\n throw new ServerError();\n }\n}\n\nconst TEAM_CLIENT = new TeamClient();\nexport default TEAM_CLIENT;\n","import { defineMessages } from '@sm/intl';\n\n// Copy used by multiple teams pages\n\nconst COPY = defineMessages({\n ErrorInviteExpired: {\n id: 'team.sharedCopy.ErrorInviteExpired',\n defaultMessage: 'This invitation is no longer valid. Ask the team’s admin for a new invitation.',\n description:\n \"[Type: Paragraph][Vis: med] - Error text shown when the user's team invite expired while they were viewing the page\",\n },\n ErrorExpired: {\n id: 'team.sharedCopy.ErrorExpired',\n defaultMessage: 'Sorry, your session expired. Log in again to continue.',\n description:\n \"[Type: Paragraph][Vis: med] - Error text shown when the user's authenticated session context has been lost\",\n },\n ErrorNotEnoughSeats: {\n id: 'team.sharedCopy.ErrorNotEnoughSeats',\n defaultMessage: 'The team does not have enough seats. Contact your organization’s admin for more info.',\n description:\n '[Type: Paragraph][Vis: med] - Error text shown when the team does not have sufficient seats for the user to join',\n },\n});\n\nexport default COPY;\n","import { IdToken } from '@auth0/auth0-react';\nimport { defineMessages, t } from '@sm/intl';\nimport { ErrorCard, clientErrorHandler } from '@sm/webassets';\nimport React, { PropsWithChildren, ReactElement, ReactNode } from 'react';\nimport {\n IdentityNotLinkedError,\n InvalidInviteError,\n InvalidJWTError,\n PASSWORD_SUBJECT,\n} from '~app/helpers/sessionsApiClient';\nimport { getSocialName } from '~app/pages/login/UnlinkedPage/tokenHelper';\nimport NiceLink from '../components/NiceLink';\nimport SHARED_COPY from '../sharedCopy';\nimport {\n DataCenterMismatchError,\n NotEnoughSeatsError,\n UserAlreadyInGroupError,\n UserIsHipaaError,\n} from '../teamsApiClient';\n\nexport const TEST_ID = 'ConvertErrorCard';\n\nconst COPY = defineMessages({\n ErrorDataCenterMismatch: {\n id: 'team.ConvertErrorCard.ErrorDataCenterMismatch',\n defaultMessage:\n 'This account is stored in a different region than the team. To join this team, create a new account.',\n description:\n \"[Type: Paragraph][Vis: med] - Error text shown when the user's selected SurveyMonkey account is not in the expected Data Center to join the team.\",\n },\n ErrorEmailIdentityNotLinked: {\n id: 'team.ConvertErrorCard.ErrorEmailIdentityNotLinked',\n defaultMessage:\n 'There’s no SurveyMonkey account for the email {email}. To use this account, go back and select create new account.',\n description:\n \"[Type: Paragraph][Vis: med] - Error text shown when the user's email identity is not linked to a SurveyMonkey account\",\n },\n ErrorThirdPartyIdentityNotLinked: {\n id: 'team.ConvertErrorCard.ErrorThirdPartyIdentityNotLinked',\n defaultMessage:\n 'This {socialName} account is not linked to a SurveyMonkey account. To use this account, go back and select create new account.',\n description:\n \"[Type: Paragraph][Vis: med] - Error text shown when the user's social identity is not linked to a SurveyMonkey account\",\n },\n ErrorUserAlreadyJoined: {\n id: 'team.ConvertErrorCard.ErrorUserAlreadyJoined',\n defaultMessage:\n 'This account has already joined a team, and can’t join more than one. Go back to convert or create an account.',\n description:\n \"[Type: Paragraph][Vis: med] - Error text shown when the user's selected SurveyMonkey account is already part of a team\",\n },\n ErrorUserIsHipaa: {\n id: 'team.ConvertErrorCard.ErrorUserIsHipaa',\n defaultMessage:\n 'Your account is HIPAA-enabled. To protect health data, HIPAA-enabled accounts can’t join teams. Go back to convert or create an account.',\n description:\n \"[Type: Paragraph][Vis: med] - Error text shown when the user's selected SurveyMonkey account is HIPAA enabled\",\n },\n});\n\nfunction notNull(value: T | null): T {\n if (value === null) {\n throw new TypeError();\n }\n return value;\n}\n\n// Renders a link back to the landing page\nfunction landingPageLinkFactory(inviteToken: string): (props: PropsWithChildren<{}>) => ReactNode {\n return ({ children }: PropsWithChildren<{}>): ReactNode => (\n {children}\n );\n}\n\n// For showing a link that reloads the page. Reloading the page will let the user try logging\n// in again using a different Auth0 identity.\nfunction linkReload({ children }: PropsWithChildren<{}>): ReactNode {\n return {children};\n}\n\ntype Props = {\n error: Error;\n idToken: IdToken | null;\n inviteToken: string;\n refetch?(): void;\n};\n\ntype GraphQLError = { graphQLErrors: [{ extensions: { code: string } }] };\n\nfunction isGraphQLError(e: Error): e is Error & GraphQLError {\n return 'graphQLErrors' in e;\n}\n\n/**\n * Error card that renders friendly error messages on failure to login the user or join the team\n */\nfunction ConvertErrorCard({ error, idToken, inviteToken, refetch }: Props): ReactElement {\n let errorCopy: string | undefined;\n let doRefetch: (() => void) | undefined;\n\n const back = landingPageLinkFactory(inviteToken);\n\n switch (true) {\n case !idToken:\n case error instanceof InvalidJWTError:\n // The JWT was invalid, this usually means that it expired\n errorCopy = t(SHARED_COPY.ErrorExpired, { link: linkReload });\n break;\n\n case error instanceof InvalidInviteError:\n // The team invite is bogus or expired\n errorCopy = t(SHARED_COPY.ErrorInviteExpired);\n break;\n\n case error instanceof IdentityNotLinkedError: {\n // Failed to create an SM session, because the user's Auth0's identity isn't linked to any SM account.\n const nonNullIdToken = notNull(idToken);\n if ('sub' in nonNullIdToken && !(nonNullIdToken.sub as string).startsWith(PASSWORD_SUBJECT)) {\n // Social identity\n const socialName = getSocialName(nonNullIdToken);\n errorCopy = t(COPY.ErrorThirdPartyIdentityNotLinked, { socialName, back });\n } else {\n // Email-password identity\n const { email } = nonNullIdToken;\n errorCopy = t(COPY.ErrorEmailIdentityNotLinked, { email, back });\n }\n break;\n }\n\n case error instanceof DataCenterMismatchError:\n errorCopy = t(COPY.ErrorDataCenterMismatch, { back });\n break;\n\n case error instanceof NotEnoughSeatsError:\n errorCopy = t(SHARED_COPY.ErrorNotEnoughSeats);\n break;\n\n case error instanceof UserAlreadyInGroupError:\n errorCopy = t(COPY.ErrorUserAlreadyJoined, { back });\n break;\n\n case error instanceof UserIsHipaaError:\n errorCopy = t(COPY.ErrorUserIsHipaa, { back });\n break;\n\n case isGraphQLError(error):\n // Show generic error message with a retry button\n clientErrorHandler.logError(error, `Error fetching GraphQL data`);\n errorCopy = undefined;\n doRefetch = refetch;\n break;\n\n default:\n clientErrorHandler.logError(error, `Unhandled error joining team`);\n errorCopy = undefined; // fallback to generic message\n }\n\n return (\n \n );\n}\n\nexport default ConvertErrorCard;\n","import { SkeletonLoader } from '@sm/webassets';\nimport React, { ReactElement } from 'react';\n\nfunction TeamJoinConvertSkeleton(): ReactElement {\n return (\n \n \n\n \n\n \n \n \n );\n}\n\nexport default TeamJoinConvertSkeleton;\n","import React, { ChangeEvent, KeyboardEvent, MouseEvent, ReactElement, useEffect, useState } from 'react';\nimport keycode from 'keycode';\nimport { useLazyQuery } from '@apollo/react-hooks';\nimport { IdToken } from '@auth0/auth0-react';\nimport { defineMessages, t } from '@sm/intl';\nimport { PackageType } from '@sm/utils';\nimport { AccountCard, clientErrorHandler, getPackageName } from '@sm/webassets';\nimport { Box } from '@wds/box';\nimport { Radio } from '@wds/radio';\nimport { Typography } from '@wds/typography';\nimport { createMemoStyles } from '@wds/utils';\nimport navigateTo from '~app/helpers/navigateTo';\nimport sessionsApiClient from '~app/helpers/sessionsApiClient';\nimport { FetchLinkedAccounts } from '../../../helpers/gql/gqlTypes';\nimport { fetchLinkedAccounts } from '../../../helpers/gql/LinkedAccounts.graphql';\nimport DowngradeModal from '../components/DowngradeModal/DowngradeModal';\nimport ProgressButton from '../components/ProgressButton/ProgressButton';\nimport TeamPageHeader from '../components/TeamPageHeader/TeamPageHeader';\nimport TeamWindow from '../components/TeamWindow';\nimport TermsOfUseCheckbox from '../components/TermsOfUseCheckbox';\nimport { joinMetricsAttribute } from '../helpers';\nimport { useIdToken } from '../hooks';\nimport { TeamInvite } from '../model';\nimport TeamClient from '../teamsApiClient';\nimport ConvertErrorCard from './ConvertErrorCard';\nimport TeamJoinConvertSkeleton from './TeamJoinConvertSkeleton';\n\nexport const EMAIL_TEST_ID = 'UserInfo__Email';\n\nconst useStyles = createMemoStyles({\n list: {\n listStyleType: 'none',\n margin: 0,\n padding: 0,\n },\n});\n\nfunction UserInfo({ idToken, user }: { idToken: IdToken | null; user?: FetchLinkedAccounts['user'] }): ReactElement {\n const { list } = useStyles();\n\n if (!user) {\n return <>;\n }\n return (\n
    \n
  • \n {idToken?.email ?? ''}\n
  • \n\n {user.linkedIdentities.items.length === 1 ? (\n
  • \n {getPackageName(Number(user.linkedIdentities.items[0].packageId) as PackageType)}\n
  • \n ) : (\n <>\n )}\n
\n );\n}\n\nconst COPY = defineMessages({\n JoinHeader: {\n id: 'team.TeamJoinConvertExistingPage.JoinGroup',\n defaultMessage: 'Join {teamname}’s team',\n description: '[Type: Header][Vis: high] - Heading shown on the confirm convert screen',\n },\n SingleAccountPrompt: {\n id: 'team.TeamJoinConvertExistingPage.SingleAccountPrompt',\n defaultMessage:\n 'Converting this account will transfer ownership to your new team. You’ll be able to collaborate with other team members and the Primary Admin may have access to your survey data.',\n description: '[Type: Paragraph][Vis: med] - Paragraph informing the user that their account will be converted',\n },\n MultipleAccountsPrompt: {\n id: 'team.TeamJoinConvertExistingPage.MultipleAccountsPrompt',\n defaultMessage:\n 'Select the account you want to convert. This will transfer ownership to your new team. You’ll be able to collaborate with other team members and the Primary Admin may have access to your survey data.',\n description:\n '[Type: Paragraph][Vis: med] - Paragraph prompting the user to pick an account, and informing them that it will be converted',\n },\n ConvertButton: {\n id: 'team.TeamJoinConvertExistingPage.ConvertButton',\n defaultMessage: 'Convert and join team',\n description: '[Type: Label][Vis: high] - Label for the button that converts the account',\n },\n ConvertingAltText: {\n id: 'team.TeamJoinConvertExistingPage.ConvertingAltText',\n defaultMessage: 'Converting account…',\n description: '[Type: paragraph][Vis: low] - Accessibility message for during the form submission',\n },\n});\n\nexport const GROUP_NAME_TEST_ID = 'TeamJoinConvertExistingPage__GroupName';\nexport const CONFIRM_CONVERT_BUTTON_TEST_ID = 'TeamJoinConvertExistingPage__ConfirmConvert';\nexport const ACCOUNT_CARD_TEST_ID = 'TeamJoinConvertExistingPage__AccountCard';\n\nconst SessionClient = sessionsApiClient();\n\nconst TeamJoinConvertExistingPage = ({ teamInvite }: { teamInvite: TeamInvite }): JSX.Element => {\n const { inviteToken } = teamInvite;\n const [error, setError] = useState(null);\n const [termsAccepted, setTermsAccepted] = useState(false);\n const [selectedUserId, setSelectedUserId] = useState(null);\n const [sessionLoading, setSessionLoading] = useState(true);\n const [spinning, setSpinning] = useState(false);\n const [modalOpen, setModalOpen] = useState(false);\n const { error: idTokenError, idToken } = useIdToken();\n const [loggedInUserId, setLoggedInUserId] = useState(null);\n const [currentPackage, setCurrentPackage] = useState(null);\n const [newPackage, setNewPackage] = useState(null);\n\n // Init lazy query that will fetch linked accounts\n const [doFetchLinkedAccounts, { loading: graphqlLoading, error: graphqlError, data, refetch }] =\n useLazyQuery(fetchLinkedAccounts);\n\n // Grab the ID token and login to SM\n useEffect(() => {\n async function doLogin(token: IdToken): Promise {\n const { user } = await SessionClient.login(token);\n setLoggedInUserId(user.id);\n setSessionLoading(false);\n\n // Now that we've got an SM session, proceed to fetch the linked accounts\n doFetchLinkedAccounts();\n }\n\n if (idToken) {\n doLogin(idToken).catch(setError);\n }\n }, [idToken, doFetchLinkedAccounts]);\n\n const handleJoinTeam = async (): Promise => {\n setSpinning(true);\n setModalOpen(false);\n setError(null);\n try {\n await TeamClient.convert(inviteToken, selectedUserId ?? undefined);\n\n if (selectedUserId && selectedUserId !== loggedInUserId) {\n await SessionClient.switch(selectedUserId);\n }\n\n navigateTo('/login/next', {\n joined: 'true',\n origin: 'convert',\n });\n // continue spinning as we navigate away\n } catch (e: unknown) {\n setError(e as Error);\n setSpinning(false);\n }\n };\n\n const onJoinClick = (): void => {\n if (!data) {\n return;\n }\n\n const linkedIds = data.user.linkedIdentities.items;\n const userToConvert = selectedUserId ? linkedIds.find(u => u.id === selectedUserId) : linkedIds[0];\n if (!userToConvert) {\n // should never happen\n clientErrorHandler.logError(new Error(`Not found: ${selectedUserId}`));\n return;\n }\n\n setCurrentPackage(Number(userToConvert.packageId) as PackageType);\n setNewPackage(Number(teamInvite.group.owner.packageId) as PackageType);\n\n const currentTier = userToConvert.package.details.tier;\n const newTier = teamInvite.group.owner.package.details.tier;\n if (newTier < currentTier) {\n // prompt for confirmation\n setModalOpen(true);\n } else {\n // join immediately\n void handleJoinTeam();\n }\n };\n\n // Funnel our various error sources into one `error` state\n useEffect(() => {\n setError(error ?? idTokenError ?? graphqlError ?? null);\n }, [error, idTokenError, graphqlError]);\n\n const isLoading = !error && (sessionLoading || graphqlLoading);\n\n let hasMultipleAccounts = false;\n if (data) {\n hasMultipleAccounts = data.user.linkedIdentities.items.length > 1;\n }\n\n return (\n \n \n {isLoading ? (\n \n ) : (\n <>\n {/* OPTIONAL: CONFIRMATION MODAL */}\n {modalOpen ? (\n setModalOpen(false)}\n onConfirm={handleJoinTeam}\n />\n ) : (\n <>\n )}\n\n {/* OPTIONAL: ERROR CARD */}\n {error ? : <>}\n\n {t(COPY.JoinHeader, { teamname: teamInvite.group.name })}\n }\n />\n\n \n \n \n {hasMultipleAccounts ? t(COPY.MultipleAccountsPrompt) : t(COPY.SingleAccountPrompt)}\n \n \n\n {/* OPTIONAL: ACCOUNT PICKER */}\n \n \n {data?.user.linkedIdentities.items.map(linkedAccount => {\n const { id: userId } = linkedAccount;\n const isSelected = selectedUserId === userId;\n const actionFn = (\n e: MouseEvent | KeyboardEvent | ChangeEvent\n ): void => {\n if (\n e.type === 'click' ||\n e.type === 'change' ||\n keycode.isEventKey(e as unknown as Event, 'enter') ||\n keycode.isEventKey(e as unknown as Event, 'space')\n ) {\n setSelectedUserId(userId);\n }\n };\n return (\n \n }\n role={undefined /* Cards aren't real controls here; radio buttons are */}\n tabIndex={undefined /* see above */}\n />\n );\n })}\n \n \n\n {/* TOUs */}\n \n setTermsAccepted(e.target.checked)}\n />\n \n\n {/* Join button */}\n \n \n {t(COPY.ConvertButton)}\n \n \n \n )}\n \n \n );\n};\n\nexport default TeamJoinConvertExistingPage;\n","import { IdToken } from '@auth0/auth0-react';\nimport { defineMessages, t } from '@sm/intl';\nimport { ErrorCard } from '@sm/webassets';\nimport React, { PropsWithChildren, ReactElement, ReactNode } from 'react';\nimport {\n IdentityAlreadyLinkedError,\n InvalidInviteError,\n InvalidJWTError,\n PASSWORD_SUBJECT,\n} from '~app/helpers/sessionsApiClient';\nimport { getSocialName } from '~app/pages/login/UnlinkedPage/tokenHelper';\nimport NiceLink from '../components/NiceLink';\nimport SHARED_COPY from '../sharedCopy';\nimport { NotEnoughSeatsError } from '../teamsApiClient';\n\nconst COPY = defineMessages({\n ErrorEmailIdentityAlreadyLinked: {\n id: 'team.CreateErrorCard.ErrorEmailIdentityAlreadyLinked',\n defaultMessage:\n 'There’s already a SurveyMonkey account for the email {email}. To use this account, go back and select convert account.',\n description:\n \"[Type: Paragraph][Vis: med] - Error text shown when the user's email identity is already linked to a SurveyMonkey account\",\n },\n ErrorThirdPartyIdentityAlreadyLinked: {\n id: 'team.CreateErrorCard.ErrorThirdPartyIdentityAlreadyLinked',\n defaultMessage:\n 'This {socialName} account is already linked to a SurveyMonkey account. To use this account, go back and select convert account.',\n description:\n \"[Type: Paragraph][Vis: med] - Error text shown when the user's social identity is already linked to a SurveyMonkey account\",\n },\n});\n\nexport const ERROR_CARD_TEST_ID = 'TeamJoinCreateNewPage__Error';\n\nfunction notNull(value: T | null): T {\n if (value === null) {\n throw new TypeError();\n }\n\n return value;\n}\n\nfunction linkReload({ children }: PropsWithChildren<{}>): ReactNode {\n return {children};\n}\n\ntype CreationErrorCardProps = { error: Error; idToken: IdToken | null; inviteToken: string };\n\n/**\n * Error card that renders friendly error messages on failure to create user or join the team\n */\nfunction CreateErrorCard({ error, idToken, inviteToken }: CreationErrorCardProps): ReactElement {\n let errorCopy: string | undefined;\n\n switch (true) {\n case !idToken:\n case error instanceof InvalidJWTError:\n // The JWT was invalid, this usually means that it expired\n errorCopy = t(SHARED_COPY.ErrorExpired, { link: linkReload });\n break;\n\n case error instanceof InvalidInviteError:\n // The team invite is bogus or expired\n errorCopy = t(SHARED_COPY.ErrorInviteExpired);\n break;\n\n case error instanceof NotEnoughSeatsError:\n errorCopy = t(SHARED_COPY.ErrorNotEnoughSeats);\n break;\n\n case error instanceof IdentityAlreadyLinkedError: {\n // Failed to create a new SM account for the user, since their Auth0 identity\n // is already linked to an SM account.\n const nonNullIdToken = notNull(idToken);\n\n const convertLink = ({ children }: PropsWithChildren<{}>): ReactNode => (\n {children}\n );\n\n if ('sub' in nonNullIdToken && !(nonNullIdToken.sub as string).startsWith(PASSWORD_SUBJECT)) {\n // Social identity\n const socialName = getSocialName(nonNullIdToken);\n errorCopy = t(COPY.ErrorThirdPartyIdentityAlreadyLinked, { socialName, link: convertLink });\n } else {\n // Email-password identity\n const { email } = nonNullIdToken;\n errorCopy = t(COPY.ErrorEmailIdentityAlreadyLinked, { email, link: convertLink });\n }\n break;\n }\n\n default:\n errorCopy = undefined; // fallback to generic message\n }\n\n return (\n \n );\n}\n\nexport default CreateErrorCard;\n","import { IdToken } from '@auth0/auth0-react';\nimport { defineMessages, t } from '@sm/intl';\nimport { Box } from '@wds/box';\nimport React, { useEffect, useState } from 'react';\nimport navigateTo from '~app/helpers/navigateTo';\nimport sessionsApiClient, { InvalidJWTError, SessionResult } from '~app/helpers/sessionsApiClient';\nimport ProgressButton from '../components/ProgressButton/ProgressButton';\nimport TeamPageHeader from '../components/TeamPageHeader/TeamPageHeader';\nimport TeamWindow from '../components/TeamWindow';\nimport { joinMetricsAttribute } from '../helpers';\nimport { useIdToken } from '../hooks';\nimport { TeamInvite } from '../model';\nimport TeamClient from '../teamsApiClient';\nimport CreateErrorCard from './CreateErrorCard';\n\nconst COPY = defineMessages({\n JoinHeader: {\n id: 'team.TeamJoinCreateNewPage.JoinGroup',\n defaultMessage: 'Join {teamname}’s team',\n description: '[Type: Header][Vis: high] - Heading shown on the confirm create screen',\n },\n WhenYouJoinText: {\n id: 'team.TeamJoinCreateNewPage.WhenYouJoinText',\n defaultMessage: 'When you join a team, the team’s Primary Admin or organization owns and manages your account.',\n description:\n '[Type: Paragraph][Vis: med] - Descriptive text advising the user about ownership of the to-be-created account.',\n },\n JoinButton: {\n id: 'team.TeamJoinCreateNewPage.Joinbutton',\n defaultMessage: 'Join team',\n description: '[Type: Label][Vis: high] - Label for the button that joins the team',\n },\n JoiningAltText: {\n id: 'team.TeamJoinCreateNewPage.JoiningAltText',\n defaultMessage: 'Joining…',\n description: '[Type: paragraph][Vis: low] - Accessibility message for during the form submission',\n },\n});\n\nexport const GROUP_NAME_TEST_ID = 'TeamJoinCreateNewPage__GroupName';\nexport const EMAIL_TEST_ID = 'TeamJoinCreateNewPage__Email';\nexport const CONFIRM_CREATE_BUTTON_TEST_ID = 'TeamJoinCreateNewPage__ConfirmCreate';\n\nconst SessionClient = sessionsApiClient();\n\nasync function createUser(idToken: IdToken, inviteToken: string): Promise {\n const result = await SessionClient.createBySignup({ claims: idToken, appState: {}, inviteToken });\n switch (result) {\n case SessionResult.CREATED:\n return;\n case SessionResult.INVALID_JWT:\n throw new InvalidJWTError();\n case SessionResult.UNLINKED:\n throw new Error(`Unexpected UNLINKED result from create_by_token`); // should not happen\n }\n}\n\nconst TeamJoinCreateNewPage = ({ teamInvite }: { teamInvite: TeamInvite }): JSX.Element => {\n const [error, setError] = useState(null);\n const [spinning, setSpinning] = useState(false);\n const { inviteToken } = teamInvite;\n const { idToken, error: idTokenError } = useIdToken();\n\n // forward errors\n useEffect(() => {\n setError(error ?? idTokenError ?? null);\n }, [error, idTokenError]);\n\n const handleJoinTeam = async (): Promise => {\n if (!idToken) {\n return;\n }\n\n setSpinning(true);\n setError(null);\n try {\n await createUser(idToken, inviteToken);\n await TeamClient.create(inviteToken);\n navigateTo('/login/next', {\n joined: 'true',\n origin: 'create',\n });\n // continue spinning as we navigate away\n } catch (e: unknown) {\n setError(e as Error);\n setSpinning(false);\n }\n };\n\n return (\n
\n \n \n \n \n \n \n \n\n {t(COPY.JoinHeader, { teamname: teamInvite.group.name })}
\n }\n />\n\n \n
\n {idToken?.email ?? ''}\n
\n
\n {t(COPY.WhenYouJoinText)}\n
\n\n \n {t(COPY.JoinButton)}\n \n \n \n \n );\n};\n\nexport default TeamJoinCreateNewPage;\n","import { defineMessages, t } from '@sm/intl';\nimport { generateMetricsAttribute } from '@sm/metrics';\nimport { Box } from '@wds/box';\nimport { Button } from '@wds/button';\nimport { Responsive } from '@wds/responsive';\nimport { Theme } from '@wds/styles';\nimport { Typography } from '@wds/typography';\nimport React from 'react';\nimport { createUseStyles } from 'react-jss';\nimport NiceLink from '../components/NiceLink';\nimport TeamPageHeader from '../components/TeamPageHeader/TeamPageHeader';\nimport TeamWindow from '../components/TeamWindow';\nimport { TeamInvite } from '../model';\n\nexport const GROUP_NAME_TEST_ID = 'TeamJoinLandingPage__GroupName';\nexport const CONVERT_BUTTON_TEST_ID = 'TeamJoinLandingPage__Convert';\nexport const CREATE_BUTTON_TEST_ID = 'TeamJoinLandingPage__Create';\n\nconst COPY = defineMessages({\n invitedPrompt: {\n id: 'team.TeamJoinLandingPage.InvitedPrompt',\n defaultMessage: 'You’ve been invited to join {teamname}’s group',\n description: '[Type: Header][Vis: high] - Heading shown on the landing screen',\n },\n howToJoinPrompt: {\n id: 'team.TeamJoinLandingPage.HowToJoinPrompt',\n defaultMessage: 'How would you like to join?',\n description: '[Type: Header][Vis: med] - Prompt text shown on the landing screen',\n },\n useExisting: {\n id: 'team.TeamJoinLandingPage.useExisting',\n defaultMessage: 'Use an existing account',\n description: '[Type: Paragraph][Vis: med] - Text shown above the \"Convert account\" button',\n },\n createNew: {\n id: 'team.TeamJoinLandingPage.createNew',\n defaultMessage: 'Create a brand new account',\n description: '[Type: Paragraph][Vis: med] - Text shown above the \"Create new account\" button',\n },\n useExistingButton: {\n id: 'team.TeamJoinLandingPage.useExistingButton',\n defaultMessage: 'Convert account',\n description: '[Type: Label][Vis: high] - Label for the button that allows an existing account to be converted',\n },\n createNewButton: {\n id: 'team.TeamJoinLandingPage.createNewButton',\n defaultMessage: 'Create new account',\n description: '[Type: Label][Vis: high] - Label for the button that creates a new account',\n },\n});\n\nconst useStyles = createUseStyles((theme: Theme) => {\n const mediaQueryMinScreenSm = `@media (min-width: ${theme.breakpoints.sm}px)`;\n\n return {\n buttonContainer: {\n marginBottom: theme.spacing[6],\n [mediaQueryMinScreenSm]: {\n width: '240px',\n marginBottom: 0,\n },\n },\n spacer: {\n [mediaQueryMinScreenSm]: {\n borderRight: `1px solid ${theme.palette.border.main}`,\n },\n },\n };\n});\n\nconst TeamJoinLandingPage = ({ teamInvite }: { teamInvite: TeamInvite }): JSX.Element => {\n const { buttonContainer, spacer } = useStyles();\n\n return (\n \n {t(COPY.invitedPrompt, { teamname: teamInvite.group.name })}}\n subTitle={t(COPY.howToJoinPrompt)}\n />\n\n \n {(matches: boolean) => (\n \n \n \n {t(COPY.useExisting)}\n \n \n \n {t(COPY.useExistingButton)}\n \n \n \n
\n \n \n {t(COPY.createNew)}\n \n \n \n {t(COPY.createNewButton)}\n \n \n \n \n )}\n \n \n );\n};\n\nexport default TeamJoinLandingPage;\n","import { IdToken } from '@auth0/auth0-react';\nimport { t } from '@sm/intl';\nimport { ErrorCard } from '@sm/webassets';\nimport React, { PropsWithChildren, ReactElement, ReactNode } from 'react';\nimport { InvalidInviteError, InvalidJWTError } from '~app/helpers/sessionsApiClient';\nimport NiceLink from '../components/NiceLink';\nimport SHARED_COPY from '../sharedCopy';\n\nexport const ERROR_CARD_TEST_ID = 'TeamReassignConfirmPage__Error';\n\nfunction linkReload({ children }: PropsWithChildren<{}>): ReactNode {\n return {children};\n}\n\ntype ReassignErrorCardProps = { error: Error; idToken: IdToken | null };\n\nfunction ReassignErrorCard({ error, idToken }: ReassignErrorCardProps): ReactElement {\n let errorCopy: string | undefined;\n\n // TODO(SECENG-2405): handle error types when API is ready\n\n switch (true) {\n case !idToken:\n case error instanceof InvalidJWTError:\n // The JWT was invalid, this usually means that it expired\n errorCopy = t(SHARED_COPY.ErrorExpired, { link: linkReload });\n break;\n\n case error instanceof InvalidInviteError:\n // The team invite is bogus or expired\n errorCopy = t(SHARED_COPY.ErrorInviteExpired);\n break;\n\n default:\n errorCopy = undefined; // fallback to generic message\n }\n\n return (\n \n );\n}\n\nexport default ReassignErrorCard;\n","import { defineMessages, t } from '@sm/intl';\nimport { Box } from '@wds/box';\nimport { Responsive } from '@wds/responsive';\nimport { Typography } from '@wds/typography';\nimport React, { ReactElement, useEffect, useState } from 'react';\nimport navigateTo from '~app/helpers/navigateTo';\nimport ProgressButton from '../components/ProgressButton/ProgressButton';\nimport TeamPageHeader from '../components/TeamPageHeader/TeamPageHeader';\nimport TeamWindow from '../components/TeamWindow';\nimport { reassignMetricsAttribute } from '../helpers';\nimport { useIdToken } from '../hooks';\nimport { TeamInvite } from '../model';\nimport TeamClient from '../teamsApiClient';\nimport ReassignErrorCard from './ReassignErrorCard';\n\nconst COPY = defineMessages({\n Header: {\n id: 'team.TeamReassignConfirmPage.Header',\n defaultMessage: 'Join {teamname}',\n description: '[Type: Header][Vis: high] - Heading shown on the reassign confirmation screen',\n },\n WhenYouJoinText: {\n id: 'team.TeamReassignConfirmPage.WhenYouJoinText',\n defaultMessage: `When you join a team, you’ll be able to collaborate with team members and the team’s Primary Admin or organization owns and manages your account.`,\n description: '[Type: Paragraph][Vis: med] - Paragraph instructing the user how to proceed',\n },\n JoinButton: {\n id: 'team.TeamReassignConfirmPage.JoinButton',\n defaultMessage: 'Join team',\n description: '[Type: Label][Vis: high] - Label for the button',\n },\n JoiningAltText: {\n id: 'team.TeamReassignConfirmPage.JoiningAltText',\n defaultMessage: 'Joining…',\n description: '[Type: paragraph][Vis: low] - Accessibility message for during the form submission',\n },\n});\n\nexport const WINDOW_TEST_ID = 'TeamReassignConfirmPage__Window';\nexport const EMAIL_TEST_ID = 'TeamReassignConfirmPage__Email';\n\nfunction TeamReassignConfirmPage({ teamInvite }: { teamInvite: TeamInvite }): ReactElement {\n const [error, setError] = useState(null);\n const { idToken, error: idTokenError } = useIdToken();\n const { inviteToken } = teamInvite;\n const [spinning, setSpinning] = useState(false);\n\n // forward errors\n useEffect(() => {\n setError(error ?? idTokenError ?? null);\n }, [error, idTokenError]);\n\n const handleReassign = async (): Promise => {\n if (!idToken) {\n return;\n }\n\n setSpinning(true);\n setError(null);\n try {\n await TeamClient.reassign({ idToken, inviteToken });\n navigateTo('/login/next', {\n joined: 'true',\n origin: 'reassign',\n });\n // continue spinning as we navigate away\n } catch (e: unknown) {\n setError(e as Error);\n setSpinning(false);\n }\n };\n\n return (\n \n
\n \n {(matches: boolean) => (\n \n {error !== null ? : <>}\n\n \n\n \n
\n \n {idToken?.email ?? ''}\n \n
\n
\n \n {t(COPY.WhenYouJoinText)}\n \n\n \n \n {t(COPY.JoinButton)}\n \n \n
\n )}\n
\n \n );\n}\n\nexport default TeamReassignConfirmPage;\n","import { defineMessages, t } from '@sm/intl';\nimport { Box } from '@wds/box';\nimport { Button } from '@wds/button';\nimport { Responsive } from '@wds/responsive';\nimport { Typography } from '@wds/typography';\nimport React, { ReactElement } from 'react';\nimport NiceLink from '../components/NiceLink';\nimport TeamPageHeader from '../components/TeamPageHeader/TeamPageHeader';\nimport TeamWindow from '../components/TeamWindow';\nimport { reassignMetricsAttribute } from '../helpers';\nimport { TeamInvite } from '../model';\n\nexport const WINDOW_TEST_ID = 'TeamReassignLandingPage__Window';\nexport const GROUP_NAME_TEST_ID = 'TeamReassignLandingPage__GroupName';\n\nconst COPY = defineMessages({\n Header: {\n id: 'team.TeamReassignLandingPage.Header',\n defaultMessage: 'You’ve been assigned an account in {teamname}',\n description: '[Type: Header][Vis: high] - Heading shown on the reassign screen',\n },\n Prompt: {\n id: 'team.TeamReassignLandingPage.Prompt',\n defaultMessage: 'Create an account to log in and join your team.',\n description: '[Type: Paragraph][Vis: med] - Paragraph instructing the user how to proceed',\n },\n ContinueButton: {\n id: 'team.TeamReassignLandingPage.ContinueButton',\n defaultMessage: 'Continue',\n description: '[Type: Label][Vis: high] - Label for the button',\n },\n});\n\nfunction TeamReassignLandingPage({ teamInvite }: { teamInvite: TeamInvite }): ReactElement {\n return (\n \n
\n \n {(matches: boolean) => (\n \n \n \n \n\n \n {t(COPY.Prompt)}\n \n\n \n \n \n \n )}\n \n \n );\n}\n\nexport default TeamReassignLandingPage;\n","import { defineMessages, t } from '@sm/intl';\nimport { BasePage, ErrorBoundary, Helmet } from '@sm/webassets';\nimport { ApolloError } from 'apollo-client';\nimport React, { useMemo } from 'react';\nimport { Route, Switch, useLocation } from 'react-router-dom';\nimport { SmShow } from '~app/handlers/handlers';\nimport SHARED_ROUTES from '~app/pages/sharedRoutes';\nimport { AuthProvider, ProtectedRoute } from '../auth';\nimport InvalidInviteErrorCard from '../components/InvalidInviteErrorCard';\nimport LoadingSpinner from '../components/LoadingSpinner';\nimport { useTeamInvite } from '../hooks';\nimport ROUTES from '../routes';\nimport TeamJoinConvertExistingPage from '../TeamJoinConvertExistingPage';\nimport TeamJoinCreateNewPage from '../TeamJoinCreateNewPage';\nimport TeamJoinLandingPage from '../TeamJoinLandingPage';\nimport TeamReassignConfirmPage from '../TeamReassignConfirmPage';\nimport TeamReassignLandingPage from '../TeamReassignLandingPage';\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n interface Window {\n OneTrust?: { initializeCookiePolicyHtml(): void };\n }\n}\n\nconst COPY = defineMessages({\n PAGE_TITLE: {\n id: 'team.TeamBasePage.PageTitle',\n defaultMessage: 'SurveyMonkey – Join a Team',\n description: '[Type: Header][Vis: med] - The title shown on the browser tab for create/convert flows',\n },\n PAGE_TITLE_REASSIGN: {\n id: 'team.TeamBasePage.PageTitleReassign',\n defaultMessage: 'SurveyMonkey – Join a Team: Reassigned Account',\n description: '[Type: Header][Vis: med] - The title shown on the browser tab for reassign flow',\n },\n});\n\nconst ErrorHandler = ({ error }: { error: Error }): JSX.Element => {\n switch (true) {\n case (error as ApolloError).graphQLErrors?.[0]?.extensions?.code === 'SM_BAD_CLIENT_REQUEST':\n return ;\n default:\n // Otherwise, rethrow for the base page error boundary\n throw error;\n }\n};\n\n// This is the parent component of all screens that need to fetch the invite data\nconst TeamJoinContent = (): JSX.Element => {\n const state = useTeamInvite();\n const isLoading = state.status === 'loading';\n return isLoading ? (\n \n ) : (\n (() => {\n // should not need `as` here, but the typechecker seems to have trouble w/ control flow analysis\n const { teamInvite } = state as Exclude;\n const props = { teamInvite };\n return (\n \n {/* CREATE/CONVERT */}\n \n \n \n\n \n \n \n\n \n \n \n\n {/* REASSIGN */}\n \n \n \n\n \n \n \n \n );\n })()\n );\n};\n\nfunction getPageTitle(pathname: string): string {\n if (pathname.includes('reassign')) {\n return t(COPY.PAGE_TITLE_REASSIGN);\n }\n return t(COPY.PAGE_TITLE);\n}\n\n/**\n * Topmost component for the team pages\n */\nconst TeamBasePage = (): JSX.Element => {\n const { pathname } = useLocation();\n\n useMemo(() => {\n // dont ask\n const interval = setInterval(() => {\n const onetrust = window.OneTrust;\n if (onetrust) {\n onetrust.initializeCookiePolicyHtml();\n if (document.querySelector('.ot-sdk-show-settings')?.textContent !== undefined) {\n clearInterval(interval);\n }\n }\n }, 200);\n }, []);\n\n return (\n \n \n {getPageTitle(pathname)}\n \n \n \n\n \n \n \n {/* This route is a placeholder shown while Auth0 is processing the redirect */}\n \n\n {/* Catch all route */}\n \n \n \n \n \n );\n};\n\nexport default TeamBasePage;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"fetchLinkedAccounts\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"user\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"package\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"linkedIdentities\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"items\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"filter\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"ALL\"}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"username\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastLoggedInAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"packageId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"teamName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"package\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"details\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tier\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}},{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateAccountPickerPref\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"setHasSeenAccountPicker\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"seen\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"success\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":400}};\n doc.loc.source = {\"body\":\"query fetchLinkedAccounts {\\n user {\\n id\\n package {\\n id\\n }\\n linkedIdentities {\\n items(filter: ALL) {\\n id\\n username\\n lastLoggedInAt\\n packageId\\n teamName\\n package {\\n details {\\n tier\\n }\\n }\\n }\\n }\\n }\\n}\\n\\nmutation updateAccountPickerPref {\\n setHasSeenAccountPicker(seen: true) {\\n success\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"fetchLinkedAccounts\"] = oneQuery(doc, \"fetchLinkedAccounts\");\n \n module.exports[\"updateAccountPickerPref\"] = oneQuery(doc, \"updateAccountPickerPref\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"fetchTeamInvite\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"inviteToken\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"teamInvite\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"inviteToken\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"inviteToken\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"inviteToken\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"owner\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"packageId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"package\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"details\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tier\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":260}};\n doc.loc.source = {\"body\":\"query fetchTeamInvite($inviteToken: ID!) {\\n teamInvite(inviteToken: $inviteToken) {\\n id\\n inviteToken\\n group {\\n name\\n owner {\\n packageId\\n package {\\n details {\\n tier\\n }\\n }\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"fetchTeamInvite\"] = oneQuery(doc, \"fetchTeamInvite\");\n \n"],"names":["COPY","defineMessages","LOADING","id","defaultMessage","description","useStyles","createUseStyles","fullHeight","height","LoadingSpinner","React","Box","display","flexJustify","flexDirection","flexAlign","className","ProgressCircle","size","continuous","valueText","t","displayName","onRedirectCallback","appState","_appState$returnTo","history","returnTo","window","location","pathname","AuthProvider","_ref","children","rest","_objectWithoutProperties","_excluded","auth0","useContext","StaticContext","Auth0Provider","nowProvider","now","domain","clientId","authorizationParams","_objectSpread","redirect_uri","origin","SHARED_ROUTES","authorizeTimeoutInSeconds","useRefreshTokens","cacheLocation","AuthErrorCard","CaptiveWindow","Responsive","minWidth","matches","p","my","ErrorCard","copyOptions","variant","iconOptions","color","ProtectedRoute","_ref2","smShow","smInviteToken","_excluded2","_useContext2$environm","environment","languageCode","countryCode","_useAuth","useAuth0","isAuthenticated","isLoading","loginWithRedirect","error","clientErrorHandler","Route","prompt","SmParams","INVALID_INVITE","ASK_TEAM_ADMIN","InvalidInviteErrorCard","Typography","component","align","metricsHelper","actionFlow","actionType","generateMetricsAttribute","data","toString","joinMetricsAttribute","reassignMetricsAttribute","getGraphQLContext","targetPath","useTeamInvite","inviteToken","useInviteToken","useParams","Error","_useQuery","useQuery","fetchTeamInvite","variables","context","loading","status","teamInvite","useIdToken","getIdTokenClaims","_useState","useState","_useState2","_slicedToArray","idToken","setIdToken","_useState3","_useState4","setError","useEffect","async","getClaims","claims","InvalidJWTError","catch","noUnderline","textDecoration","NiceLink","props","logout","ReactRouterLink","Object","assign","onClick","e","openUrl","HEADER","BODY","BUTTON_CREATE","BUTTON_CONVERT","createMemoStyles","theme","spacing","modalBody","background","palette","accent","marginLeft","marginRight","marginBottom","padding","marginBlockEnd","DowngradeModal","currentPlan","newPlan","onClose","onConfirm","Modal","show","header","T","desc","values","html","Button","to","ProgressButton","progress","progressText","titleClass","subTitle","text","dark","fontSize","type","pageTitle","wordBreak","hyphens","subTitleClass","body","TeamPageHeader","title","_useStyles","PageHeader","centered","teamWindow","maxWidth","TeamWindow","TermsOfUse","TermsOfUsePlainText","TermsOfUseCheckbox","checked","onChange","Checkbox","ariaLabel","label","ml","touLink","createURL","ut_source","privacyLink","NotEnoughSeatsError","DataCenterMismatchError","ServerError","UserAlreadyInGroupError","UserIsHipaaError","constructor","baseUrl","log","this","acceptTeamInvite","targetUserId","resp","fetch","method","headers","JSON","stringify","id_token","__raw","invite_token","handleErrorResponse","action","target_user_id","json","errors","code","logError","ErrorInviteExpired","ErrorExpired","ErrorNotEnoughSeats","ErrorDataCenterMismatch","ErrorEmailIdentityNotLinked","ErrorThirdPartyIdentityNotLinked","ErrorUserAlreadyJoined","ErrorUserIsHipaa","linkReload","ConvertErrorCard","refetch","errorCopy","doRefetch","back","landingPageLinkFactory","SHARED_COPY","link","InvalidInviteError","IdentityNotLinkedError","nonNullIdToken","notNull","value","TypeError","sub","startsWith","PASSWORD_SUBJECT","socialName","getSocialName","email","isGraphQLError","undefined","TeamJoinConvertSkeleton","SkeletonLoader","width","x","y","rx","ry","list","listStyleType","margin","UserInfo","user","_idToken$email","linkedIdentities","items","length","getPackageName","Number","packageId","JoinHeader","SingleAccountPrompt","MultipleAccountsPrompt","ConvertButton","ConvertingAltText","SessionClient","sessionsApiClient","TeamJoinConvertExistingPage","termsAccepted","setTermsAccepted","_useState5","_useState6","selectedUserId","setSelectedUserId","_useState7","_useState8","sessionLoading","setSessionLoading","_useState9","_useState10","spinning","setSpinning","_useState11","_useState12","modalOpen","setModalOpen","_useIdToken","idTokenError","_useState13","_useState14","loggedInUserId","setLoggedInUserId","_useState15","_useState16","currentPackage","setCurrentPackage","_useState17","_useState18","newPackage","setNewPackage","_useLazyQuery","useLazyQuery","fetchLinkedAccounts","_useLazyQuery2","doFetchLinkedAccounts","_useLazyQuery2$","graphqlLoading","graphqlError","doLogin","token","login","handleJoinTeam","TeamClient","switch","navigateTo","joined","hasMultipleAccounts","mx","teamname","group","name","mb","mt","map","linkedAccount","userId","isSelected","actionFn","keycode","AccountCard","key","account","onKeyDown","selected","addOnLeft","Radio","role","tabIndex","target","stretched","disabled","onJoinClick","linkedIds","userToConvert","find","u","owner","currentTier","package","details","tier","ErrorEmailIdentityAlreadyLinked","ErrorThirdPartyIdentityAlreadyLinked","CreateErrorCard","IdentityAlreadyLinkedError","convertLink","WhenYouJoinText","JoinButton","JoiningAltText","TeamJoinCreateNewPage","createUser","createBySignup","SessionResult","invitedPrompt","howToJoinPrompt","useExisting","createNew","useExistingButton","createNewButton","mediaQueryMinScreenSm","breakpoints","sm","buttonContainer","spacer","borderRight","border","main","TeamJoinLandingPage","ReassignErrorCard","Header","TeamReassignConfirmPage","handleReassign","m","Prompt","ContinueButton","TeamReassignLandingPage","PAGE_TITLE","PAGE_TITLE_REASSIGN","ErrorHandler","_graphQLErrors","_graphQLErrors$","_graphQLErrors$$exten","graphQLErrors","extensions","TeamJoinContent","state","Switch","exact","path","ROUTES","SmShow","TeamBasePage","useLocation","useMemo","interval","setInterval","onetrust","OneTrust","_document$querySelect","initializeCookiePolicyHtml","document","querySelector","textContent","clearInterval","BasePage","pageId","includeHeader","includeFooter","legacyWeb","pageMetricsAttributes","disableDA","Helmet","getPageTitle","includes","src","charSet","dangerouslySetInnerHTML","__html","ErrorBoundary","FallbackComponent","doc","loc","source","collectFragmentReferences","node","refs","kind","add","selectionSet","selections","forEach","selection","variableDefinitions","def","definitions","definitionRefs","findOperation","i","element","oneQuery","operationName","newDoc","hasOwnProperty","opRefs","Set","allRefs","newRefs","refName","prevRefs","has","childRef","op","push","extractReferences","module","exports"],"sourceRoot":""}