mirror of
https://github.com/tiddly-gittly/TidGi-Desktop.git
synced 2026-01-23 13:01:25 -08:00
62 lines
2.2 KiB
TypeScript
62 lines
2.2 KiB
TypeScript
/* eslint-disable @typescript-eslint/strict-boolean-expressions */
|
|
/* eslint-disable promise/always-return */
|
|
import React from 'react';
|
|
import ReactDOM from 'react-dom';
|
|
import i18n from 'i18next';
|
|
import { ThemeProvider } from 'styled-components';
|
|
|
|
import StyledEngineProvider from '@material-ui/core/StyledEngineProvider';
|
|
import DateFnsUtils from '@material-ui/lab/AdapterDateFns';
|
|
import LocalizationProvider from '@material-ui/lab/LocalizationProvider';
|
|
import CssBaseline from '@material-ui/core/CssBaseline';
|
|
import { I18nextProvider } from 'react-i18next';
|
|
import 'typeface-roboto/index.css';
|
|
|
|
import { WindowNames, IPreferenceWindowMeta } from '@services/windows/WindowProperties';
|
|
import { useThemeObservable } from '@services/theme/hooks';
|
|
import { darkTheme, lightTheme } from '@services/theme/defaultTheme';
|
|
import { initI18N } from './i18n';
|
|
import 'electron-ipc-cat/fixContextIsolation';
|
|
import { Pages } from './pages';
|
|
|
|
function App(): JSX.Element {
|
|
const theme = useThemeObservable();
|
|
|
|
return (
|
|
<ThemeProvider theme={theme?.shouldUseDarkColors === true ? darkTheme : lightTheme}>
|
|
<StyledEngineProvider injectFirst>
|
|
<LocalizationProvider dateAdapter={DateFnsUtils}>
|
|
<CssBaseline />
|
|
<React.Suspense fallback={<div />}>
|
|
<I18nextProvider i18n={i18n}>
|
|
<Pages />
|
|
</I18nextProvider>
|
|
</React.Suspense>
|
|
</LocalizationProvider>
|
|
</StyledEngineProvider>
|
|
</ThemeProvider>
|
|
);
|
|
}
|
|
|
|
async function runApp(): Promise<void> {
|
|
void window.remote.setVisualZoomLevelLimits(1, 1);
|
|
|
|
const attachToMenubar = await window.service.preference.get('attachToMenubar');
|
|
if (window.meta.windowName !== WindowNames.main && attachToMenubar) {
|
|
document.addEventListener('keydown', (_event) => {
|
|
void (async () => {
|
|
const { preventClosingWindow } = (await window.service.window.getWindowMeta(WindowNames.preferences)) as IPreferenceWindowMeta;
|
|
if (window?.meta?.windowName === WindowNames.preferences && preventClosingWindow) {
|
|
return;
|
|
}
|
|
void window?.remote?.closeCurrentWindow?.();
|
|
})();
|
|
});
|
|
}
|
|
|
|
ReactDOM.render(<App />, document.querySelector('#app'));
|
|
|
|
await initI18N();
|
|
}
|
|
|
|
void runApp();
|