import React, { FC, PropsWithChildren, useEffect } from 'react' import { useRouter } from 'next/router' import { useAuth0, withAuthenticationRequired } from '@auth0/auth0-react' import { hasAuth0PathCredentials } from '../../utils/auth0/auth0Helpers' import Error from 'next/error' import { LinearProgress } from '@mui/material' function PageContainer({ children }: PropsWithChildren) { const { asPath, replace, locale, defaultLocale, isReady } = useRouter() const { error, isLoading, user } = useAuth0() useEffect(() => { if ( user && !hasAuth0PathCredentials(asPath, user, { locale, defaultLocale }) ) { replace('/') } }, [asPath, user, replace, locale, defaultLocale]) if (error) { return } if (isLoading || !isReady) { return (
) } return <>{children} } const Auth0PageContainer: FC> = withAuthenticationRequired(PageContainer) export default Auth0PageContainer