{"version":3,"file":"Login-sgrl1Xe1.js","sources":["../../../app/javascript/entrypoints/Login/Login.jsx"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport { signInWithEmailAndPassword, sendPasswordResetEmail, signInWithPopup, GoogleAuthProvider } from \"firebase/auth\";\nimport {\n Box,\n Container,\n Typography,\n TextField,\n Button,\n Paper,\n Grid,\n Stack,\n Divider,\n} from \"@mui/material\";\nimport { useNavigate } from \"react-router-dom\";\nimport { colors } from \"../lib/theme\";\nimport { auth } from \"../../shared/firebase\";\nimport { useAuth } from \"../../shared/useAuth\";\nimport PhoneIphoneIcon from \"@mui/icons-material/PhoneIphone\";\nimport MemoryIcon from \"@mui/icons-material/Memory\";\nimport { Helmet } from \"react-helmet\";\nimport ContainerBox from \"../../shared/ContainerBox\";\nimport AlertDialog from \"../../shared/AlertDialog\";\nimport { Link } from \"react-router-dom\";\nimport GoogleIcon from '@mui/icons-material/Google';\n\nconst GetTheApp = () => (\n \n \n \n \n \n \n Get the iOS app!\n \n \n The app is available now!\n \n }\n href=\"https://apps.apple.com/us/app/golden-record/id6501951254\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n sx={{\n bgcolor: \"#8B6B00\",\n color: colors.white,\n fontWeight: \"bold\",\n textTransform: \"none\",\n fontSize: \"1.1rem\",\n padding: \"12px 24px\",\n letterSpacing: \"1px\",\n boxShadow: \"0 4px 6px rgba(0, 0, 0, 0.1)\",\n \"&:hover\": {\n bgcolor: \"#6B5200\",\n color: colors.white,\n boxShadow: \"0 6px 8px rgba(0, 0, 0, 0.15)\",\n },\n }}\n >\n Install the app\n \n \n Start preserving your precious memories today!\n \n \n \n \n \n);\n\nconst Login = () => {\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [error, setError] = useState(null);\n const [fromQuestionnaire, setFromQuestionnaire] = useState(false);\n const navigate = useNavigate();\n const [openDialog, setOpenDialog] = useState(false);\n const [dialogMessage, setDialogMessage] = useState(\"\");\n const [redirectTo, setRedirectTo] = useState(null);\n\n const { user } = useAuth();\n\n useEffect(() => {\n if (user) {\n navigate(\"/dashboard\");\n }\n }, [user, navigate]);\n\n useEffect(() => {\n const from = new URLSearchParams(window.location.search).get(\"from\");\n if (from === \"questionnaire\") {\n setFromQuestionnaire(true);\n\n // Redirect for null questionnaire data\n const questionnaireData = JSON.parse(\n localStorage.getItem(\"questionnaireData\")\n );\n\n if (!questionnaireData) {\n navigate(\"/questionnaire\");\n }\n }\n }, [navigate]);\n\n useEffect(() => {\n const redirect = new URLSearchParams(window.location.search).get(\"redirect_to\");\n if (redirect) {\n setRedirectTo(redirect);\n }\n }, [navigate]);\n\n const handleLogin = async (e) => {\n e.preventDefault();\n try {\n const lowercaseEmail = email.toLowerCase();\n const userCredential = await signInWithEmailAndPassword(\n auth,\n lowercaseEmail,\n password\n );\n localStorage.setItem(\"user\", JSON.stringify({...userCredential.user, email: lowercaseEmail}));\n const redirect_to = new URLSearchParams(window.location.search).get(\"redirect_to\");\n window.location.href = redirect_to || (fromQuestionnaire ? \"/checkout\" : \"/dashboard\");\n } catch (err) {\n setError(err.message);\n }\n };\n\n const handleKeyPress = (event) => {\n if (event.key === 'Enter') {\n handleLogin(event);\n }\n };\n\n const handleForgotPassword = async () => {\n if (!email) {\n setError(\"Please enter your email address.\");\n return;\n }\n try {\n await sendPasswordResetEmail(auth, email);\n setError(null);\n setDialogMessage(\"Password reset email sent. Please check your inbox.\");\n setOpenDialog(true);\n } catch (err) {\n setError(err.message);\n }\n };\n\n const handleCloseDialog = () => {\n setOpenDialog(false);\n };\n\n const handleGoogleLogin = async () => {\n try {\n const provider = new GoogleAuthProvider();\n const result = await signInWithPopup(auth, provider);\n const user = result.user;\n localStorage.setItem(\"user\", JSON.stringify({...user, email: user.email.toLowerCase()}));\n window.location.href = redirectTo || (fromQuestionnaire ? \"/checkout\" : \"/dashboard\");\n } catch (err) {\n setError(err.message);\n }\n };\n\n return (\n \n \n Login - Golden Record\n \n \n \n Let's get you logged in!\n \n \n Enter your email and password to login to your account.\n {\" \"}\n {!fromQuestionnaire && (\n \n Don't have an account? Register here.\n \n )}\n \n\n \n \n \n \n \n \n Log in\n \n \n OR\n }\n onClick={handleGoogleLogin}\n sx={{ mt: 2 }}\n >\n Sign in with Google\n \n \n \n {fromQuestionnaire ? (\n \n \n \n Create an account\n \n \n You will be able to create your account in the next step.\n Simply click the button below to continue.\n \n \n \n \n ) : (\n \n \n \n )}\n \n \n \n \n \n );\n};\n\nexport default Login;\n"],"names":["GetTheApp","React","Container","Box","Paper","colors","Stack","PhoneIphoneIcon","Typography","Button","MemoryIcon","Login","email","setEmail","useState","password","setPassword","error","setError","fromQuestionnaire","setFromQuestionnaire","navigate","useNavigate","openDialog","setOpenDialog","dialogMessage","setDialogMessage","redirectTo","setRedirectTo","user","useAuth","useEffect","redirect","handleLogin","e","lowercaseEmail","userCredential","signInWithEmailAndPassword","auth","redirect_to","err","handleKeyPress","event","handleForgotPassword","sendPasswordResetEmail","handleCloseDialog","handleGoogleLogin","provider","GoogleAuthProvider","signInWithPopup","Helmet","Link","ContainerBox","Grid","TextField","Divider","GoogleIcon","AlertDialog"],"mappings":"6iDAyBA,MAAMA,EAAY,IAChBC,EAAA,cAACC,GAAU,SAAS,IAAA,kBACjBC,EACC,KAAAF,EAAA,cAACG,EAAA,CACC,UAAW,EACX,GAAI,CACF,QAAS,YACT,WAAY,0BAA0BC,EAAO,IAAI,SAASA,EAAO,KAAK,QACtE,aAAc,EACd,UAAW,uCACb,CAAA,kBAECC,EAAM,CAAA,QAAS,EAAG,WAAW,UAC3BL,EAAA,cAAAM,EAAA,CAAgB,GAAI,CAAE,SAAU,GAAI,MAAOF,EAAO,MAAQ,EAC3DJ,EAAA,cAACO,EAAA,CACC,QAAQ,KACR,UAAU,KACV,aAAY,GACZ,MAAM,SACN,GAAI,CAAE,MAAOH,EAAO,KAAM,WAAY,MAAO,CAAA,EAC9C,kBAGD,EAAAJ,EAAA,cAACO,EAAA,CACC,QAAQ,KACR,MAAM,SACN,GAAI,CAAE,MAAOH,EAAO,IAAK,EACzB,MAAO,CAAE,UAAW,QAAS,CAAA,EAC9B,2BAGD,EAAAJ,EAAA,cAACQ,EAAA,CACC,QAAQ,YACR,KAAK,QACL,0BAAYC,EAAW,IAAA,EACvB,KAAK,2DACL,OAAO,SACP,IAAI,sBACJ,GAAI,CACF,QAAS,UACT,MAAOL,EAAO,MACd,WAAY,OACZ,cAAe,OACf,SAAU,SACV,QAAS,YACT,cAAe,MACf,UAAW,+BACX,UAAW,CACT,QAAS,UACT,MAAOA,EAAO,MACd,UAAW,+BACb,CACF,CAAA,EACD,iBAGD,EAAAJ,EAAA,cAACO,EAAA,CACC,QAAQ,QACR,MAAM,SACN,GAAI,CAAE,MAAOH,EAAO,KAAM,GAAI,CAAE,CAAA,EACjC,gDAAA,CAGH,CACF,CACF,CACF,EAGIM,GAAQ,IAAM,CAClB,KAAM,CAACC,EAAOC,CAAQ,EAAIC,WAAS,EAAE,EAC/B,CAACC,EAAUC,CAAW,EAAIF,WAAS,EAAE,EACrC,CAACG,EAAOC,CAAQ,EAAIJ,WAAS,IAAI,EACjC,CAACK,EAAmBC,CAAoB,EAAIN,WAAS,EAAK,EAC1DO,EAAWC,IACX,CAACC,EAAYC,CAAa,EAAIV,WAAS,EAAK,EAC5C,CAACW,EAAeC,CAAgB,EAAIZ,WAAS,EAAE,EAC/C,CAACa,EAAYC,CAAa,EAAId,WAAS,IAAI,EAE3C,CAAE,KAAAe,GAASC,IAEjBC,EAAAA,UAAU,IAAM,CACVF,GACFR,EAAS,YAAY,CACvB,EACC,CAACQ,EAAMR,CAAQ,CAAC,EAEnBU,EAAAA,UAAU,IAAM,CACD,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAAE,IAAI,MAAM,IACtD,kBACXX,EAAqB,EAAI,EAGC,KAAK,MAC7B,aAAa,QAAQ,mBAAmB,CAAA,GAIxCC,EAAS,gBAAgB,EAE7B,EACC,CAACA,CAAQ,CAAC,EAEbU,EAAAA,UAAU,IAAM,CACR,MAAAC,EAAW,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAAE,IAAI,aAAa,EAC1EA,GACFJ,EAAcI,CAAQ,CACxB,EACC,CAACX,CAAQ,CAAC,EAEP,MAAAY,EAAc,MAAOC,GAAM,CAC/BA,EAAE,eAAe,EACb,GAAA,CACI,MAAAC,EAAiBvB,EAAM,cACvBwB,EAAiB,MAAMC,EAC3BC,EACAH,EACApB,CAAA,EAEW,aAAA,QAAQ,OAAQ,KAAK,UAAU,CAAC,GAAGqB,EAAe,KAAM,MAAOD,CAAc,CAAC,CAAC,EACtF,MAAAI,EAAc,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAAE,IAAI,aAAa,EACjF,OAAO,SAAS,KAAOA,IAAgBpB,EAAoB,YAAc,oBAClEqB,EAAK,CACZtB,EAASsB,EAAI,OAAO,CACtB,CAAA,EAGIC,EAAkBC,GAAU,CAC5BA,EAAM,MAAQ,SAChBT,EAAYS,CAAK,CACnB,EAGIC,EAAuB,SAAY,CACvC,GAAI,CAAC/B,EAAO,CACVM,EAAS,kCAAkC,EAC3C,MACF,CACI,GAAA,CACI,MAAA0B,EAAuBN,EAAM1B,CAAK,EACxCM,EAAS,IAAI,EACbQ,EAAiB,qDAAqD,EACtEF,EAAc,EAAI,QACXgB,EAAK,CACZtB,EAASsB,EAAI,OAAO,CACtB,CAAA,EAGIK,EAAoB,IAAM,CAC9BrB,EAAc,EAAK,CAAA,EAGfsB,EAAoB,SAAY,CAChC,GAAA,CACI,MAAAC,EAAW,IAAIC,EAEfnB,GADS,MAAMoB,EAAgBX,EAAMS,CAAQ,GAC/B,KACpB,aAAa,QAAQ,OAAQ,KAAK,UAAU,CAAC,GAAGlB,EAAM,MAAOA,EAAK,MAAM,YAAY,CAAA,CAAE,CAAC,EACvF,OAAO,SAAS,KAAOF,IAAeR,EAAoB,YAAc,oBACjEqB,EAAK,CACZtB,EAASsB,EAAI,OAAO,CACtB,CAAA,EAGF,OACGvC,EAAA,cAAAE,EAAA,KACEF,EAAA,cAAAiD,EAAA,KACEjD,EAAA,cAAA,QAAA,KAAM,uBAAqB,EAC3BA,EAAA,cAAA,OAAA,CAAK,KAAK,cAAc,QAAQ,sCAAA,CAAuC,CAC1E,EACCA,EAAA,cAAAO,EAAA,CAAW,QAAQ,KAAK,GAAI,CAAE,MAAOH,EAAO,KAAM,GAAI,CAAE,GAAG,0BAE5D,EACAJ,EAAA,cAACO,EAAA,CACC,QAAQ,QACR,GAAI,CAAE,MAAOH,EAAO,MAAO,GAAI,EAAG,SAAU,QAAS,CAAA,EACtD,0DAEE,IACA,CAACc,GACAlB,EAAA,cAACkD,EAAA,CACC,GAAIxB,EAAa,yBAAyB,mBAAmBA,CAAU,CAAC,GAAK,YAC7E,MAAO,CAAE,MAAOtB,EAAO,IAAK,CAAA,EAC7B,uCAED,GAIHJ,EAAA,cAAAmD,EAAA,KACEnD,EAAA,cAAAC,EAAA,qBACEmD,EAAK,CAAA,UAAS,GAAC,QAAS,GACtBpD,EAAA,cAAAoD,EAAA,CAAK,KAAI,GAAC,GAAI,GAAI,GAAI,CAAA,EACpBpD,EAAA,cAAAG,EAAA,CAAM,UAAW,EAAG,GAAI,CAAE,EAAG,CAAA,GAC3BH,EAAA,cAAAO,EAAA,CAAW,QAAQ,KAAK,aAAY,IAAC,QAEtC,EACCP,EAAA,cAAA,OAAA,CAAK,SAAUgC,CACd,EAAAhC,EAAA,cAACqD,EAAA,CACC,UAAS,GACT,MAAM,QACN,QAAQ,WACR,OAAO,SACP,MAAO1C,EACP,SAAWsB,GAAMrB,EAASqB,EAAE,OAAO,MAAM,aAAa,EACtD,WAAYO,EACZ,SAAQ,EAAA,CAEV,EAAAxC,EAAA,cAACqD,EAAA,CACC,UAAS,GACT,MAAM,WACN,KAAK,WACL,QAAQ,WACR,OAAO,SACP,MAAOvC,EACP,SAAWmB,GAAMlB,EAAYkB,EAAE,OAAO,KAAK,EAC3C,WAAYO,EACZ,SAAQ,EAAA,CAAA,EAETxB,GACEhB,EAAA,cAAAO,EAAA,CAAW,MAAM,QAAQ,GAAI,CAAE,GAAI,EACjC,EAAAS,CACH,EAEFhB,EAAA,cAACE,GAAI,GAAI,CACP,QAAS,OACT,cAAe,CAAE,GAAI,SAAU,GAAI,KAAM,EACzC,eAAgB,CAAE,GAAI,SAAU,GAAI,eAAgB,EACpD,WAAY,SACZ,GAAI,EACJ,IAAK,CAAA,CAEL,EAAAF,EAAA,cAACQ,EAAA,CACC,KAAK,SACL,QAAQ,YACR,MAAM,UACN,UAAS,GACT,GAAI,CAAE,SAAU,CAAE,GAAI,MAAQ,CAAA,EAC/B,QAGD,EAAAR,EAAA,cAACQ,EAAA,CACC,QAAQ,OACR,MAAM,UACN,QAASkC,EACT,UAAS,GACT,GAAI,CAAE,SAAU,CAAE,GAAI,MAAQ,CAAA,EAC/B,kBAGH,CAAA,CACF,EACC1C,EAAA,cAAAsD,EAAA,CAAQ,GAAI,CAAE,GAAI,CAAA,CAAK,EAAA,IAAE,EAC1BtD,EAAA,cAACQ,EAAA,CACC,UAAS,GACT,QAAQ,WACR,0BAAY+C,EAAW,IAAA,EACvB,QAASV,EACT,GAAI,CAAE,GAAI,CAAE,CAAA,EACb,qBAGH,CAAA,CACF,EACC3B,EACClB,EAAA,cAACoD,EAAK,CAAA,KAAI,GAAC,GAAI,GAAI,GAAI,CACrB,EAAApD,EAAA,cAACG,EAAA,CACC,UAAW,EACX,GAAI,CACF,EAAG,EACH,OAAQ,OACR,QAAS,OACT,cAAe,QACjB,CAAA,kBAECI,EAAW,CAAA,QAAQ,KAAK,aAAY,IAAC,mBAEtC,kBACCA,EAAW,CAAA,QAAQ,QAAQ,UAAS,IAAC,sGAGtC,EACAP,EAAA,cAACQ,EAAA,CACC,QAAQ,aACR,KAAK,QACL,QAAS,IAAMY,EAAS,WAAW,CAAA,EACpC,UAED,CAAA,CAEJ,EAEApB,EAAA,cAACoD,EAAK,CAAA,KAAI,GAAC,GAAI,GAAI,GAAI,mBACpBrD,EAAU,IAAA,CACb,CAEJ,CACF,CACF,EACAC,EAAA,cAACwD,EAAA,CACC,KAAMlC,EACN,MAAM,iBACN,QAASE,EACT,QAASoB,EACT,OAAO,OAAA,CAAA,CAEX,CAEJ"}