template-studio/src/main.tsx

35 lines
1003 B
TypeScript

import React from 'react'
import ReactDOM from 'react-dom/client'
import { registerSW } from 'virtual:pwa-register'
import { App } from './App'
import './styles.css'
import './refine.css'
async function bootstrap() {
registerSW({ immediate: true })
const session = await fetch('/api/session', { headers: { Accept: 'application/json' } })
if (session.status === 401) {
window.location.assign('/auth/login')
return
}
if (!session.ok) throw new Error(`Session check failed: ${session.status}`)
const payload = await session.json()
ReactDOM.createRoot(document.getElementById('root')!).render(
<React.StrictMode>
<App user={payload.user} />
</React.StrictMode>
)
}
bootstrap().catch(error => {
document.body.innerHTML = `
<main style="font-family:system-ui;padding:24px;max-width:720px;margin:auto">
<h1>Template Studio</h1>
<p>Unable to start the application.</p>
<pre style="white-space:pre-wrap">${String(error)}</pre>
</main>
`
})