Make application loader only trigger once

Signed-off-by: Tilman Vatteroth <tilman.vatteroth@tu-dortmund.de>
This commit is contained in:
Tilman Vatteroth 2020-05-30 22:31:12 +02:00 committed by mrdrogdrog
parent dbc592e6d7
commit 7ef1b086bd

View file

@ -10,6 +10,7 @@ export const ApplicationLoader: React.FC = ({ children }) => {
const [doneTasks, setDoneTasks] = useState<number>(0)
const [initTasks, setInitTasks] = useState<InitTask[]>([])
const { pathname } = useLocation()
const [applicationLoading, setApplicationLoading] = useState<boolean>(false)
const runTask = async (task: Promise<void>): Promise<void> => {
await task
@ -19,10 +20,14 @@ export const ApplicationLoader: React.FC = ({ children }) => {
}
useEffect(() => {
if (applicationLoading) {
return
}
setApplicationLoading(true)
const baseUrl:string = window.location.pathname.replace(pathname, '') + '/'
console.debug('Base URL is', baseUrl)
setInitTasks(setUp(baseUrl))
}, [pathname])
}, [applicationLoading, pathname])
useEffect(() => {
for (const task of initTasks) {