// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors
// SPDX-License-Identifier: Apache-2.0
import { MantineProvider, createTheme } from '@mantine/core';
import '@mantine/core/styles.css';
import { Notifications } from '@mantine/notifications';
import '@mantine/notifications/styles.css';
import { MedplumClient } from '@medplum/core';
import { MedplumProvider } from '@medplum/react';
import '@medplum/react/styles.css';
import { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';
import { RouterProvider, createBrowserRouter } from 'react-router';
import { App } from './App';
import { MEDPLUM_BASE_URL } from './contants';
const medplum = new MedplumClient({
onUnauthenticated: () => (window.location.href = '/'),
baseUrl: MEDPLUM_BASE_URL,
cacheTime: 600,
autoBatchTime: 100,
});
const theme = createTheme({
headings: {
sizes: {
h1: {
fontSize: '1.125rem',
fontWeight: '500',
lineHeight: '2.0',
},
},
},
fontSizes: {
xs: '0.6875rem',
sm: '0.875rem',
md: '0.875rem',
lg: '1.0rem',
xl: '1.125rem',
},
});
const router = createBrowserRouter([{ path: '*', element: <App /> }]);
const navigate = (path: string): Promise<void> => router.navigate(path);
const container = document.getElementById('root') as HTMLDivElement;
const root = createRoot(container);
root.render(
<StrictMode>
<MedplumProvider medplum={medplum} navigate={navigate}>
<MantineProvider theme={theme}>
<Notifications position="bottom-right" />
<RouterProvider router={router} />
</MantineProvider>
</MedplumProvider>
</StrictMode>,
);