This commit is contained in:
Heidi
2026-05-27 14:54:02 +01:00
parent 69fc002961
commit 8596674de1
+17 -3
View File
@@ -1013,17 +1013,31 @@ function AppContent() {
if (songOfDay.status === 'ready' || songOfDay.status === 'loading') return
const controller = new AbortController()
let timedOut = false
const timeout = window.setTimeout(() => {
timedOut = true
controller.abort()
}, 12000)
setSongOfDay({ status: 'loading', data: null, error: null })
fetchJson(apiEndpoints.songOfDay, controller.signal)
.then((data) => setSongOfDay({ status: 'ready', data, error: null }))
.catch((error) => {
if (!controller.signal.aborted) {
setSongOfDay({ status: 'error', data: null, error: error.message })
if (!controller.signal.aborted || timedOut) {
setSongOfDay({
status: 'error',
data: null,
error: timedOut ? 'Song lookup timed out' : error.message,
})
}
})
.finally(() => window.clearTimeout(timeout))
return () => controller.abort()
return () => {
window.clearTimeout(timeout)
controller.abort()
}
}, [route.page, songOfDay.status])
useEffect(() => {