sozsoft-platform/ui/src/App.tsx

50 lines
1.5 KiB
TypeScript
Raw Normal View History

2026-02-24 20:44:16 +00:00
import Layout from '@/components/layouts'
import Theme from '@/components/template/Theme'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import { StoreProvider } from 'easy-peasy'
import { BrowserRouter } from 'react-router-dom'
import { store } from './store'
import { DynamicRoutesProvider } from './routes/dynamicRoutesContext'
import { ComponentProvider } from './contexts/ComponentContext'
import { useEffect } from 'react'
2026-07-13 08:39:13 +00:00
import DevExtremeBoundary from './components/devExtreme/DevExtremeBoundary'
2026-02-24 20:44:16 +00:00
2026-07-11 20:35:32 +00:00
const queryClient = new QueryClient({
defaultOptions: {
queries: {
staleTime: 30_000,
refetchOnWindowFocus: false,
},
},
})
2026-02-24 20:44:16 +00:00
function App() {
useEffect(() => {
2026-07-13 08:39:13 +00:00
void import('./views/version/swRegistration')
.then(({ registerServiceWorker }) => registerServiceWorker())
.catch((error: unknown) => {
console.warn('Service worker could not be registered.', error)
})
2026-02-24 20:44:16 +00:00
}, [])
return (
<StoreProvider store={store}>
<BrowserRouter future={{ v7_startTransition: true, v7_relativeSplatPath: true }}>
<DynamicRoutesProvider>
<ComponentProvider>
<QueryClientProvider client={queryClient}>
2026-07-13 08:39:13 +00:00
<DevExtremeBoundary>
<Theme>
<Layout />
</Theme>
</DevExtremeBoundary>
2026-02-24 20:44:16 +00:00
</QueryClientProvider>
</ComponentProvider>
</DynamicRoutesProvider>
</BrowserRouter>
</StoreProvider>
)
}
export default App