{"version":3,"file":"VerifyEmail-ClxXtOLw.js","sources":["../../../app/javascript/entrypoints/VerifyEmail/VerifyEmail.jsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport { getAuth, applyActionCode, sendEmailVerification } from 'firebase/auth';\nimport { Box, Typography, Button, CircularProgress } from '@mui/material';\nimport { colors } from '../lib/theme';\nimport { Link } from 'react-router-dom';\nimport ContainerBox from '../../shared/ContainerBox';\nimport AlertDialog from '../../shared/AlertDialog';\n\nconst VerifyEmail = () => {\n const [verificationStatus, setVerificationStatus] = useState('verifying');\n const [errorMessage, setErrorMessage] = useState('');\n const location = useLocation();\n const navigate = useNavigate();\n const [alertOpen, setAlertOpen] = useState(false);\n const [alertTitle, setAlertTitle] = useState('');\n const [alertContent, setAlertContent] = useState('');\n const [resendDisabled, setResendDisabled] = useState(true);\n\n useEffect(() => {\n const verifyEmail = async () => {\n const auth = getAuth();\n const actionCode = new URLSearchParams(location.search).get('oobCode');\n\n if (!actionCode) {\n setVerificationStatus('manual');\n return;\n }\n\n try {\n await applyActionCode(auth, actionCode);\n setVerificationStatus('success');\n } catch (error) {\n console.error('Error verifying email:', error);\n setVerificationStatus('error');\n setErrorMessage(error.message || 'An unknown error occurred.');\n }\n };\n\n verifyEmail();\n\n // Add a timer to enable the resend button after 20 seconds\n const timer = setTimeout(() => {\n setResendDisabled(false);\n }, 5000);\n\n // Clean up the timer when the component unmounts\n return () => clearTimeout(timer);\n }, [location]);\n\n const resendVerificationEmail = async () => {\n const auth = getAuth();\n const user = auth.currentUser;\n if (user) {\n try {\n await sendEmailVerification(user);\n setAlertTitle('Email Sent');\n setAlertContent('A new verification email has been sent. Please check your inbox.');\n setAlertOpen(true);\n } catch (error) {\n console.error('Error sending verification email:', error);\n setAlertTitle('Error');\n setAlertContent('Failed to send verification email. Please try again later.');\n setAlertOpen(true);\n }\n } else {\n setAlertTitle('No User Signed In');\n setAlertContent('No user is currently signed in. Please sign in and try again.');\n setAlertOpen(true);\n }\n };\n\n const handleAlertClose = () => {\n setAlertOpen(false);\n };\n\n return (\n \n \n Email Verification\n \n {verificationStatus === 'verifying' && (\n \n )}\n {verificationStatus === 'success' && (\n \n \n Your email has been successfully verified.\n \n navigate('/dashboard')}\n >\n Go to Dashboard\n \n \n )}\n {verificationStatus === 'error' && (\n \n \n There was an error verifying your email.\n \n \n Error details: {errorMessage}\n \n \n {resendDisabled ? 'Resend Available in 5 seconds' : 'Resend Verification Email'}\n \n navigate('/dashboard')}\n >\n Go to Dashboard\n \n \n )}\n {verificationStatus === 'manual' && (\n \n \n Please check your email for a verification link.\n \n \n If you haven't received the email, you can request a new one.\n \n \n {resendDisabled ? 'Resend Available in 5 seconds' : 'Resend Verification Email'}\n \n \n )}\n \n \n );\n};\n\nexport default VerifyEmail;\n"],"names":["VerifyEmail","verificationStatus","setVerificationStatus","useState","errorMessage","setErrorMessage","location","useLocation","navigate","useNavigate","alertOpen","setAlertOpen","alertTitle","setAlertTitle","alertContent","setAlertContent","resendDisabled","setResendDisabled","useEffect","auth","getAuth","actionCode","applyActionCode","error","timer","resendVerificationEmail","user","sendEmailVerification","handleAlertClose","ContainerBox","React","Typography","CircularProgress","colors","Box","Button","AlertDialog"],"mappings":"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"}