diff --git a/jam-ui/src/components/auth/JKRegistrationForm.js b/jam-ui/src/components/auth/JKRegistrationForm.js index 1a85c1272..ce91e92ee 100644 --- a/jam-ui/src/components/auth/JKRegistrationForm.js +++ b/jam-ui/src/components/auth/JKRegistrationForm.js @@ -18,7 +18,7 @@ const JKRegistrationForm = ({ hasLabel, jamTrack, jamTrackArtistName }) => { const [password, setPassword] = useState(''); const [isDisabled, setIsDisabled] = useState(true); const [showPassword, setShowPassword] = useState(false); - + const { capchaToken, recaptchaRef, handleRecaptcha } = useRecaptcha(); const { addToCart } = useJamTrackShopping(); @@ -52,14 +52,14 @@ const JKRegistrationForm = ({ hasLabel, jamTrack, jamTrackArtistName }) => { toast.error(`Registration failed. Please try again.`); setIsDisabled(false); } - + }; useEffect(() => { const addJamTrackToCart = async () => { - try{ + try { await addToCart(jamTrack); - }catch(error){ + } catch (error) { console.error(error); } } @@ -68,15 +68,15 @@ const JKRegistrationForm = ({ hasLabel, jamTrack, jamTrackArtistName }) => { console.log('jamTrack', jamTrack); console.log('jamTrackArtistName', jamTrackArtistName); if (currentUser) { - if(jamTrack){ + if (jamTrack) { console.log('adding jamtrack to cart'); addJamTrackToCart(); - }else if(jamTrackArtistName){ + } else if (jamTrackArtistName) { console.log('redirecting to jamtracks artist landing'); history.push(`/jamtracks?artist=${jamTrackArtistName}`); - }else{ - console.log('redirecting to downloads'); - history.push('/public/downloads'); + } else { + console.log('redirecting to profile'); + history.push('/profile'); } } }, [currentUser, jamTrack, jamTrackArtistName]); @@ -136,9 +136,9 @@ const JKRegistrationForm = ({ hasLabel, jamTrack, jamTrackArtistName }) => { {process.env.REACT_APP_RECAPTCHA_ENABLED === 'true' && ( - @@ -146,7 +146,7 @@ const JKRegistrationForm = ({ hasLabel, jamTrack, jamTrackArtistName }) => { diff --git a/jam-ui/src/components/auth/basic/Login.js b/jam-ui/src/components/auth/basic/Login.js index c813790b4..1f21f14c8 100644 --- a/jam-ui/src/components/auth/basic/Login.js +++ b/jam-ui/src/components/auth/basic/Login.js @@ -1,11 +1,27 @@ -import React, { Fragment } from 'react'; +import React, { Fragment, useEffect } from 'react'; import { Col, Row } from 'reactstrap'; -import { Link } from 'react-router-dom'; +import { Link, useHistory, useLocation } from 'react-router-dom'; import LoginForm from '../LoginForm'; import { useTranslation } from 'react-i18next'; +import { useAuth } from '../../../context/UserAuth'; const Login = () => { const { t } = useTranslation('auth'); + const { isAuthenticated, isLoading } = useAuth(); + const history = useHistory(); + const location = useLocation(); + + useEffect(() => { + if (!isLoading && isAuthenticated) { + const { from } = location.state || { from: { pathname: '/profile' } }; + const finalDestination = from.pathname === '/' ? { pathname: '/profile' } : from; + history.replace(finalDestination); + } + }, [isAuthenticated, isLoading, history, location]); + + if (isLoading || isAuthenticated) { + return null; // Or a loading spinner + } return (