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
|