73 lines
1.7 KiB
TypeScript
73 lines
1.7 KiB
TypeScript
// dummy test
|
|
import { StrictMode } from 'react'
|
|
import ReactDOM from 'react-dom/client'
|
|
import { RouterProvider, createRouter } from '@tanstack/react-router'
|
|
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
|
|
|
|
|
|
// Import the generated route tree
|
|
import { routeTree } from './routeTree.gen'
|
|
|
|
import './styles.css'
|
|
import reportWebVitals from './reportWebVitals.ts'
|
|
import { SupabaseAuthProvider, useSupabaseAuth } from './auth/supabase.tsx'
|
|
|
|
const queryClient = new QueryClient()
|
|
|
|
const router = createRouter({
|
|
routeTree,
|
|
defaultPreload: 'intent',
|
|
scrollRestoration: true,
|
|
defaultStructuralSharing: true,
|
|
defaultPreloadStaleTime: 0,
|
|
context: {
|
|
auth: undefined!,
|
|
queryClient
|
|
},
|
|
})
|
|
|
|
|
|
|
|
// Register the router instance for type safety
|
|
declare module '@tanstack/react-router' {
|
|
interface Register {
|
|
router: typeof router
|
|
}
|
|
}
|
|
|
|
function InnerApp() {
|
|
const auth = useSupabaseAuth()
|
|
|
|
if (auth.isLoading) {
|
|
return (
|
|
<div className="flex items-center justify-center min-h-screen">
|
|
Loading...
|
|
</div>
|
|
)
|
|
}
|
|
|
|
return <RouterProvider router={router} context={{ auth }} />
|
|
}
|
|
|
|
// Render the app
|
|
const rootElement = document.getElementById('app')
|
|
if (rootElement && !rootElement.innerHTML) {
|
|
const root = ReactDOM.createRoot(rootElement)
|
|
root.render(
|
|
<StrictMode>
|
|
<SupabaseAuthProvider>
|
|
<QueryClientProvider client={queryClient}>
|
|
|
|
<InnerApp />
|
|
</QueryClientProvider>,
|
|
</SupabaseAuthProvider>
|
|
|
|
</StrictMode >,
|
|
)
|
|
}
|
|
|
|
// If you want to start measuring performance in your app, pass a function
|
|
// to log results (for example: reportWebVitals(console.log))
|
|
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
|
|
reportWebVitals()
|