2024-04-11 23:10:39 +00:00
|
|
|
import React from 'react';
|
|
|
|
import ReactDOM from 'react-dom/client';
|
|
|
|
import assert from 'assert';
|
|
|
|
import { GQLClient } from 'gql-client';
|
2023-12-19 09:17:02 +00:00
|
|
|
|
2024-04-11 23:10:39 +00:00
|
|
|
import { ThemeProvider } from '@snowballtools/material-tailwind-react-fork';
|
2023-12-19 09:17:02 +00:00
|
|
|
|
2024-04-11 23:10:39 +00:00
|
|
|
import './index.css';
|
|
|
|
import '@fontsource/inter';
|
|
|
|
import '@fontsource-variable/jetbrains-mono';
|
|
|
|
import App from './App';
|
|
|
|
import reportWebVitals from './reportWebVitals';
|
|
|
|
import { GQLClientProvider } from './context/GQLClientContext';
|
|
|
|
import { SERVER_GQL_PATH } from './constants';
|
|
|
|
import { Toaster } from 'components/shared/Toast';
|
2024-05-01 20:00:52 +00:00
|
|
|
|
|
|
|
import Bugsnag from '@bugsnag/js';
|
|
|
|
import BugsnagPluginReact from '@bugsnag/plugin-react';
|
|
|
|
import BugsnagPerformance from '@bugsnag/browser-performance';
|
|
|
|
|
|
|
|
const bugsnagApiKey = import.meta.env.VITE_BUGSNAG_API_KEY;
|
|
|
|
if (bugsnagApiKey) {
|
|
|
|
Bugsnag.start({
|
|
|
|
apiKey: bugsnagApiKey,
|
|
|
|
plugins: [new BugsnagPluginReact()],
|
|
|
|
});
|
|
|
|
BugsnagPerformance.start({ apiKey: bugsnagApiKey });
|
|
|
|
}
|
|
|
|
|
2023-12-08 05:20:55 +00:00
|
|
|
const root = ReactDOM.createRoot(
|
2024-04-11 23:10:39 +00:00
|
|
|
document.getElementById('root') as HTMLElement,
|
2023-12-08 05:20:55 +00:00
|
|
|
);
|
2024-01-18 04:34:02 +00:00
|
|
|
|
2024-02-22 11:56:26 +00:00
|
|
|
assert(
|
2024-04-11 21:40:22 +00:00
|
|
|
import.meta.env.VITE_SERVER_URL,
|
2024-04-11 23:10:39 +00:00
|
|
|
'REACT_APP_SERVER_URL is not set in env',
|
2024-02-22 11:56:26 +00:00
|
|
|
);
|
2024-04-11 21:40:22 +00:00
|
|
|
const gqlEndpoint = `${import.meta.env.VITE_SERVER_URL}/${SERVER_GQL_PATH}`;
|
2024-01-18 04:34:02 +00:00
|
|
|
|
|
|
|
const gqlClient = new GQLClient({ gqlEndpoint });
|
|
|
|
|
2024-05-01 20:03:59 +00:00
|
|
|
const ErrorBoundary = bugsnagApiKey
|
|
|
|
? Bugsnag.getPlugin('react')!.createErrorBoundary(React)
|
|
|
|
: ({ children }: any) => children;
|
2024-05-01 20:00:52 +00:00
|
|
|
|
2023-12-08 05:20:55 +00:00
|
|
|
root.render(
|
2024-05-01 20:00:52 +00:00
|
|
|
<ErrorBoundary>
|
|
|
|
<React.StrictMode>
|
|
|
|
<ThemeProvider>
|
|
|
|
<GQLClientProvider client={gqlClient}>
|
|
|
|
<App />
|
|
|
|
<Toaster />
|
|
|
|
</GQLClientProvider>
|
|
|
|
</ThemeProvider>
|
|
|
|
</React.StrictMode>
|
|
|
|
,
|
|
|
|
</ErrorBoundary>,
|
2023-12-08 05:20:55 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
// 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();
|