import {useAuth} from "../../hooks/authenticationHook"; import {useMetadata} from "../../hooks/metadataHook"; import {Navigate} from "react-router-dom"; import React, {useEffect, useState} from "react"; import {staticSite} from "../../service/backendConfiguration"; const RedirectPlaceholder = () => { const [redirectStart] = useState(Date.now()) const [dateDiff, setDateDiff] = useState(0) useEffect(() => { const interval = setInterval(() => { if (dateDiff <= 50) { setDateDiff(Date.now() - redirectStart); } else { clearInterval(interval); } }, 500); return () => clearInterval(interval); }, [redirectStart, dateDiff]) if (dateDiff > 50) { return <>

Redirecting..

This is taking longer than expected.

Make sure the Plan webserver is enabled.
(This page can show up if the Plan webserver goes offline.)

If you are trying to set up a development environment, change package.json "proxy" to address of your Plan webserver.

} else { return <>

Redirecting..

} } const MainPageRedirect = () => { const {authLoaded, authRequired, loggedIn, user} = useAuth(); const {isProxy, serverName, serverUUID} = useMetadata(); if (staticSite) { const urlParams = new URLSearchParams(window.location.search); const redirect = urlParams.get('redirect'); if (redirect) { return () } } if (!authLoaded || !serverName || !serverUUID) { return } const redirectBasedOnPermissions = () => { if (isProxy && user.permissions.includes('page.network')) { return () } else if (user.permissions.includes('page.server')) { return () } else if (user.permissions.includes('page.player.other')) { return () } else if (user.permissions.includes('page.player.self')) { return () } }; if (authRequired && !loggedIn) { if (!window.location.pathname.startsWith("/login")) { return () } else { return () } } else if (authRequired && loggedIn) { return redirectBasedOnPermissions(); } else { return () } } export default MainPageRedirect