38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import React from 'react';
|
|
import { createRoot } from 'react-dom/client';
|
|
import { RouterProvider } from 'react-router-dom';
|
|
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
import { AuthProvider } from './auth/context';
|
|
import { router } from './router';
|
|
import '../../css/app.css';
|
|
import './i18n';
|
|
import './dev-tools';
|
|
import { initializeTheme } from '@/hooks/use-appearance';
|
|
import { OnboardingProgressProvider } from './onboarding';
|
|
import { DevTenantSwitcher } from './components/DevTenantSwitcher';
|
|
|
|
const enableDevSwitcher = import.meta.env.DEV || import.meta.env.VITE_ENABLE_TENANT_SWITCHER === 'true';
|
|
|
|
initializeTheme();
|
|
const rootEl = document.getElementById('root')!;
|
|
const queryClient = new QueryClient();
|
|
|
|
if ('serviceWorker' in navigator) {
|
|
window.addEventListener('load', () => {
|
|
navigator.serviceWorker.register('/admin-sw.js').catch(() => {});
|
|
});
|
|
}
|
|
|
|
createRoot(rootEl).render(
|
|
<React.StrictMode>
|
|
<QueryClientProvider client={queryClient}>
|
|
<AuthProvider>
|
|
<OnboardingProgressProvider>
|
|
<RouterProvider router={router} />
|
|
</OnboardingProgressProvider>
|
|
</AuthProvider>
|
|
{enableDevSwitcher ? <DevTenantSwitcher /> : null}
|
|
</QueryClientProvider>
|
|
</React.StrictMode>
|
|
);
|