{"version":3,"file":"static/chunks/pages/mfa/verify-c288e245c636e1e0122b.js","mappings":"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","sources":["webpack://_N_E/./pages/mfa/verify.tsx","webpack://_N_E/./src/components/FormButtons.tsx","webpack://_N_E/./src/components/layout/Form.tsx","webpack://_N_E/./src/components/layout/Heading.tsx","webpack://_N_E/./src/components/layout/PageContent.tsx","webpack://_N_E/./src/components/shared/Modal.tsx","webpack://_N_E/./src/components/shared/Spinner.tsx","webpack://_N_E/./src/hooks/useTokenVerification.ts","webpack://_N_E/./src/hooks/useSessionTimer.ts","webpack://_N_E/?ccf0"],"sourcesContent":["import React, { useEffect, useState } from 'react'\n\nimport Spinner from '@components/shared/Spinner'\nimport { getXCLEARCorrelationInfo, setAccessToken } from '@api/utils'\nimport { useRouter } from 'next/router'\nimport { enrollmentApi, mfaAuthApi } from '@api/enrollmentClient/config'\nimport {\n ContactMethod,\n MfaChannelsChannels,\n} from '@clear-denver/tpc-openapi-typescript/build/v1/enrollment/models'\n\nimport useEnrollmentApi from '@hooks/useEnrollmentApi'\nimport PageContent from '@components/layout/PageContent'\nimport { HeadTitle } from '@components/layout/HeadTitle'\nimport { PageHeading } from '@components/layout/Heading'\nimport { Card, Text, RadioGroup, InputGroup } from '@clear/design-system'\nimport { Row, Form, Actions, ErrorMessage } from '@components/layout/Form'\nimport { useForm } from 'react-hook-form'\nimport { ContinueButton, BackButton } from '@components/FormButtons'\nimport { object, string } from 'yup'\nimport { yupResolver } from '@hookform/resolvers/yup'\n\nexport const MFA_VALIDATION = {\n INCOMPLETE: 'Please enter verification code.',\n MIN_LENGTH: 'Verification code should be at least 5 digits.',\n INCORRECT_CODE: \"Code doesn't match. Try again.\",\n}\n\nconst defaultValues = {\n channel: ContactMethod.EMAIL,\n}\n\nconst channelSchema = object({\n channel: string().required(),\n})\n\nconst verificationCodeSchema = object({\n verificationCode: string()\n .required(MFA_VALIDATION.INCOMPLETE)\n .test(\n 'length test',\n MFA_VALIDATION.MIN_LENGTH,\n (value: string | undefined) => {\n if (value == null) return true\n return value.length >= 5\n }\n ),\n})\n\nfunction MultiFactorAuth() {\n const router = useRouter()\n const { updateState } = useEnrollmentApi()\n const { register, handleSubmit, watch, formState } = useForm<\n typeof defaultValues & { global: { message: string } }\n >({\n mode: 'onChange',\n resolver: yupResolver(channelSchema),\n defaultValues,\n })\n\n const { errors } = formState\n\n const verificationCodeForm = useForm<\n { verificationCode: string } & { global: { message: string } }\n >({\n mode: 'onChange',\n resolver: yupResolver(verificationCodeSchema),\n })\n\n const { channel } = watch()\n const { enrollmentId = '' as string, nextRoute = '' as string } = router.query\n const [isLoading, setIsLoading] = useState(false)\n const [availableMFAChannels, setAvailableMFAChannels] = useState<\n MfaChannelsChannels[]\n >([])\n\n const { verificationCode } = verificationCodeForm.watch()\n const [token, setToken] = useState('')\n const [canVerify, setCanVerify] = useState(false)\n\n useEffect(() => {\n const getMFAChannels = async () => {\n setIsLoading(true)\n if (enrollmentId) {\n try {\n const mfa = await mfaAuthApi.channels({\n xCLEARCorrelationInfo: getXCLEARCorrelationInfo(),\n enrollmentId: enrollmentId.toString(),\n })\n setAvailableMFAChannels(mfa.channels)\n } catch (error) {\n console.log(error)\n }\n }\n setIsLoading(false)\n }\n getMFAChannels()\n }, [enrollmentId])\n\n async function handleChannelSubmit() {\n setIsLoading(true)\n try {\n // Make call to send notification to selected channel\n // Get mfa token and store it\n const { token } = await mfaAuthApi.challenge({\n xCLEARCorrelationInfo: getXCLEARCorrelationInfo(),\n enrollmentId: enrollmentId.toString(),\n mfaChallenge: {\n channel,\n },\n })\n setToken(token)\n setCanVerify(true)\n } catch (error) {\n console.log(error)\n }\n setIsLoading(false)\n }\n\n async function handleVerificationCodeSubmit() {\n setIsLoading(true)\n try {\n const mfa = await mfaAuthApi.verify({\n xCLEARCorrelationInfo: getXCLEARCorrelationInfo(),\n mfaVerify: {\n token,\n pass: verificationCode,\n },\n })\n setAccessToken(mfa.jwt)\n if (enrollmentId) {\n try {\n const enrollment = await enrollmentApi.getStateById({\n xCLEARCorrelationInfo: getXCLEARCorrelationInfo(),\n enrollmentId: enrollmentId as string,\n })\n updateState(enrollment)\n } catch (error) {\n setIsLoading(false)\n console.log(error)\n }\n }\n router.push({\n pathname: nextRoute as string,\n })\n } catch (e) {\n // setCanSubmit(false)\n console.log(e)\n if (e.status === 422) {\n verificationCodeForm.setError('verificationCode', {\n message: MFA_VALIDATION.INCORRECT_CODE,\n })\n }\n }\n setIsLoading(false)\n }\n\n return (\n \n \n Update Contact Info\n \n \n {canVerify\n ? 'Enter your verification code'\n : 'Get a verification code'}\n \n {canVerify ? (\n
\n \n \n \n\n \n setCanVerify(false)}\n />\n \n \n
\n ) : (\n
\n \n ({\n label: `${\n availableChannel.channel[0].toUpperCase() +\n availableChannel.channel.slice(1).toLowerCase()\n }: ${availableChannel.label}`,\n value: availableChannel.channel,\n }))}\n selected={channel}\n />\n \n\n \n \n \n
\n )}\n
\n {isLoading && }\n {errors.global && {errors.global.message}}\n
\n )\n}\n\nexport default MultiFactorAuth\n","import React from 'react'\nimport useMedia from 'use-media'\n\nimport { Button, ButtonProps, theme } from '@clear/design-system'\n\nconst aboveMobile = theme?.breakpoints?.[0] as string\n\nexport const BackButton: React.FC = (props) => {\n const isAboveMobile = useMedia({ minWidth: aboveMobile })\n\n return (\n \n )\n}\n\nexport const ContinueButton: React.FC = ({\n text = 'Continue',\n id,\n ...props\n}) => {\n const isAboveMobile = useMedia({ minWidth: aboveMobile })\n\n return (\n \n )\n}\n","import React, { FormHTMLAttributes } from 'react'\nimport { Text, TextProps, Flex, FlexProps } from '@clear/design-system'\n\ntype FormProps = FlexProps & FormHTMLAttributes\n\nexport const Form: React.FC = (props) => (\n \n)\n\nexport const Row: React.FC = (props) => (\n \n)\n\nexport const Actions: React.FC = (props) => (\n \n)\n\nexport const StepTitle: React.FC = (props) => (\n \n)\n\nexport const StepSubTitle: React.FC = (props) => (\n \n)\n\nexport const ErrorMessage = React.forwardRef(\n ({ children, ...props }, ref) => (\n \n Error: {children}\n \n )\n)\n\nErrorMessage.displayName = 'ErrorMessage'\n","import React, { ReactNode } from 'react'\nimport { Text, TextProps } from '@clear/design-system'\n\nexport type HeadingProps = TextProps & {\n children?: ReactNode\n}\n\nexport const PageHeading = ({ children, ...props }: HeadingProps) => (\n \n {children}\n \n)\n\nexport const CardHeading = (props: HeadingProps) => (\n \n)\nexport const FormSectionHeading = (props: HeadingProps) => (\n \n)\n","import React, { useState, useEffect } from 'react'\nimport { useRouter } from 'next/router'\nimport { Box, BoxProps } from '@clear/design-system'\nimport { Modal } from '@components/shared/Modal'\nimport useEnrollmentApi from '@hooks/useEnrollmentApi'\nimport { useSessionTimer } from '@hooks/useSessionTimer'\n\ntype PageContentProps = BoxProps\nconst PageContent: React.FC = ({ ...props }) => {\n const { clearState: clearEnrollmentState } = useEnrollmentApi()\n const router = useRouter()\n const sessionTimeout =\n (router && router.query && router.query.sessionTimeout) || ''\n const pathname = (router && router.pathname) || ''\n const [showSessionModal, setShowSessionModal] = useState(false)\n\n const successClickFunction = () => {\n router.push('/')\n }\n\n useEffect(() => {\n const shouldShowModal = sessionTimeout === 'true' && pathname !== '/'\n if (shouldShowModal) {\n setShowSessionModal(true)\n }\n }, [pathname, sessionTimeout])\n\n useSessionTimer(clearEnrollmentState)\n\n return (\n \n \n \n \n )\n}\n\nexport default PageContent\n","import React, { SetStateAction, ReactNode } from 'react'\nimport { Flex, Text, Button } from '@clear/design-system'\nimport { ColorType } from '@clear/design-system/lib/theme/colors'\nimport Link from 'next/link'\n\nexport interface ModalProps {\n header?: string\n body: string | ReactNode\n bodyNote?: string\n showModal: boolean\n setShowModal: React.Dispatch>\n canClose?: boolean\n successButtonText?: string\n closeButtonText?: string\n successLink?: string\n successClick?: () => void\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = () => {}\n\nexport function Modal(props: ModalProps) {\n const {\n header,\n body,\n bodyNote,\n showModal,\n setShowModal,\n canClose,\n successButtonText = 'success',\n successLink,\n successClick,\n } = props\n\n const handleCloseModal = () => setShowModal(false)\n\n return (\n <>\n {showModal ? (\n <>\n \n e.stopPropagation()}\n mx={[6, null]}\n >\n {/* header */}\n \n {header && (\n \n {header}\n \n )}\n \n {body}\n \n {bodyNote && (\n \n {bodyNote}\n \n )}\n \n \n {successLink ? (\n \n \n \n ) : (\n \n )}\n \n \n \n
\n \n ) : null}\n \n )\n}\n","import React from 'react'\n\nexport default function Spinner() {\n return (\n
\n
\n
\n
\n
\n
\n \n
\n
\n )\n}\n","import { useRouter } from 'next/router'\nimport { useEffect } from 'react'\nimport { getAccessToken, setAccessToken } from '@api/utils'\n\nconst beforeUnloadListener = (event: any) => {\n event.preventDefault()\n return (event.returnValue = 'Are you sure you want to exit?')\n}\n\nexport function useTokenVerification(disabled = false) {\n const router = useRouter()\n\n useEffect(() => {\n if (!disabled) {\n try {\n const token = getAccessToken()\n if (token) {\n addEventListener('beforeunload', beforeUnloadListener, {\n capture: true,\n })\n }\n } catch (err) {\n console.log({ tokenError: err })\n setAccessToken('')\n router.push('/')\n }\n return () => {\n removeEventListener('beforeunload', beforeUnloadListener, {\n capture: true,\n })\n }\n }\n }, [router, disabled])\n}\n","import { useRouter } from 'next/router'\nimport { useIdleTimer } from 'react-idle-timer'\nimport { useTokenVerification } from './useTokenVerification'\nimport { setAccessToken, setSessionId } from '@api/utils'\n\nconst FIFTEEN_MINUTES_IN_MILLIS = 1000 * 60 * 15\n\nexport const getInactivityTimeout = (\n INACTIVITY_TIMEOUT = FIFTEEN_MINUTES_IN_MILLIS\n) => INACTIVITY_TIMEOUT\n\nexport function useSessionTimer(\n timeoutCallback?: () => void,\n disableTokenVerification?: boolean,\n inactivityTimeout?: number\n) {\n const router = useRouter()\n\n useTokenVerification(disableTokenVerification)\n\n const sessionTimeoutHandler = async () => {\n timeoutCallback && timeoutCallback()\n // Sign out of cognito\n setAccessToken('')\n setSessionId('')\n await router.push(\n {\n pathname: router.route,\n query: { sessionTimeout: 'true' },\n },\n undefined,\n { shallow: true }\n )\n }\n\n const idleTimerFunctions = useIdleTimer({\n timeout: getInactivityTimeout(inactivityTimeout),\n onIdle: sessionTimeoutHandler,\n debounce: 500,\n })\n\n return {\n ...idleTimerFunctions,\n sessionTimeoutHandler,\n }\n}\n","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/mfa/verify\",\n function () {\n return require(\"private-next-pages/mfa/verify.tsx\");\n }\n ]);\n "],"names":["MFA_VALIDATION","INCOMPLETE","MIN_LENGTH","INCORRECT_CODE","defaultValues","channel","ContactMethod","channelSchema","object","string","required","verificationCodeSchema","verificationCode","test","value","length","router","useRouter","updateState","useEnrollmentApi","useForm","mode","resolver","yupResolver","register","handleSubmit","watch","formState","errors","verificationCodeForm","query","enrollmentId","nextRoute","useState","isLoading","setIsLoading","availableMFAChannels","setAvailableMFAChannels","token","setToken","canVerify","setCanVerify","mfaAuthApi","xCLEARCorrelationInfo","getXCLEARCorrelationInfo","toString","mfaChallenge","console","log","mfaVerify","pass","mfa","setAccessToken","jwt","enrollmentApi","enrollment","push","pathname","status","setError","message","useEffect","channels","getMFAChannels","title","description","color","mb","p","as","variant","fontSize","my","textAlign","mx","name","label","maxLength","error","containerProps","width","justifyContent","text","icon","onClick","disabled","isValid","global","onSubmit","options","map","availableChannel","toUpperCase","slice","toLowerCase","selected","isDirty","aboveMobile","theme","BackButton","props","isAboveMobile","useMedia","minWidth","textProps","display","size","iconPosition","ContinueButton","id","undefined","type","Form","flexDirection","Row","alignItems","Actions","mt","StepTitle","StepSubTitle","ErrorMessage","React","ref","children","displayName","PageHeading","__css","textTransform","CardHeading","FormSectionHeading","clearEnrollmentState","clearState","sessionTimeout","showSessionModal","setShowSessionModal","useSessionTimer","px","showModal","setShowModal","header","body","successButtonText","successClick","canClose","noop","Modal","bodyNote","successLink","className","backgroundColor","e","stopPropagation","pb","href","passHref","Spinner","beforeUnloadListener","event","preventDefault","returnValue","FIFTEEN_MINUTES_IN_MILLIS","getInactivityTimeout","INACTIVITY_TIMEOUT","timeoutCallback","disableTokenVerification","inactivityTimeout","getAccessToken","addEventListener","capture","err","tokenError","removeEventListener","useTokenVerification","sessionTimeoutHandler","setSessionId","route","shallow","useIdleTimer","timeout","onIdle","debounce","window","__NEXT_P"],"sourceRoot":""}