// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 import React, { useEffect, useState } from 'react'; import { useLocation } from 'react-router-dom'; import { Logger } from 'aws-amplify'; import { AuthState } from '@aws-amplify/ui-components'; import UnauthRoutes from './UnauthRoutes'; import useAppContext from '../contexts/app'; import AuthRoutes from './AuthRoutes'; import { REDIRECT_URL_PARAM } from './constants'; const logger = new Logger('Routes'); const Routes = () => { const { authState, user, currentCredentials } = useAppContext(); const location = useLocation(); const [urlSearchParams, setUrlSearchParams] = useState(new URLSearchParams({})); const [redirectParam, setRedirectParam] = useState(''); useEffect(() => { if (!location?.search) { return; } const searchParams = new URLSearchParams(location.search); logger.debug('searchParams:', searchParams); setUrlSearchParams(searchParams); }, [location]); useEffect(() => { const redirect = urlSearchParams?.get(REDIRECT_URL_PARAM); if (!redirect) { return; } logger.debug('redirect:', redirect); setRedirectParam(redirect); }, [urlSearchParams]); return !(authState === AuthState.SignedIn && user && currentCredentials) ? ( ) : ( ); }; export default Routes;