{"version":3,"file":"5680.01e358a4f97ecea4e137.js","mappings":"8uBA4NA,C,yBA5NwC,Q,MACzB,Q,MAEI,Q,IACU,O,IACA,O,MACN,Q,MACN,O,IAC2B,O,MAC1B,Q,MACK,Q,m+GAkNvB,EAhMyB,Y,MACvBA,EAAAA,EAAAA,UAAAA,EAAAA,EACAC,UAAAA,OAAAA,IAAY,OACZC,EAAAA,EAAAA,UACAC,EAAAA,EAAAA,QACAC,EAAAA,EAAAA,qBACAC,EAAAA,EAAAA,YAE0BC,EAAAA,GAAAA,EAAAA,EAAAA,UAAS,OAA5BC,EAAmBD,EAAAA,GAAZE,EAAYF,EAAAA,GACMA,EAAAA,GAAAA,EAAAA,EAAAA,UAAS,OAAlCG,EAAyBH,EAAAA,GAAfI,EAAeJ,EAAAA,GACJA,EAAAA,GAAAA,EAAAA,EAAAA,UAxBO,CACnCK,eAAe,EACfC,iBAAiB,EACjBC,wBAAwB,EACxBC,gBAAgB,IAoBqBC,GAA9BC,EAAqBV,EAAAA,GAAbW,EAAaX,EAAAA,GACsBA,EAAAA,GAAAA,EAAAA,EAAAA,WAAS,GAAK,GAAzDY,EAA2CZ,EAAAA,GAAxBa,EAAwBb,EAAAA,GACRA,EAAAA,GAAAA,EAAAA,EAAAA,WAAS,GAAK,GAAjDc,EAAmCd,EAAAA,GAApBe,EAAoBf,EAAAA,GACcA,EAAAA,GAAAA,EAAAA,EAAAA,WAAS,GAAK,GAA/DgB,EAAiDhB,EAAAA,GAA3BiB,EAA2BjB,EAAAA,GACYA,EAAAA,GAAAA,EAAAA,EAAAA,WAAS,GAAK,GAA3EkB,EAA6DlB,EAAAA,GAAjCmB,EAAiCnB,EAAAA,GAC9DoB,GAAqBC,EAAAA,EAAAA,SAAgB,GACrCC,GAAyBD,EAAAA,EAAAA,SAAgB,GACzCE,GAAYC,EAAAA,EAAAA,gBACZC,G,EAAqB,YAAOC,G,2BAMhC,OALAA,EAAEC,iBACFP,EAAmBQ,SAAU,EAC7Bf,GAAqB,GACrBF,EApCiC,CACnCN,eAAe,EACfC,iBAAiB,EACjBC,wBAAwB,EACxBC,gBAAgB,IAiCdO,GAAiB,GACV,C,EAAAc,I,GACT,I,SAPkCH,G,iCAQ5BG,EAAQ,W,MAAA,c,IAENC,EACAC,E,kDADkB,OADxBX,EAAmBQ,SAAU,EACL,C,EAAMI,K,OACd,OADVF,EAAkB,SACR,C,EAAMG,EA9CT,0BA8C+BH,I,cAAtCC,EAAU,UACJG,SACVC,EAAqBJ,EAAQK,SAASC,iBAExCxB,GAAqB,GACrBF,EAAUoB,EAAQrB,QAClBK,EAAiBgB,EAAQG,S,OAC3B,I,kDAVc,GAWRF,EAAuB,W,MAAA,c,IACrBM,EAEAC,E,kDAFe,O,EAAMhB,EAAUiB,W,OACrC,IADMF,EAAe,UACJG,QAAS,MAAMH,EAAaI,MAwB7C,OAvBMH,EAAcI,KAAKC,UAAU,CACjC3C,MAAAA,EACAE,SAAAA,EACAT,UAAAA,EACA4C,aAAcA,EAAaO,QAmBtB,C,EATH,CACFC,OAAQ,OACRC,QAAS,CACPC,OAAQ,mBACR,eAAgB,oBAElBC,KAAMV,EACNW,YAAa,Y,GAGjB,I,kDA3B6B,GA4BvBjB,EAAc,W,MAAA,YAAOkB,EAAaC,G,IAChCrB,EAQEsB,EAEEC,E,kDAVJvB,EAAU,CACdG,SAAS,EACTxB,OAlF+B,CACnCL,eAAe,EACfC,iBAAiB,EACjBC,wBAAwB,EACxBC,gBAAgB,GA+EZ4B,SAAU,CACRC,iBAAiB,I,iBAIF,O,sBAAA,C,EAAMkB,MAAMJ,EAAKC,I,cAA5BC,EAAW,UACJG,GAKP,C,EAAMH,EAASI,QALjBJ,C,mBACIC,EAIF,UACKpB,SACPH,EAAQG,SAAU,EAClBH,EAAQK,SAASC,gBAAkBiB,EAAKlB,SAASsB,SAAS,qBAE1D3B,EAAQrB,OAAOL,cAAgBiD,EAAK5C,OAAOgD,SAAS,iBAAmBJ,EAAK5C,OAAOgD,SAAS,oBAAsBJ,EAAK5C,OAAOgD,SAAS,gBAAkBJ,EAAK5C,OAAOgD,SAAS,sBAC9K3B,EAAQrB,OAAOJ,gBAAkBgD,EAAK5C,OAAOgD,SAAS,kBACtD3B,EAAQrB,OAAOH,uBAAyB+C,EAAK5C,OAAOgD,SAAS,iCAAmCJ,EAAK5C,OAAOgD,SAAS,0B,aAGvH3B,EAAQrB,OAAOF,gBAAiB,E,2CAE3BkC,EAAAA,OACPX,EAAQrB,OAAOF,gBAAiB,E,aAElC,MAAO,C,EAAAuB,G,GACT,I,gBA/B2BoB,EAAaC,G,gCAApB,GAgCdjB,EAAuB,SAACE,GAC5B,IAAMsB,EAAcC,EAAAA,QAAOC,IAAI,cAC/B,GAAIxB,GAAmBsB,EACrBG,OAAOC,SAASC,KAAO,GAAgCrE,OAnHxC,mDAmH0BgE,GAAAA,OAA4B,KAAdhE,EAAmB,aAAuB,OAAVA,GAAc,IAAoC,OAA/BI,aAAAA,EAAAA,EAAakE,QAAQ,IAAK,WAC/H,GAAkB,KAAdtE,EACTmE,OAAOC,SAASC,KAAOrE,EAAYI,OAC9B,GAAID,EAERoE,EAAAA,QAAMC,UAA2BC,EAAAA,EAAAA,gCAClCtE,SACK,GAAIC,EAAa,C,IACC+D,EAAvBA,OAAOC,SAASC,MAAsB,QAAfF,EAAAA,OAAOC,gBAAPD,IAAAA,OAAAA,EAAAA,EAAiBE,KAAKK,MAAM,KAAK,IAAKtE,CAC/D,MACE+D,OAAOC,SAASO,QAEpB,EACMC,GAAuC,W,MAAA,c,IACrCjC,EASAC,E,kDATe,O,EAAMhB,EAAUiB,W,OACrC,IADMF,EAAe,UACJG,QAMf,MALA+B,EAAAA,EAAAA,cAAalC,EAAaI,OAC1B/B,EAAU,E,sUAAA,IACLD,GAAAA,CACHJ,iBAAiB,KAEbgC,EAAaI,MAwBrB,OAtBMH,EAAcI,KAAKC,UAAU,CACjC3C,MAAAA,EACAP,UAAAA,EACA4C,aAAcA,EAAaO,QAmBtB,C,EATH,CACFC,OAAQ,OACRC,QAAS,CACPC,OAAQ,mBACR,eAAgB,oBAElBC,KAAMV,EACNW,YAAa,Y,GAGjB,I,kDAjC6C,GAkCvCuB,GAAwB,W,MAAA,c,IAEtB3C,EACAC,E,kDADkB,OADxBT,EAAuBM,SAAU,EACT,C,EAAM2C,M,OACd,OADVzC,EAAkB,SACR,C,EAAMG,EAtKO,0CAsK+BH,I,cAAtDC,EAAU,SAChBpB,EAAUoB,EAAQrB,QAClBS,GAA8B,GAC9BF,EAAwBc,EAAQG,S,OAClC,I,kDAP8B,GAQxBwC,GAAqC,W,MAAA,YAAOhD,G,2BAMhD,OALAA,EAAEC,iBACFL,EAAuBM,SAAU,EACjCjB,EA5KiC,CACnCN,eAAe,EACfC,iBAAiB,EACjBC,wBAAwB,EACxBC,gBAAgB,IAyKdW,GAA8B,GAC9BF,GAAwB,GACjB,C,EAAAwD,K,GACT,I,gBAPkD/C,G,gCAAP,GAoB3C,OAAO,UAACiD,EAAAA,QAAU,CAACC,OAAQhF,EAAWiF,eAAgBhF,EAASiF,UAAW,GAA6C,QAA1CC,EAAAA,EAAAA,SAAG,aAAc,SAAU,eAAe,iBAAgBC,sBAAoB,aAAaC,wBAAsB,mBAAmBC,0BAAwB,uB,WACrO,UAACC,SAAAA,CAAOL,WAAWC,EAAAA,EAAAA,SAAG,OAAQ,eAAgB,MAAO,Y,WACnD,SAACK,KAAAA,CAAGN,WAAWC,EAAAA,EAAAA,SAAG,O,SAAQ,WAC1B,SAACM,SAAAA,CAAOC,KAAK,SAASC,aAAW,QAAQC,QAAS3F,EAASiF,WAAWC,EAAAA,EAAAA,SAAG,iBAAkB,cAAe,iBAAkB,OAAQ,eAAgB,aAAc,MAAO,WAAY,UAAW,WAAYU,MAAO,CACnNC,UAAW,oB,UAET,SAACC,EAAAA,QAAI,CAACC,KAAK,SAASC,MAAM,KAAKC,OAAO,KAAKd,sBAAoB,OAAOE,0BAAwB,+BAGlG,SAACa,EAAAA,QAAU,CAACnF,kBAAmBA,EAAmBE,cAAeA,EAAekF,aAA+B,IAAjB/F,EAAMgG,OAAcC,gBAAqC,IAApB/F,EAAS8F,OAAc/E,2BAA4BA,EAA4BF,qBAAsBA,EAAsBN,OAAQA,EAAQe,mBAAoBA,EAAoBiD,mCAAoCA,GAAoCyB,eArB3W,SAACzE,GACtB,OAAQA,EAAE0E,OAAOR,MACf,IAAK,QACH1F,EAASwB,EAAE0E,OAAOvD,OAClB,MACF,IAAK,WACHzC,EAAYsB,EAAE0E,OAAOvD,OAK3B,EAUka5C,MAAOA,EAAO+E,sBAAoB,aAAaE,0BAAwB,0BACre,SAACmB,OAAAA,CAAKvB,WAAWC,EAAAA,EAAAA,SAAG,QAAS,UAAW,eAAgB,OAAQ,e,UAC9D,SAACuB,IAAAA,CAAEtC,KAAoB,KAAdrE,EAAmB,2CAAmE,OAAxBA,EAAYI,GAAgB,+B,SAAgC,0BAK3I,C,0ICnHA,C,wBAxGkB,O,IACH,S,IACqB,O,IAC+C,O,MAChE,Q,mDACnB,gCAmBA,IAgFA,EAhFmB,Y,IACjBa,EAAAA,EAAAA,kBACAE,EAAAA,EAAAA,cACAkF,EAAAA,EAAAA,aACAE,EAAAA,EAAAA,gBACAhF,EAAAA,EAAAA,2BACAF,EAAAA,EAAAA,qBACAS,EAAAA,EAAAA,mBACAiD,EAAAA,EAAAA,mCACAhE,EAAAA,EAAAA,OACAyF,EAAAA,EAAAA,eACAlG,EAAAA,EAAAA,MAEMsG,EAAsB3F,GAAqBE,GAAiBkF,GAAgBE,EAC5EM,EAA0B1F,GAAiBI,GAA8B8E,EAC/E,OAAO,SAACS,MAAAA,CAAIxB,wBAAsB,aAAaC,0BAAwB,iB,UACnE,UAACwB,OAAAA,CAAKC,OAAO,IAAI7D,OAAO,OAAOgC,WAAWC,EAAAA,EAAAA,SAAG,MAAO,Y,WAClD,SAAC0B,MAAAA,CAAI3B,WAAWC,EAAAA,EAAAA,SAAG,OAAQ,WAAY,W,UACrC,UAAC0B,MAAAA,CAAI3B,WAAWC,EAAAA,EAAAA,SAAG,Y,WACjB,SAAC6B,QAAAA,CAAM9B,UAAW+B,EAAAA,WAAYC,QAAQ,Q,SAAQ,mBAG9C,SAACC,QAAAA,CAAMzB,KAAK,QAAQM,KAAK,QAAQoB,UAAW,IAAKC,UAAQ,EAACC,GAAG,QAAQpC,UAAW,GAAgBqC,OAAbC,EAAAA,UAAU,KAA4B,OAAzBD,EAAAA,0BAA4BE,SAAUlB,EAAgBtD,MAAO5C,EAAOwF,MAAO,CAC3KK,OAAQ,gBAIZ,SAACW,MAAAA,CAAI3B,WAAWC,EAAAA,EAAAA,SAAG,OAAQ,WAAY,W,UACrC,UAAC0B,MAAAA,CAAI3B,WAAWC,EAAAA,EAAAA,SAAG,Y,WACjB,SAAC6B,QAAAA,CAAM9B,UAAW+B,EAAAA,WAAYC,QAAQ,W,SAAW,cAGjD,SAACC,QAAAA,CAAMzB,KAAK,WAAWM,KAAK,WAAWoB,UAAW,IAAKC,UAAQ,EAACC,GAAG,WAAWpC,UAAW,GAAgBqC,OAAbC,EAAAA,UAAU,KAA4B,OAAzBD,EAAAA,0BAA4BE,SAAUlB,EAAgBV,MAAO,CACtKK,OAAQ,WAER,SAACW,MAAAA,CAAI3B,WAAWC,EAAAA,EAAAA,SAAG,UAAW,eAAgB,OAAQ,WAAY,UAAW,eAAgB,QAASU,MAAO,CAC7GC,UAAW,oB,UAET,SAACY,IAAAA,CAAEtC,KAAK,gC,SAAgC,6BAI9C,UAACyC,MAAAA,CAAI3B,WAAWC,EAAAA,EAAAA,SAAG,OAAQ,Y,UACxBrE,EAAOL,gBAAiB,UAACoG,MAAAA,CAAI3B,UAAW,GAAwBC,OAArBuC,EAAAA,kBAAkB,KAAkB,QAAfvC,EAAAA,EAAAA,SAAG,a,UAAe,0DAE/E,SAACuB,IAAAA,CAAEtC,KAAK,gC,SAAgC,wBAAuB,OAElEtD,EAAOJ,kBAAmB,SAACmG,MAAAA,CAAI3B,UAAW,GAAwBC,OAArBuC,EAAAA,kBAAkB,KAAkB,QAAfvC,EAAAA,EAAAA,SAAG,a,SAAe,8DAGpFrE,EAAOH,yBAA0B,SAACkG,MAAAA,CAAI3B,UAAW,GAAwBC,OAArBuC,EAAAA,kBAAkB,KAAkB,QAAfvC,EAAAA,EAAAA,SAAG,a,SAAe,4DAG3FrE,EAAOF,iBAAkB,SAACiG,MAAAA,CAAI3B,UAAW,GAAwBC,OAArBuC,EAAAA,kBAAkB,KAAkB,QAAfvC,EAAAA,EAAAA,SAAG,a,SAAe,uEAKtF,UAAC0B,MAAAA,CAAI3B,WAAWC,EAAAA,EAAAA,SAAG,OAAQ,WAAY,W,WACrC,SAACwC,EAAAA,QAAM,CAACjC,KAAK,SAASkC,MAAM,QAAQC,KAAK,QAAQ3C,UAAW,GAAmByB,QAAhBxB,EAAAA,EAAAA,SAAG,UAAU,KAAsE,OAAnEwB,GAAsBxB,EAAAA,EAAAA,SAAG,aAAc,uBAAyB,IAAM2C,SAAUnB,EAAqBf,QAAS/D,EAAoBuD,sBAAoB,SAASE,0BAAwB,iB,SAAiB,WAIvR,SAACuB,MAAAA,CAAI3B,WAAWC,EAAAA,EAAAA,SAAG,WAAY,YAAa,OAAQ,cAAe,gBAAiB,OAAQ,SAAU,e,UACpG,SAAC4C,EAAAA,oBAAmB,CAAC3C,sBAAoB,sBAAsBE,0BAAwB,sBAEzF,SAACqC,EAAAA,QAAM,CAACjC,KAAK,SAASM,KAAK,mBAAmB4B,MAAM,QAAQC,KAAK,WAAW3C,UAAW,GAAmB0B,QAAhBzB,EAAAA,EAAAA,SAAG,UAAU,KAA0E,OAAvEyB,GAA0BzB,EAAAA,EAAAA,SAAG,aAAc,uBAAyB,IAAMS,QAASd,EAAoCgD,SAAUlB,EAAyBxB,sBAAoB,SAASE,0BAAwB,iB,SAAiB,gCAI3UlE,IAAwB,UAACyF,MAAAA,CAAI3B,WAAWC,EAAAA,EAAAA,SAAG,UAAW,YAAa,OAAQ,iB,UAAkB,+BAE1F,SAAC6C,SAAAA,C,SAAQ3H,KACT,SAAC4H,KAAAA,CAAAA,GAAK,mFAMlB,C,0ICrFA,C,wBAlBkB,O,IACW,S,mDAS7B,IAQA,EAR4B,Y,IAC1BnI,EAAAA,EAAAA,UAAAA,EAAAA,EACAC,UAAAA,OAAAA,IAAY,OACZC,EAAAA,EAAAA,UACAC,EAAAA,EAAAA,QACAC,EAAAA,EAAAA,qBACAC,EAAAA,EAAAA,Y,OAC8B,SAAC+H,EAAAA,QAAgB,CAACpI,UAAWA,EAAWC,UAAWA,EAAWC,UAAWA,EAAWC,QAASA,EAASC,qBAAsBA,EAAsBC,YAAaA,QAAAA,EAAe,GAAIiF,sBAAoB,mBAAmBC,wBAAsB,sBAAsBC,0BAAwB,a","sources":["webpack://webstaurantstore/./common/LoginModalContainer/CaptchaContainer.tsx","webpack://webstaurantstore/./common/LoginModalContainer/LoginModal.tsx","webpack://webstaurantstore/./common/LoginModalContainer/index.tsx"],"sourcesContent":["import React, { useRef, useState } from \"react\";\nimport ct from \"class-types.macro\";\nimport { ThunkDispatch } from \"StoreTypes\";\nimport Cookie from \"js-cookie\";\nimport { useReCaptcha } from \"@wss/re-captcha\";\nimport { logException } from \"@wss/error-tracking\";\nimport ModalReact from \"../ModalReact\";\nimport Icon from \"../Icons/Standard\";\nimport { updateUserAndChatFromOrigin } from \"../Store/actions/updateUserAndChatFromOrigin\";\nimport Store from \"../Store\";\nimport LoginModal from \"./LoginModal\";\nconst loginUrl = \"/myaccount:login/login/\";\nconst requestEmailLoginLinkUrl = \"/myaccount:login/requestemailloginlink/\";\nconst mergeCartUrl = \"/myaccount/mergecart?sessionGuidFromSessionCart=\";\nconst getDefaultErrorStates = () => ({\n hasLoginError: false,\n hasCaptchaError: false,\n hasLoginEmailLinkError: false,\n hasServerError: false\n});\ntype CaptchaContainerProps = {\n csrfToken: string;\n targetURL?: string;\n modalOpen: boolean;\n onClose(): void;\n loginSuccessCallback?: () => void;\n queryParams?: string;\n};\nconst CaptchaContainer = ({\n csrfToken,\n targetURL = \"\",\n modalOpen,\n onClose,\n loginSuccessCallback,\n queryParams\n}: CaptchaContainerProps) => {\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [errors, setErrors] = useState(getDefaultErrorStates());\n const [isAttemptingLogin, setIsAttemptingLogin] = useState(false);\n const [isRedirecting, setIsRedirecting] = useState(false);\n const [isEmailLoginLinkSent, setIsEmailLoginLinkSent] = useState(false);\n const [isRequestingEmailLoginLink, setIsRequestingEmailLoginLink] = useState(false);\n const loginButtonClicked = useRef(false);\n const emailLinkButtonClicked = useRef(false);\n const reCaptcha = useReCaptcha();\n const onLoginButtonClick = async (e: React.MouseEvent) => {\n e.preventDefault();\n loginButtonClicked.current = true;\n setIsAttemptingLogin(true);\n setErrors(getDefaultErrorStates());\n setIsRedirecting(false);\n return login();\n };\n const login = async () => {\n loginButtonClicked.current = false;\n const fetchParameters = await buildLoginParameters();\n const results = await sendRequest(loginUrl, fetchParameters);\n if (results.success) {\n handleLoginSucceeded(results.warnings.cartsNeedMerged);\n }\n setIsAttemptingLogin(false);\n setErrors(results.errors);\n setIsRedirecting(results.success);\n };\n const buildLoginParameters = async () => {\n const captchaToken = await reCaptcha.execute();\n if (captchaToken.isError) throw captchaToken.error;\n const requestBody = JSON.stringify({\n email,\n password,\n csrfToken,\n captchaToken: captchaToken.value\n });\n const fetchParameters: {\n method: string;\n headers: {\n Accept: string;\n \"Content-Type\": string;\n };\n body: string;\n credentials: \"include\" | \"omit\" | \"same-origin\" | undefined;\n } = {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: requestBody,\n credentials: \"include\"\n };\n return fetchParameters;\n };\n const sendRequest = async (url: string, parameters: RequestInit) => {\n const results = {\n success: false,\n errors: getDefaultErrorStates(),\n warnings: {\n cartsNeedMerged: false\n }\n };\n try {\n const response = await fetch(url, parameters);\n if (response.ok) {\n const data: {\n success: boolean;\n warnings: string[];\n errors: string[];\n } = await response.json();\n if (data.success) {\n results.success = true;\n results.warnings.cartsNeedMerged = data.warnings.includes(\"CartsNeedMerged\");\n } else {\n results.errors.hasLoginError = data.errors.includes(\"InvalidEmail\") || data.errors.includes(\"InvalidPassword\") || data.errors.includes(\"InvalidCsrf\") || data.errors.includes(\"InvalidCredentials\");\n results.errors.hasCaptchaError = data.errors.includes(\"InvalidCaptcha\");\n results.errors.hasLoginEmailLinkError = data.errors.includes(\"InvalidLoginEmailLinkCaptcha\") || data.errors.includes(\"InvalidLoginEmailLink\");\n }\n } else {\n results.errors.hasServerError = true;\n }\n } catch (error) {\n results.errors.hasServerError = true;\n }\n return results;\n };\n const handleLoginSucceeded = (cartsNeedMerged: boolean) => {\n const sessionGuid = Cookie.get(\"SESSION_ID\");\n if (cartsNeedMerged && sessionGuid) {\n window.location.href = `${mergeCartUrl + sessionGuid}${targetURL !== \"\" ? `&redirect=${targetURL}` : \"\"}${queryParams?.replace(\"?\", \"&\")}`;\n } else if (targetURL !== \"\") {\n window.location.href = targetURL + queryParams;\n } else if (loginSuccessCallback) {\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n (Store.dispatch as ThunkDispatch)(updateUserAndChatFromOrigin());\n loginSuccessCallback();\n } else if (queryParams) {\n window.location.href = window.location?.href.split(\"?\")[0] + queryParams;\n } else {\n window.location.reload();\n }\n };\n const buildRequestEmailLoginLinkParameters = async () => {\n const captchaToken = await reCaptcha.execute();\n if (captchaToken.isError) {\n logException(captchaToken.error);\n setErrors({\n ...errors,\n hasCaptchaError: true\n });\n throw captchaToken.error;\n }\n const requestBody = JSON.stringify({\n email,\n csrfToken,\n captchaToken: captchaToken.value\n });\n const fetchParameters: {\n method: string;\n headers: {\n Accept: string;\n \"Content-Type\": string;\n };\n body: string;\n credentials: \"include\" | \"omit\" | \"same-origin\" | undefined;\n } = {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n body: requestBody,\n credentials: \"include\"\n };\n return fetchParameters;\n };\n const requestEmailLoginLink = async () => {\n emailLinkButtonClicked.current = false;\n const fetchParameters = await buildRequestEmailLoginLinkParameters();\n const results = await sendRequest(requestEmailLoginLinkUrl, fetchParameters);\n setErrors(results.errors);\n setIsRequestingEmailLoginLink(false);\n setIsEmailLoginLinkSent(results.success);\n };\n const onRequestEmailLoginLinkButtonClick = async (e: React.MouseEvent) => {\n e.preventDefault();\n emailLinkButtonClicked.current = true;\n setErrors(getDefaultErrorStates());\n setIsRequestingEmailLoginLink(true);\n setIsEmailLoginLinkSent(false);\n return requestEmailLoginLink();\n };\n const onInputChanged = (e: React.ChangeEvent) => {\n switch (e.target.name) {\n case \"email\":\n setEmail(e.target.value);\n break;\n case \"password\":\n setPassword(e.target.value);\n break;\n default:\n break;\n }\n };\n return \n
\n

Login

\n \n
\n \n \n \n Create an Account\n \n \n
;\n};\nexport default CaptchaContainer;","import React from \"react\";\nimport ct from \"class-types.macro\";\nimport { RecaptchaDisclaimer } from \"@wss/re-captcha\";\nimport { inputBase, inputLabel, inputErrorMessage, inputBaseOptionalClasses } from \"../Form/inputStyles\";\nimport Button from \"../Buttons\";\nimport(/* webpackChunkName: \"formsStyles\" */\"../Form/styles.css\");\ntype LoginModalProps = {\n isAttemptingLogin: boolean;\n isRedirecting: boolean;\n isEmailBlank: boolean;\n isPasswordBlank: boolean;\n isRequestingEmailLoginLink: boolean;\n isEmailLoginLinkSent: boolean;\n onLoginButtonClick(e: React.MouseEvent): void;\n onRequestEmailLoginLinkButtonClick(e: React.MouseEvent): void;\n onInputChanged(e: React.ChangeEvent): void;\n errors: {\n hasLoginError: boolean;\n hasCaptchaError: boolean;\n hasLoginEmailLinkError: boolean;\n hasServerError: boolean;\n };\n email: string;\n};\nconst LoginModal = ({\n isAttemptingLogin,\n isRedirecting,\n isEmailBlank,\n isPasswordBlank,\n isRequestingEmailLoginLink,\n isEmailLoginLinkSent,\n onLoginButtonClick,\n onRequestEmailLoginLinkButtonClick,\n errors,\n onInputChanged,\n email\n}: LoginModalProps) => {\n const loginButtonDisabled = isAttemptingLogin || isRedirecting || isEmailBlank || isPasswordBlank;\n const emailLinkButtonDisabled = isRedirecting || isRequestingEmailLoginLink || isEmailBlank;\n return
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n {errors.hasLoginError &&
\n You entered incorrect login information, try again or \n reset your password.\n
}\n {errors.hasCaptchaError &&
\n You've entered the Captcha incorrectly. Please try again.\n
}\n {errors.hasLoginEmailLinkError &&
\n An error occurred during the request. Please try again.\n
}\n {errors.hasServerError &&
\n We were unable to validate your information. Please try again.\n
}\n
\n\n
\n \n\n
\n \n
\n \n
\n {isEmailLoginLinkSent &&
\n We've sent a login link to \n {email}\n
\n If you don't receive an email momentarily, please check your\n spam folder.\n
}\n
\n
;\n};\nexport default LoginModal;","import React from \"react\";\nimport CaptchaContainer from \"./CaptchaContainer\";\ntype LoginModalContainerProps = {\n csrfToken: string;\n targetURL?: string;\n modalOpen: boolean;\n onClose(): void;\n loginSuccessCallback?: () => void;\n queryParams?: string;\n};\nconst LoginModalContainer = ({\n csrfToken,\n targetURL = \"\",\n modalOpen,\n onClose,\n loginSuccessCallback,\n queryParams\n}: LoginModalContainerProps) => ;\nexport default LoginModalContainer;"],"names":["csrfToken","targetURL","modalOpen","onClose","loginSuccessCallback","queryParams","useState","email","setEmail","password","setPassword","hasLoginError","hasCaptchaError","hasLoginEmailLinkError","hasServerError","getDefaultErrorStates","errors","setErrors","isAttemptingLogin","setIsAttemptingLogin","isRedirecting","setIsRedirecting","isEmailLoginLinkSent","setIsEmailLoginLinkSent","isRequestingEmailLoginLink","setIsRequestingEmailLoginLink","loginButtonClicked","useRef","emailLinkButtonClicked","reCaptcha","useReCaptcha","onLoginButtonClick","e","preventDefault","current","login","fetchParameters","results","buildLoginParameters","sendRequest","success","handleLoginSucceeded","warnings","cartsNeedMerged","captchaToken","requestBody","execute","isError","error","JSON","stringify","value","method","headers","Accept","body","credentials","url","parameters","response","data","fetch","ok","json","includes","sessionGuid","Cookie","get","window","location","href","replace","Store","dispatch","updateUserAndChatFromOrigin","split","reload","buildRequestEmailLoginLinkParameters","logException","requestEmailLoginLink","onRequestEmailLoginLinkButtonClick","ModalReact","isOpen","onRequestClose","className","ct","data-sentry-element","data-sentry-component","data-sentry-source-file","header","h3","button","type","aria-label","onClick","style","transform","Icon","name","width","height","LoginModal","isEmailBlank","length","isPasswordBlank","onInputChanged","target","span","a","loginButtonDisabled","emailLinkButtonDisabled","div","form","action","label","inputLabel","htmlFor","input","maxLength","required","id","inputBaseOptionalClasses","inputBase","onChange","inputErrorMessage","Button","color","size","disabled","RecaptchaDisclaimer","strong","br","CaptchaContainer"],"sourceRoot":""}