refactor(core): refactor atom to use di (#5831)

To support multiple instances, this PR removes some atoms and implements them using the new DI system.

removed atom

- `pageSettingsAtom`
- `currentPageIdAtom`
- `currentModeAtom`
This commit is contained in:
EYHN
2024-02-27 03:50:53 +00:00
parent 0dabb08217
commit ad9b0303c4
60 changed files with 602 additions and 626 deletions

View File

@@ -1,5 +1,12 @@
import { WorkspaceFactory, WorkspaceListProvider } from '@toeverything/infra';
import type { ServiceCollection } from '@toeverything/infra/di';
import type { ServiceCollection } from '@toeverything/infra';
import {
GlobalState,
Workspace,
WorkspaceFactory,
WorkspaceListProvider,
WorkspaceLocalState,
WorkspaceScope,
} from '@toeverything/infra';
import { CloudWorkspaceFactory, CloudWorkspaceListProvider } from './cloud';
import {
@@ -7,6 +14,7 @@ import {
LocalWorkspaceFactory,
LocalWorkspaceListProvider,
} from './local';
import { WorkspaceLocalStateImpl } from './local-state';
export * from './cloud';
export * from './local';
@@ -16,7 +24,12 @@ export function configureWorkspaceImplServices(services: ServiceCollection) {
.addImpl(WorkspaceListProvider('affine-cloud'), CloudWorkspaceListProvider)
.addImpl(WorkspaceFactory('affine-cloud'), CloudWorkspaceFactory)
.addImpl(WorkspaceListProvider('local'), LocalWorkspaceListProvider)
.addImpl(WorkspaceFactory('local'), LocalWorkspaceFactory);
.addImpl(WorkspaceFactory('local'), LocalWorkspaceFactory)
.scope(WorkspaceScope)
.addImpl(WorkspaceLocalState, WorkspaceLocalStateImpl, [
Workspace,
GlobalState,
]);
}
/**