55 lines
No EOL
1.3 KiB
TypeScript
55 lines
No EOL
1.3 KiB
TypeScript
import React from 'react';
|
|
import ReactDOM from 'react-dom/client';
|
|
import { AuthProvider } from 'react-oidc-context';
|
|
import { Toaster } from 'react-hot-toast';
|
|
import App from './App';
|
|
import { oidcConfig } from './src/config/oidc';
|
|
|
|
const rootElement = document.getElementById('root');
|
|
if (!rootElement) {
|
|
throw new Error("Could not find root element to mount to");
|
|
}
|
|
|
|
const onSigninCallback = () => {
|
|
window.history.replaceState({}, document.title, window.location.pathname);
|
|
};
|
|
|
|
const root = ReactDOM.createRoot(rootElement);
|
|
root.render(
|
|
<React.StrictMode>
|
|
<AuthProvider
|
|
{...oidcConfig}
|
|
onSigninCallback={onSigninCallback}
|
|
onRemoveUser={() => {
|
|
window.localStorage.clear();
|
|
}}
|
|
>
|
|
<Toaster
|
|
position="top-center"
|
|
toastOptions={{
|
|
duration: 4000,
|
|
style: {
|
|
background: '#333',
|
|
color: '#fff',
|
|
fontWeight: 'bold',
|
|
borderRadius: '1rem',
|
|
padding: '12px 20px',
|
|
},
|
|
success: {
|
|
iconTheme: {
|
|
primary: '#22c55e',
|
|
secondary: '#fff',
|
|
},
|
|
},
|
|
error: {
|
|
iconTheme: {
|
|
primary: '#ef4444',
|
|
secondary: '#fff',
|
|
},
|
|
},
|
|
}}
|
|
/>
|
|
<App />
|
|
</AuthProvider>
|
|
</React.StrictMode>
|
|
); |