mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-27 19:02:23 +08:00
feat: bump blocksuite (#5953)
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
import type { Page as BlockSuitePage } from '@blocksuite/store';
|
||||
import type { Doc as BlockSuiteDoc } from '@blocksuite/store';
|
||||
|
||||
import { createIdentifier, type ServiceCollection } from '../di';
|
||||
import type { PageRecord } from './record';
|
||||
import { PageScope } from './service-scope';
|
||||
|
||||
export const BlockSuitePageContext = createIdentifier<BlockSuitePage>(
|
||||
export const BlockSuitePageContext = createIdentifier<BlockSuiteDoc>(
|
||||
'BlockSuitePageContext'
|
||||
);
|
||||
|
||||
@@ -13,7 +13,7 @@ export const PageRecordContext =
|
||||
|
||||
export function configurePageContext(
|
||||
services: ServiceCollection,
|
||||
blockSuitePage: BlockSuitePage,
|
||||
blockSuitePage: BlockSuiteDoc,
|
||||
pageRecord: PageRecord
|
||||
) {
|
||||
services
|
||||
|
||||
@@ -9,7 +9,7 @@ import { CleanupService } from '../lifecycle';
|
||||
import { Workspace, WorkspaceLocalState, WorkspaceScope } from '../workspace';
|
||||
import { BlockSuitePageContext, PageRecordContext } from './context';
|
||||
import { PageManager } from './manager';
|
||||
import { Page } from './page';
|
||||
import { Doc } from './page';
|
||||
import { PageRecordList } from './record-list';
|
||||
import { PageScope } from './service-scope';
|
||||
|
||||
@@ -22,5 +22,5 @@ export function configurePageServices(services: ServiceCollection) {
|
||||
services
|
||||
.scope(PageScope)
|
||||
.add(CleanupService)
|
||||
.add(Page, [PageRecordContext, BlockSuitePageContext, ServiceProvider]);
|
||||
.add(Doc, [PageRecordContext, BlockSuitePageContext, ServiceProvider]);
|
||||
}
|
||||
|
||||
@@ -3,11 +3,11 @@ import { ObjectPool } from '../utils/object-pool';
|
||||
import type { Workspace } from '../workspace';
|
||||
import type { PageRecordList } from '.';
|
||||
import { configurePageContext } from './context';
|
||||
import { Page } from './page';
|
||||
import { Doc } from './page';
|
||||
import { PageScope } from './service-scope';
|
||||
|
||||
export class PageManager {
|
||||
pool = new ObjectPool<string, Page>({});
|
||||
pool = new ObjectPool<string, Doc>({});
|
||||
|
||||
constructor(
|
||||
private readonly workspace: Workspace,
|
||||
@@ -20,7 +20,7 @@ export class PageManager {
|
||||
if (!pageRecord) {
|
||||
throw new Error('Page record not found');
|
||||
}
|
||||
const blockSuitePage = this.workspace.blockSuiteWorkspace.getPage(pageId);
|
||||
const blockSuitePage = this.workspace.blockSuiteWorkspace.getDoc(pageId);
|
||||
if (!blockSuitePage) {
|
||||
throw new Error('Page not found');
|
||||
}
|
||||
@@ -41,7 +41,7 @@ export class PageManager {
|
||||
this.serviceProvider
|
||||
);
|
||||
|
||||
const page = provider.get(Page);
|
||||
const page = provider.get(Doc);
|
||||
|
||||
const { obj, release } = this.pool.put(pageId, page);
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import type { Page as BlockSuitePage } from '@blocksuite/store';
|
||||
import type { Doc as BlockSuiteDoc } from '@blocksuite/store';
|
||||
import type { ServiceProvider } from '@toeverything/infra/di';
|
||||
|
||||
import type { PageMode, PageRecord } from './record';
|
||||
|
||||
export class Page {
|
||||
export class Doc {
|
||||
constructor(
|
||||
public readonly record: PageRecord,
|
||||
public readonly blockSuitePage: BlockSuitePage,
|
||||
public readonly blockSuiteDoc: BlockSuiteDoc,
|
||||
public readonly services: ServiceProvider
|
||||
) {}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ export class PageRecordList {
|
||||
new Observable(subscriber => {
|
||||
const emit = () => {
|
||||
subscriber.next(
|
||||
this.workspace.blockSuiteWorkspace.meta.pageMetas.map(
|
||||
this.workspace.blockSuiteWorkspace.meta.docMetas.map(
|
||||
v => new PageRecord(v.id, this.workspace, this.localState)
|
||||
)
|
||||
);
|
||||
@@ -27,9 +27,7 @@ export class PageRecordList {
|
||||
emit();
|
||||
|
||||
const dispose =
|
||||
this.workspace.blockSuiteWorkspace.meta.pageMetasUpdated.on(
|
||||
emit
|
||||
).dispose;
|
||||
this.workspace.blockSuiteWorkspace.meta.docMetaUpdated.on(emit).dispose;
|
||||
return () => {
|
||||
dispose();
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { PageMeta } from '@blocksuite/store';
|
||||
import type { DocMeta } from '@blocksuite/store';
|
||||
import { Observable } from 'rxjs';
|
||||
|
||||
import { LiveData } from '../livedata';
|
||||
@@ -13,10 +13,10 @@ export class PageRecord {
|
||||
private readonly localState: WorkspaceLocalState
|
||||
) {}
|
||||
|
||||
meta = LiveData.from<PageMeta>(
|
||||
meta = LiveData.from<DocMeta>(
|
||||
new Observable(subscriber => {
|
||||
const emit = () => {
|
||||
const meta = this.workspace.blockSuiteWorkspace.meta.pageMetas.find(
|
||||
const meta = this.workspace.blockSuiteWorkspace.meta.docMetas.find(
|
||||
page => page.id === this.id
|
||||
);
|
||||
if (meta === undefined) {
|
||||
@@ -28,9 +28,7 @@ export class PageRecord {
|
||||
emit();
|
||||
|
||||
const dispose =
|
||||
this.workspace.blockSuiteWorkspace.meta.pageMetasUpdated.on(
|
||||
emit
|
||||
).dispose;
|
||||
this.workspace.blockSuiteWorkspace.meta.docMetaUpdated.on(emit).dispose;
|
||||
return () => {
|
||||
dispose();
|
||||
};
|
||||
@@ -43,8 +41,8 @@ export class PageRecord {
|
||||
}
|
||||
);
|
||||
|
||||
setMeta(meta: Partial<PageMeta>): void {
|
||||
this.workspace.blockSuiteWorkspace.setPageMeta(this.id, meta);
|
||||
setMeta(meta: Partial<DocMeta>): void {
|
||||
this.workspace.blockSuiteWorkspace.setDocMeta(this.id, meta);
|
||||
}
|
||||
|
||||
mode: LiveData<PageMode> = LiveData.from(
|
||||
|
||||
Reference in New Issue
Block a user