ai generated solutions to our ai generated problems
This commit is contained in:
+50
-1
@@ -2,4 +2,53 @@ import { createRoot } from 'react-dom/client'
|
||||
import './styles.css'
|
||||
import App from './App.jsx'
|
||||
|
||||
createRoot(document.getElementById('root')).render(<App />)
|
||||
const root = document.getElementById('root')
|
||||
|
||||
async function fetchBootJson(path) {
|
||||
const response = await fetch(path, { headers: { Accept: 'application/json' } })
|
||||
if (!response.ok) throw new Error(`Boot request failed with ${response.status}`)
|
||||
return response.json()
|
||||
}
|
||||
|
||||
async function preloadBootData() {
|
||||
if (!root?.dataset.tssFallback) return
|
||||
|
||||
const pathname = window.location.pathname
|
||||
const timeout = new Promise((_, reject) => {
|
||||
window.setTimeout(() => reject(new Error('Boot preload timed out')), 1500)
|
||||
})
|
||||
|
||||
const load = async () => {
|
||||
if (pathname === '/') {
|
||||
const [homeTeams, live] = await Promise.all([
|
||||
fetchBootJson('/data/home-teams.json'),
|
||||
fetchBootJson('/data/recent-games.json'),
|
||||
])
|
||||
return { homeTeams, live }
|
||||
}
|
||||
|
||||
if (pathname === '/teams') {
|
||||
return { leaderboard: await fetchBootJson('/data/leaderboard-teams.json') }
|
||||
}
|
||||
|
||||
if (pathname === '/players') {
|
||||
return { playerLeaderboard: await fetchBootJson('/data/leaderboard-players.json') }
|
||||
}
|
||||
|
||||
if (pathname === '/battle-logs' || pathname === '/live') {
|
||||
const [live, leaderboard] = await Promise.all([
|
||||
fetchBootJson('/data/recent-games.json'),
|
||||
fetchBootJson('/data/leaderboard-teams.json'),
|
||||
])
|
||||
return { live, leaderboard }
|
||||
}
|
||||
|
||||
return null
|
||||
}
|
||||
|
||||
window.__TSS_BOOT_DATA__ = await Promise.race([load(), timeout]).catch(() => null)
|
||||
}
|
||||
|
||||
preloadBootData().finally(() => {
|
||||
createRoot(root).render(<App />)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user