Files
MealQuest/web/src/main.tsx
T

31 lines
1018 B
TypeScript
Raw Normal View History

import { StrictMode } from 'react'
import { createRoot } from 'react-dom/client'
2026-10-06 10:22:07 -04:00
import { createBrowserRouter, RouterProvider } from 'react-router'
import './styles/tokens.css'
import './styles/base.css'
import App from './App.tsx'
2026-10-05 15:22:37 -04:00
import { createApiClient, createVerifiedSession } from './api/index.ts'
import { createNetworkStatus } from './pwa/networkStatus.ts'
const root = document.getElementById('root')
if (!root) {
throw new Error('MealQuest: #root element missing from index.html')
}
2026-10-05 15:22:37 -04:00
const api = createApiClient(window.location, createNetworkStatus(window), createVerifiedSession(window.localStorage))
2026-10-06 10:22:07 -04:00
// A data router, so pages can block navigation (useBlocker); App's own
// <Routes> match every path under its splat route.
const router = createBrowserRouter([
{
path: '*',
element: <App api={api} serviceWorker={'serviceWorker' in navigator ? navigator.serviceWorker : undefined} />,
},
])
createRoot(root).render(
<StrictMode>
2026-10-06 10:22:07 -04:00
<RouterProvider router={router} />
</StrictMode>,
)