fix: leader board gets duplicated when switching levels while previous is still loading

This commit is contained in:
ayo 2026-06-22 21:50:08 +02:00
parent 832afc1128
commit d40089b630

View file

@ -13,20 +13,23 @@ const version = import.meta.env.MODE === 'development'
const initializeGameBoard = async (level) => { const initializeGameBoard = async (level) => {
const prevousLeaderBoard = document.getElementById('leaderboard') const prevousLeaderBoard = document.getElementById('leaderboard')
const prevousLoadingWrapper = document.getElementById('loading-wrapper')
prevousLoadingWrapper?.remove()
const loadingWrapper = document.createElement('div') const loadingWrapper = document.createElement('div')
loadingWrapper.id = 'loading-wrapper' loadingWrapper.id = 'loading-wrapper'
loadingService.addLoading(loadingWrapper) loadingService.addLoading(loadingWrapper)
const appElement = document.getElementById('app') const appElement = document.getElementById('app')
if (prevousLeaderBoard){ if (prevousLeaderBoard){
const parent = prevousLeaderBoard.parentNode const parent = prevousLeaderBoard.parentNode
parent.replaceChild(loadingWrapper, prevousLeaderBoard) parent.replaceChild(loadingWrapper, prevousLeaderBoard)
}else{ }else{
appElement.append(loadingWrapper) appElement.append(loadingWrapper)
} }
const leaderBoardWrapper = await leaderBoardService.update(level.id, `Best Times (${level.name})`) const leaderBoardWrapper = await leaderBoardService.update(level.id, `Best Times (${level.name})`)
leaderBoardWrapper.id = 'leaderboard' leaderBoardWrapper.id = 'leaderboard'
appElement.replaceChild(leaderBoardWrapper, loadingWrapper) appElement.replaceChild(leaderBoardWrapper, loadingWrapper)
} }