blob: e23c46334cab544621c1c2d79e2edec35a1b0546 [file] [log] [blame]
simon218d3d12022-10-01 17:27:01 -04001/// <reference types="webpack/module" />
simond47ef9e2022-09-28 22:24:28 -04002'use strict';
3import './index.scss';
idillon5815c732022-09-16 13:54:45 -04004import './i18n';
Larbi Gharibe9af9732021-03-31 15:08:01 +01005
idillon8e6c0062022-09-16 13:34:43 -04006// import config from "../sentry-client.config.json"
idillon08f77172022-09-13 19:14:17 -04007import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
simon07b4eb02022-09-29 17:50:26 -04008import { StrictMode } from 'react';
simon218d3d12022-10-01 17:27:01 -04009import { render } from 'react-dom';
simon07b4eb02022-09-29 17:50:26 -040010import { createRoot } from 'react-dom/client';
11import { Provider } from 'react-redux';
12import { BrowserRouter as Router } from 'react-router-dom';
idillon322e4ac2022-09-14 12:48:43 -040013import socketio from 'socket.io-client';
simon07b4eb02022-09-29 17:50:26 -040014
15import { store } from '../redux/store';
simon218d3d12022-10-01 17:27:01 -040016import App from './App';
simon35378692022-10-02 23:25:57 -040017import { SocketProvider } from './contexts/Socket';
idillon08f77172022-09-13 19:14:17 -040018
19const queryClient = new QueryClient({
20 defaultOptions: {
21 queries: {
22 cacheTime: Infinity, // websocket is responsible to tell when data needs to be updated
23 },
24 },
simond47ef9e2022-09-28 22:24:28 -040025});
idillon5e897432022-09-16 13:28:09 -040026
simond47ef9e2022-09-28 22:24:28 -040027const socket = socketio();
idillon322e4ac2022-09-14 12:48:43 -040028
simond47ef9e2022-09-28 22:24:28 -040029const container = document.getElementById('root');
simon218d3d12022-10-01 17:27:01 -040030if (!container) {
31 throw new Error('Failed to get the root element');
32}
idillon169f64f2022-09-16 14:01:22 -040033const root = createRoot(container);
34root.render(
35 <Provider store={store}>
Adrien Béraud023f7cf2022-09-18 14:57:53 -040036 <StrictMode>
idillon08f77172022-09-13 19:14:17 -040037 <QueryClientProvider client={queryClient}>
idillon322e4ac2022-09-14 12:48:43 -040038 <SocketProvider socket={socket}>
39 <Router>
simond47ef9e2022-09-28 22:24:28 -040040 <App />
idillon322e4ac2022-09-14 12:48:43 -040041 </Router>
42 </SocketProvider>
idillon08f77172022-09-13 19:14:17 -040043 </QueryClientProvider>
Adrien Béraud023f7cf2022-09-18 14:57:53 -040044 </StrictMode>
idillon169f64f2022-09-16 14:01:22 -040045 </Provider>
46);
Adrien Béraude74741b2021-04-19 13:22:54 -040047
idillond858c182022-09-16 13:18:26 -040048if (import.meta.webpackHot)
simond47ef9e2022-09-28 22:24:28 -040049 import.meta.webpackHot.accept('./App', () => {
idillond858c182022-09-16 13:18:26 -040050 try {
simon218d3d12022-10-01 17:27:01 -040051 render(<App />, container);
idillond858c182022-09-16 13:18:26 -040052 } catch (e) {
53 location.reload();
54 }
55 });