1
0
Fork 0
mirror of https://git.sr.ht/~ashkeel/strimertul synced 2024-09-20 02:00:49 +00:00
strimertul/frontend/src/index.tsx

49 lines
1.2 KiB
TypeScript
Raw Normal View History

2022-12-04 17:42:43 +00:00
import { createRoot } from 'react-dom/client';
2021-05-02 12:29:43 +00:00
import { Provider } from 'react-redux';
import { HashRouter } from 'react-router-dom';
2023-04-14 18:04:21 +00:00
import { StrictMode, useEffect, useState } from 'react';
import { EventsOff, EventsOn } from '@wailsapp/runtime';
import { IsFatalError } from '@wailsapp/go/main/App';
import 'inter-ui/inter.css';
2022-01-07 08:41:53 +00:00
import '@fontsource/space-mono/index.css';
import 'normalize.css/normalize.css';
2021-09-17 09:55:15 +00:00
import './locale/setup';
2021-05-02 12:29:43 +00:00
import store from './store';
import App from './ui/App';
2023-04-14 18:04:21 +00:00
import ErrorWindow from './ui/ErrorWindow';
2021-12-16 16:01:24 +00:00
import { globalStyles } from './ui/theme';
globalStyles();
2021-05-02 12:29:43 +00:00
2023-04-14 18:04:21 +00:00
function AppWrapper() {
const [fatalErrorEncountered, setFatalErrorStatus] = useState(false);
useEffect(() => {
void IsFatalError().then(setFatalErrorStatus);
EventsOn('fatalError', () => {
setFatalErrorStatus(true);
});
return () => {
EventsOff('fatalError');
};
}, []);
if (fatalErrorEncountered) {
return <ErrorWindow />;
}
return <App />;
}
2022-12-04 17:42:43 +00:00
const main = document.getElementById('main');
const root = createRoot(main);
root.render(
2021-05-02 12:29:43 +00:00
<Provider store={store}>
<HashRouter>
2022-12-04 17:42:43 +00:00
<StrictMode>
2023-04-14 18:04:21 +00:00
<AppWrapper />
2022-12-04 17:42:43 +00:00
</StrictMode>
</HashRouter>
2021-05-02 12:29:43 +00:00
</Provider>,
);