mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-13 21:05:19 +00:00
use https://www.electronjs.org/docs/latest/api/web-contents-view to serve different tab views added tabs view manager in electron to handle multi-view actions and events. fix AF-1111 fix AF-999 fix PD-1459 fix AF-964 PD-1458
57 lines
1.5 KiB
TypeScript
57 lines
1.5 KiB
TypeScript
import 'setimmediate';
|
|
import '@affine/component/theme/global.css';
|
|
import '@affine/component/theme/theme.css';
|
|
|
|
import { ThemeProvider } from '@affine/component/theme-provider';
|
|
import { appConfigProxy } from '@affine/core/hooks/use-app-config-storage';
|
|
import { configureAppTabsHeaderModule } from '@affine/core/modules/app-tabs-header';
|
|
import { configureElectronStateStorageImpls } from '@affine/core/modules/storage';
|
|
import { performanceLogger } from '@affine/core/shared';
|
|
import {
|
|
configureGlobalStorageModule,
|
|
Framework,
|
|
FrameworkRoot,
|
|
} from '@toeverything/infra';
|
|
import { StrictMode } from 'react';
|
|
import { createRoot } from 'react-dom/client';
|
|
|
|
import { ShellRoot } from './shell';
|
|
|
|
const framework = new Framework();
|
|
configureGlobalStorageModule(framework);
|
|
configureElectronStateStorageImpls(framework);
|
|
configureAppTabsHeaderModule(framework);
|
|
const frameworkProvider = framework.provider();
|
|
|
|
const logger = performanceLogger.namespace('shell');
|
|
|
|
function main() {
|
|
appConfigProxy
|
|
.getSync()
|
|
.catch(() => console.error('failed to load app config'));
|
|
}
|
|
|
|
function mountApp() {
|
|
const root = document.getElementById('app');
|
|
if (!root) {
|
|
throw new Error('Root element not found');
|
|
}
|
|
logger.info('render app');
|
|
createRoot(root).render(
|
|
<StrictMode>
|
|
<FrameworkRoot framework={frameworkProvider}>
|
|
<ThemeProvider>
|
|
<ShellRoot />
|
|
</ThemeProvider>
|
|
</FrameworkRoot>
|
|
</StrictMode>
|
|
);
|
|
}
|
|
|
|
try {
|
|
main();
|
|
mountApp();
|
|
} catch (err) {
|
|
console.error('Failed to bootstrap app', err);
|
|
}
|