mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 12:28:42 +00:00
refactor(server): better selfhost deployment (#9036)
This commit is contained in:
@@ -34,6 +34,7 @@
|
||||
"@radix-ui/react-tooltip": "^1.1.1",
|
||||
"@sentry/react": "^8.9.0",
|
||||
"@tanstack/react-table": "^8.19.3",
|
||||
"@toeverything/infra": "workspace:*",
|
||||
"cmdk": "^1.0.0",
|
||||
"embla-carousel-react": "^8.1.5",
|
||||
"input-otp": "^1.2.4",
|
||||
|
||||
@@ -1,5 +1,20 @@
|
||||
import { Toaster } from '@affine/admin/components/ui/sonner';
|
||||
import {
|
||||
configureCloudModule,
|
||||
DefaultServerService,
|
||||
} from '@affine/core/modules/cloud';
|
||||
import { configureLocalStorageStateStorageImpls } from '@affine/core/modules/storage';
|
||||
import { configureUrlModule } from '@affine/core/modules/url';
|
||||
import { wrapCreateBrowserRouter } from '@sentry/react';
|
||||
import {
|
||||
configureGlobalContextModule,
|
||||
configureGlobalStorageModule,
|
||||
configureLifecycleModule,
|
||||
Framework,
|
||||
FrameworkRoot,
|
||||
FrameworkScope,
|
||||
LifecycleService,
|
||||
} from '@toeverything/infra';
|
||||
import { useEffect } from 'react';
|
||||
import {
|
||||
createBrowserRouter as reactRouterCreateBrowserRouter,
|
||||
@@ -109,18 +124,38 @@ export const router = _createBrowserRouter(
|
||||
}
|
||||
);
|
||||
|
||||
const framework = new Framework();
|
||||
configureLifecycleModule(framework);
|
||||
configureLocalStorageStateStorageImpls(framework);
|
||||
configureGlobalStorageModule(framework);
|
||||
configureGlobalContextModule(framework);
|
||||
configureUrlModule(framework);
|
||||
configureCloudModule(framework);
|
||||
const frameworkProvider = framework.provider();
|
||||
|
||||
// setup application lifecycle events, and emit application start event
|
||||
window.addEventListener('focus', () => {
|
||||
frameworkProvider.get(LifecycleService).applicationFocus();
|
||||
});
|
||||
frameworkProvider.get(LifecycleService).applicationStart();
|
||||
const serverService = frameworkProvider.get(DefaultServerService);
|
||||
|
||||
export const App = () => {
|
||||
return (
|
||||
<TooltipProvider>
|
||||
<SWRConfig
|
||||
value={{
|
||||
revalidateOnFocus: false,
|
||||
revalidateOnMount: false,
|
||||
}}
|
||||
>
|
||||
<RouterProvider router={router} />
|
||||
</SWRConfig>
|
||||
<Toaster />
|
||||
</TooltipProvider>
|
||||
<FrameworkRoot framework={frameworkProvider}>
|
||||
<FrameworkScope scope={serverService.server.scope}>
|
||||
<TooltipProvider>
|
||||
<SWRConfig
|
||||
value={{
|
||||
revalidateOnFocus: false,
|
||||
revalidateOnMount: false,
|
||||
}}
|
||||
>
|
||||
<RouterProvider router={router} />
|
||||
</SWRConfig>
|
||||
<Toaster />
|
||||
</TooltipProvider>
|
||||
</FrameworkScope>
|
||||
</FrameworkRoot>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -8,6 +8,10 @@
|
||||
"verbatimModuleSyntax": false,
|
||||
"jsx": "react-jsx"
|
||||
},
|
||||
"references": [{ "path": "../core" }, { "path": "../graphql" }],
|
||||
"references": [
|
||||
{ "path": "../core" },
|
||||
{ "path": "../graphql" },
|
||||
{ "path": "../../common/infra" }
|
||||
],
|
||||
"exclude": ["dist"]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user