From f21c320fbfd2c92fe8ac394e81fece1ad735640f Mon Sep 17 00:00:00 2001 From: Mirone Date: Fri, 3 Jan 2025 17:36:10 +0800 Subject: [PATCH] refactor(editor): rename doc to blocks --- .../affine/block-data-view/src/data-source.ts | 4 ++-- .../block-database/src/database-service.ts | 4 ++-- .../src/common/render-linked-doc.ts | 14 +++++++------- .../affine/block-list/src/commands/utils.ts | 6 +++--- .../block-surface-ref/src/surface-ref-block.ts | 4 ++-- .../src/utils/get-surface-block.ts | 4 ++-- .../components/src/caption/block-caption.ts | 4 ++-- .../nodes/reference-node/reference-node.ts | 4 ++-- .../components/src/toolbar/menu-context.ts | 4 ++-- .../src/services/doc-display-meta-service.ts | 6 +++--- .../affine/shared/src/utils/model/checker.ts | 4 ++-- .../affine/shared/src/utils/model/getter.ts | 4 ++-- .../affine/shared/src/utils/model/list.ts | 4 ++-- .../shared/src/utils/model/transform-model.ts | 4 ++-- .../__tests__/database/database.unit.spec.ts | 4 ++-- .../_common/export-manager/export-manager.ts | 4 ++-- .../blocks/src/_common/transformers/html.ts | 4 ++-- .../src/_common/transformers/markdown.ts | 6 +++--- .../blocks/src/_common/transformers/zip.ts | 4 ++-- blocksuite/blocks/src/_common/types.ts | 4 ++-- .../blocks/src/root-block/clipboard/index.ts | 4 ++-- .../components/connector/connector-handle.ts | 4 ++-- .../edgeless/components/frame/frame-preview.ts | 4 ++-- .../src/root-block/edgeless/frame-manager.ts | 6 +++--- .../more-menu/render-linked-doc.ts | 10 +++++++--- .../block-std/src/__tests__/test-editor.ts | 4 ++-- .../framework/block-std/src/clipboard/index.ts | 10 +++++----- blocksuite/framework/block-std/src/gfx/grid.ts | 4 ++-- .../framework/block-std/src/gfx/layer.ts | 6 +++--- .../block-std/src/scope/block-std-scope.ts | 6 +++--- .../framework/block-std/src/utils/gfx.ts | 4 ++-- .../framework/block-std/src/utils/layer.ts | 4 ++-- .../framework/block-std/src/utils/tree.ts | 9 ++++++--- .../src/view/element/block-component.ts | 6 +++--- .../block-std/src/view/element/lit-host.ts | 8 ++++---- .../src/view/element/widget-component.ts | 4 ++-- .../src/__tests__/collection.unit.spec.ts | 4 ++-- blocksuite/framework/store/src/adapter/base.ts | 8 ++++---- blocksuite/framework/store/src/schema/base.ts | 6 +++--- .../store/src/store/doc/block-collection.ts | 10 +++++----- .../store/src/store/doc/block/index.ts | 4 ++-- .../src/store/doc/block/sync-controller.ts | 4 ++-- .../framework/store/src/store/doc/doc.ts | 2 +- .../framework/store/src/store/workspace.ts | 6 +++--- .../framework/store/src/test/test-workspace.ts | 6 +++--- .../framework/store/src/transformer/job.ts | 18 ++++++++++-------- .../store/src/transformer/middleware.ts | 6 +++--- .../framework/store/src/transformer/slice.ts | 4 ++-- .../framework/store/src/transformer/type.ts | 6 +++--- .../src/__tests__/edgeless/layer.spec.ts | 4 ++-- .../presets/src/__tests__/utils/edgeless.ts | 14 +++++++------- .../presets/src/__tests__/utils/setup.ts | 6 +++--- .../presets/src/editors/edgeless-editor.ts | 4 ++-- .../presets/src/editors/editor-container.ts | 8 ++++---- blocksuite/presets/src/editors/page-editor.ts | 4 ++-- .../src/fragments/doc-title/doc-title.ts | 4 ++-- .../frame-panel/body/frame-panel-body.ts | 4 ++-- .../outline/body/outline-panel-body.ts | 4 ++-- .../src/fragments/outline/card/outline-card.ts | 4 ++-- .../src/fragments/outline/utils/drag.ts | 4 ++-- .../src/fragments/outline/utils/query.ts | 6 +++--- .../src/blocksuite/initialization/index.ts | 6 +++--- .../_common/components/text-renderer.ts | 4 ++-- .../presets/_common/utils/markdown-utils.ts | 6 +++--- .../presets/ai/_common/chat-actions-handle.ts | 4 ++-- .../blocksuite/presets/ai/chat-panel/index.ts | 4 ++-- .../presets/ai/messages/slides-renderer.ts | 4 ++-- .../presets/ai/mini-mindmap/mindmap-preview.ts | 8 ++++---- .../page-history-modal/history-modal.tsx | 5 ++++- .../affine/share-page-modal/index.tsx | 4 ++-- .../share-page-modal/share-menu/share-menu.tsx | 4 ++-- .../blocksuite-editor-container.tsx | 6 +++--- .../block-suite-editor/blocksuite-editor.tsx | 4 ++-- .../block-suite-editor/journal-doc-title.tsx | 4 ++-- .../block-suite-editor/lit-adaper.tsx | 4 ++-- .../block-suite-editor/no-page-error.ts | 4 ++-- .../block-suite-header/journal/date-picker.tsx | 4 ++-- .../block-suite-header/menu/index.tsx | 4 ++-- .../components/hooks/affine/use-export-page.ts | 14 +++++++++----- .../hooks/use-block-suite-workspace-helper.ts | 4 ++-- .../hooks/use-block-suite-workspace-page.ts | 4 ++-- .../use-block-suite-page-preview.spec.ts | 6 +++--- .../page-list/use-block-suite-page-preview.ts | 8 ++++---- .../use-block-suite-workspace-page.ts | 4 ++-- .../src/components/root-app-sidebar/index.tsx | 4 ++-- .../editor/edgeless/connector.tsx | 4 ++-- .../editor/edgeless/docs/index.ts | 4 ++-- .../editor/edgeless/mind-map.tsx | 4 ++-- .../general-setting/editor/edgeless/note.tsx | 4 ++-- .../general-setting/editor/edgeless/pen.tsx | 4 ++-- .../general-setting/editor/edgeless/shape.tsx | 6 +++--- .../editor/edgeless/snapshot.tsx | 8 ++++---- .../general-setting/editor/edgeless/text.tsx | 4 ++-- .../general-setting/editor/edgeless/utils.ts | 6 +++--- .../detail-page/detail-page-header.tsx | 4 ++-- .../core/src/modules/doc-info/utils.ts | 6 +++--- .../database-properties/cells/rich-text.tsx | 4 ++-- .../core/src/modules/doc/scopes/doc.ts | 2 +- .../src/modules/workspace/impl/workspace.ts | 6 +++--- 99 files changed, 272 insertions(+), 256 deletions(-) diff --git a/blocksuite/affine/block-data-view/src/data-source.ts b/blocksuite/affine/block-data-view/src/data-source.ts index b224143b5697d..566bf80bd50df 100644 --- a/blocksuite/affine/block-data-view/src/data-source.ts +++ b/blocksuite/affine/block-data-view/src/data-source.ts @@ -11,7 +11,7 @@ import type { EditorHost } from '@blocksuite/block-std'; import { DataSourceBase, type PropertyMetaConfig } from '@blocksuite/data-view'; import { propertyPresets } from '@blocksuite/data-view/property-presets'; import { assertExists, Slot } from '@blocksuite/global/utils'; -import type { Block, Doc } from '@blocksuite/store'; +import type { Block, Blocks } from '@blocksuite/store'; import type { BlockMeta } from './block-meta/base.js'; import { blockMetaMap } from './block-meta/index.js'; @@ -140,7 +140,7 @@ export class BlockQueryDataSource extends DataSourceBase { return this.block.columns.find(v => v.id === id); } - listenToDoc(doc: Doc) { + listenToDoc(doc: Blocks) { this.docDisposeMap.set( doc.id, doc.slots.blockUpdated.on(v => { diff --git a/blocksuite/affine/block-database/src/database-service.ts b/blocksuite/affine/block-database/src/database-service.ts index 1fe16aff79fe2..86dd8fb6c15f9 100644 --- a/blocksuite/affine/block-database/src/database-service.ts +++ b/blocksuite/affine/block-database/src/database-service.ts @@ -4,7 +4,7 @@ import { } from '@blocksuite/affine-model'; import { BlockService } from '@blocksuite/block-std'; import { viewPresets } from '@blocksuite/data-view/view-presets'; -import type { BlockModel, Doc } from '@blocksuite/store'; +import type { BlockModel, Blocks } from '@blocksuite/store'; import { databaseViewAddView, @@ -36,7 +36,7 @@ export class DatabaseBlockService extends BlockService { viewPresets = viewPresets; initDatabaseBlock( - doc: Doc, + doc: Blocks, model: BlockModel, databaseId: string, viewType: string, diff --git a/blocksuite/affine/block-embed/src/common/render-linked-doc.ts b/blocksuite/affine/block-embed/src/common/render-linked-doc.ts index f04e6debcfaaa..b4f0dc60589dd 100644 --- a/blocksuite/affine/block-embed/src/common/render-linked-doc.ts +++ b/blocksuite/affine/block-embed/src/common/render-linked-doc.ts @@ -11,9 +11,9 @@ import { BlockStdScope } from '@blocksuite/block-std'; import { assertExists } from '@blocksuite/global/utils'; import { type BlockModel, + type Blocks, type BlockSnapshot, BlockViewType, - type Doc, type DraftModel, type Query, Slice, @@ -220,7 +220,7 @@ function filterTextModel(model: BlockModel) { return false; } -export function getNotesFromDoc(doc: Doc) { +export function getNotesFromDoc(doc: Blocks) { const notes = doc.root?.children.filter( child => matchFlavours(child, ['affine:note']) && @@ -234,7 +234,7 @@ export function getNotesFromDoc(doc: Doc) { return notes; } -export function isEmptyDoc(doc: Doc | null, mode: DocMode) { +export function isEmptyDoc(doc: Blocks | null, mode: DocMode) { if (!doc) { return true; } @@ -266,7 +266,7 @@ export function isEmptyNote(note: BlockModel) { /** * Gets the document content with a max length. */ -export function getDocContentWithMaxLength(doc: Doc, maxlength = 500) { +export function getDocContentWithMaxLength(doc: Blocks, maxlength = 500) { const notes = getNotesFromDoc(doc); if (!notes) return; @@ -326,7 +326,7 @@ export function promptDocTitle(std: BlockStdScope, autofill?: string) { }); } -export function notifyDocCreated(std: BlockStdScope, doc: Doc) { +export function notifyDocCreated(std: BlockStdScope, doc: Blocks) { const notification = std.getOptional(NotificationProvider); if (!notification) return; @@ -365,7 +365,7 @@ export function notifyDocCreated(std: BlockStdScope, doc: Doc) { export async function convertSelectedBlocksToLinkedDoc( std: BlockStdScope, - doc: Doc, + doc: Blocks, selectedModels: DraftModel[] | Promise, docTitle?: string ) { @@ -399,7 +399,7 @@ export async function convertSelectedBlocksToLinkedDoc( export function createLinkedDocFromSlice( std: BlockStdScope, - doc: Doc, + doc: Blocks, snapshots: BlockSnapshot[], docTitle?: string ) { diff --git a/blocksuite/affine/block-list/src/commands/utils.ts b/blocksuite/affine/block-list/src/commands/utils.ts index b9695752d0436..a1f73ff8426fa 100644 --- a/blocksuite/affine/block-list/src/commands/utils.ts +++ b/blocksuite/affine/block-list/src/commands/utils.ts @@ -3,7 +3,7 @@ import { getNextContinuousNumberedLists, matchFlavours, } from '@blocksuite/affine-shared/utils'; -import type { BlockModel, Doc } from '@blocksuite/store'; +import type { BlockModel, Blocks } from '@blocksuite/store'; /** * correct target is a numbered list, which is divided into two steps: @@ -12,7 +12,7 @@ import type { BlockModel, Doc } from '@blocksuite/store'; * 2. find continuous lists starting from the target list and keep their order continuous */ export function correctNumberedListsOrderToPrev( - doc: Doc, + doc: Blocks, modelOrId: BlockModel | string, transact = true ) { @@ -58,7 +58,7 @@ export function correctNumberedListsOrderToPrev( } } -export function correctListOrder(doc: Doc, model: ListBlockModel) { +export function correctListOrder(doc: Blocks, model: ListBlockModel) { // old numbered list has no order if (model.type === 'numbered' && !Number.isInteger(model.order)) { correctNumberedListsOrderToPrev(doc, model, false); diff --git a/blocksuite/affine/block-surface-ref/src/surface-ref-block.ts b/blocksuite/affine/block-surface-ref/src/surface-ref-block.ts index 0926031b67f27..59ee5a6524286 100644 --- a/blocksuite/affine/block-surface-ref/src/surface-ref-block.ts +++ b/blocksuite/affine/block-surface-ref/src/surface-ref-block.ts @@ -45,7 +45,7 @@ import { DisposableGroup, type SerializedXYWH, } from '@blocksuite/global/utils'; -import type { Doc } from '@blocksuite/store'; +import type { Blocks } from '@blocksuite/store'; import { css, html, nothing, type TemplateResult } from 'lit'; import { query, state } from 'lit/decorators.js'; import { styleMap } from 'lit/directives/style-map.js'; @@ -238,7 +238,7 @@ export class SurfaceRefBlockComponent extends BlockComponent { + private readonly _updateRefMeta = (doc: Blocks) => { const refAttribute = this.delta.attributes?.reference; if (!refAttribute) { return; diff --git a/blocksuite/affine/components/src/toolbar/menu-context.ts b/blocksuite/affine/components/src/toolbar/menu-context.ts index e0abb6a18497b..f43b00431d351 100644 --- a/blocksuite/affine/components/src/toolbar/menu-context.ts +++ b/blocksuite/affine/components/src/toolbar/menu-context.ts @@ -1,9 +1,9 @@ import type { BlockStdScope, EditorHost } from '@blocksuite/block-std'; import type { GfxModel } from '@blocksuite/block-std/gfx'; -import type { BlockModel, Doc } from '@blocksuite/store'; +import type { BlockModel, Blocks } from '@blocksuite/store'; export abstract class MenuContext { - abstract get doc(): Doc; + abstract get doc(): Blocks; get firstElement(): GfxModel | null { return null; diff --git a/blocksuite/affine/shared/src/services/doc-display-meta-service.ts b/blocksuite/affine/shared/src/services/doc-display-meta-service.ts index 2ee920e728922..b55a52933e922 100644 --- a/blocksuite/affine/shared/src/services/doc-display-meta-service.ts +++ b/blocksuite/affine/shared/src/services/doc-display-meta-service.ts @@ -11,7 +11,7 @@ import { LinkedPageIcon, PageIcon, } from '@blocksuite/icons/lit'; -import type { Doc } from '@blocksuite/store'; +import type { Blocks } from '@blocksuite/store'; import { computed, type Signal, signal } from '@preact/signals-core'; import type { TemplateResult } from 'lit'; @@ -70,9 +70,9 @@ export class DocDisplayMetaService readonly disposables: Disposable[] = []; - readonly iconMap = new WeakMap>(); + readonly iconMap = new WeakMap>(); - readonly titleMap = new WeakMap>(); + readonly titleMap = new WeakMap>(); static override setup(di: Container) { di.addImpl(DocDisplayMetaProvider, this, [StdIdentifier]); diff --git a/blocksuite/affine/shared/src/utils/model/checker.ts b/blocksuite/affine/shared/src/utils/model/checker.ts index c99b8486b0eb3..48f59be8ee3af 100644 --- a/blocksuite/affine/shared/src/utils/model/checker.ts +++ b/blocksuite/affine/shared/src/utils/model/checker.ts @@ -1,4 +1,4 @@ -import type { BlockModel, Doc, DraftModel } from '@blocksuite/store'; +import type { BlockModel, Blocks, DraftModel } from '@blocksuite/store'; import { minimatch } from 'minimatch'; export function matchFlavours( @@ -14,7 +14,7 @@ export function matchFlavours( } export function isInsideBlockByFlavour( - doc: Doc, + doc: Blocks, block: BlockModel | string, flavour: string ): boolean { diff --git a/blocksuite/affine/shared/src/utils/model/getter.ts b/blocksuite/affine/shared/src/utils/model/getter.ts index b3d71899381b8..579a235192d2e 100644 --- a/blocksuite/affine/shared/src/utils/model/getter.ts +++ b/blocksuite/affine/shared/src/utils/model/getter.ts @@ -1,6 +1,6 @@ import { type NoteBlockModel, NoteDisplayMode } from '@blocksuite/affine-model'; import type { BlockComponent, EditorHost } from '@blocksuite/block-std'; -import type { BlockModel, Doc } from '@blocksuite/store'; +import type { BlockModel, Blocks } from '@blocksuite/store'; import { matchFlavours } from './checker.js'; @@ -41,7 +41,7 @@ export function findNoteBlockModel(model: BlockModel) { ) as NoteBlockModel | null; } -export function getLastNoteBlock(doc: Doc) { +export function getLastNoteBlock(doc: Blocks) { let note: NoteBlockModel | null = null; if (!doc.root) return null; const { children } = doc.root; diff --git a/blocksuite/affine/shared/src/utils/model/list.ts b/blocksuite/affine/shared/src/utils/model/list.ts index 86f5a5a6fdd1a..f4c5efebac0d4 100644 --- a/blocksuite/affine/shared/src/utils/model/list.ts +++ b/blocksuite/affine/shared/src/utils/model/list.ts @@ -1,6 +1,6 @@ import type { ListBlockModel } from '@blocksuite/affine-model'; import type { BlockStdScope } from '@blocksuite/block-std'; -import type { BlockModel, Doc } from '@blocksuite/store'; +import type { BlockModel, Blocks } from '@blocksuite/store'; import { matchFlavours } from './checker.js'; @@ -9,7 +9,7 @@ import { matchFlavours } from './checker.js'; * typically used for updating list numbers. The result not contains the list passed in. */ export function getNextContinuousNumberedLists( - doc: Doc, + doc: Blocks, modelOrId: BlockModel | string ): ListBlockModel[] { const model = diff --git a/blocksuite/affine/shared/src/utils/model/transform-model.ts b/blocksuite/affine/shared/src/utils/model/transform-model.ts index dd607f6e63f7b..b29429bc31d05 100644 --- a/blocksuite/affine/shared/src/utils/model/transform-model.ts +++ b/blocksuite/affine/shared/src/utils/model/transform-model.ts @@ -1,9 +1,9 @@ -import type { BlockModel, Doc, Text } from '@blocksuite/store'; +import type { BlockModel, Blocks, Text } from '@blocksuite/store'; export function transformModel( model: BlockModel, flavour: BlockSuite.Flavour, - props?: Parameters[1] + props?: Parameters[1] ) { const doc = model.doc; const parent = doc.getParent(model); diff --git a/blocksuite/blocks/src/__tests__/database/database.unit.spec.ts b/blocksuite/blocks/src/__tests__/database/database.unit.spec.ts index ec3375bf30557..a93dafcde1ee7 100644 --- a/blocksuite/blocks/src/__tests__/database/database.unit.spec.ts +++ b/blocksuite/blocks/src/__tests__/database/database.unit.spec.ts @@ -17,7 +17,7 @@ import { RootBlockSchema, } from '@blocksuite/affine-model'; import { propertyModelPresets } from '@blocksuite/data-view/property-pure-presets'; -import type { BlockModel, Doc } from '@blocksuite/store'; +import type { BlockModel, Blocks } from '@blocksuite/store'; import { Schema } from '@blocksuite/store'; import { createAutoIncrementIdGenerator, @@ -49,7 +49,7 @@ function createTestDoc(docId = 'doc0') { } describe('DatabaseManager', () => { - let doc: Doc; + let doc: Blocks; let db: DatabaseBlockModel; let rootId: BlockModel['id']; diff --git a/blocksuite/blocks/src/_common/export-manager/export-manager.ts b/blocksuite/blocks/src/_common/export-manager/export-manager.ts index e63db5515b605..3e300838adc82 100644 --- a/blocksuite/blocks/src/_common/export-manager/export-manager.ts +++ b/blocksuite/blocks/src/_common/export-manager/export-manager.ts @@ -25,7 +25,7 @@ import type { GfxBlockElementModel } from '@blocksuite/block-std/gfx'; import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions'; import type { IBound } from '@blocksuite/global/utils'; import { Bound } from '@blocksuite/global/utils'; -import type { Doc } from '@blocksuite/store'; +import type { Blocks } from '@blocksuite/store'; import { getBlockComponentByModel, @@ -110,7 +110,7 @@ export class ExportManager { await Promise.all(promises); }; - get doc(): Doc { + get doc(): Blocks { return this.std.doc; } diff --git a/blocksuite/blocks/src/_common/transformers/html.ts b/blocksuite/blocks/src/_common/transformers/html.ts index a30139bc83e03..0a7597cca78e6 100644 --- a/blocksuite/blocks/src/_common/transformers/html.ts +++ b/blocksuite/blocks/src/_common/transformers/html.ts @@ -1,7 +1,7 @@ import { HtmlAdapter } from '@blocksuite/affine-shared/adapters'; import { Container } from '@blocksuite/global/di'; import { sha } from '@blocksuite/global/utils'; -import type { Doc, Workspace } from '@blocksuite/store'; +import type { Blocks, Workspace } from '@blocksuite/store'; import { extMimeMap, Job } from '@blocksuite/store'; import { defaultBlockHtmlAdapterMatchers } from '../adapters/html/block-matcher.js'; @@ -43,7 +43,7 @@ const provider = container.provider(); * @param doc - The doc to be exported. * @returns A Promise that resolves when the export is complete. */ -async function exportDoc(doc: Doc) { +async function exportDoc(doc: Blocks) { const job = new Job({ schema: doc.schema, blobCRUD: doc.blobSync, diff --git a/blocksuite/blocks/src/_common/transformers/markdown.ts b/blocksuite/blocks/src/_common/transformers/markdown.ts index 730a4d223aa01..827fff078f6e7 100644 --- a/blocksuite/blocks/src/_common/transformers/markdown.ts +++ b/blocksuite/blocks/src/_common/transformers/markdown.ts @@ -2,7 +2,7 @@ import { MarkdownAdapter } from '@blocksuite/affine-shared/adapters'; import { Container } from '@blocksuite/global/di'; import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions'; import { assertExists, sha } from '@blocksuite/global/utils'; -import type { Doc, Workspace } from '@blocksuite/store'; +import type { Blocks, Workspace } from '@blocksuite/store'; import { extMimeMap, Job } from '@blocksuite/store'; import { defaultBlockMarkdownAdapterMatchers } from '../adapters/index.js'; @@ -28,7 +28,7 @@ const container = new Container(); const provider = container.provider(); type ImportMarkdownToBlockOptions = { - doc: Doc; + doc: Blocks; markdown: string; blockId: string; }; @@ -49,7 +49,7 @@ type ImportMarkdownZipOptions = { * @param doc The doc to export * @returns A Promise that resolves when the export is complete */ -async function exportDoc(doc: Doc) { +async function exportDoc(doc: Blocks) { const job = new Job({ schema: doc.schema, blobCRUD: doc.blobSync, diff --git a/blocksuite/blocks/src/_common/transformers/zip.ts b/blocksuite/blocks/src/_common/transformers/zip.ts index 6090642ff4f4b..27da2aed0535a 100644 --- a/blocksuite/blocks/src/_common/transformers/zip.ts +++ b/blocksuite/blocks/src/_common/transformers/zip.ts @@ -1,11 +1,11 @@ import { sha } from '@blocksuite/global/utils'; -import type { Doc, DocSnapshot, Workspace } from '@blocksuite/store'; +import type { Blocks, DocSnapshot, Workspace } from '@blocksuite/store'; import { extMimeMap, getAssetName, Job } from '@blocksuite/store'; import { download, Unzip, Zip } from '../transformers/utils.js'; import { replaceIdMiddleware, titleMiddleware } from './middlewares.js'; -async function exportDocs(collection: Workspace, docs: Doc[]) { +async function exportDocs(collection: Workspace, docs: Blocks[]) { const zip = new Zip(); const job = new Job({ schema: collection.schema, diff --git a/blocksuite/blocks/src/_common/types.ts b/blocksuite/blocks/src/_common/types.ts index 34eca41b34a02..03dba901c220d 100644 --- a/blocksuite/blocks/src/_common/types.ts +++ b/blocksuite/blocks/src/_common/types.ts @@ -5,7 +5,7 @@ import type { GroupElementModel, } from '@blocksuite/affine-model'; import type { Slot } from '@blocksuite/global/utils'; -import type { Doc } from '@blocksuite/store'; +import type { Blocks } from '@blocksuite/store'; /** Common context interface definition for block models. */ @@ -14,7 +14,7 @@ type EditorSlots = { }; export type AbstractEditor = { - doc: Doc; + doc: Blocks; mode: DocMode; readonly slots: EditorSlots; } & HTMLElement; diff --git a/blocksuite/blocks/src/root-block/clipboard/index.ts b/blocksuite/blocks/src/root-block/clipboard/index.ts index c9e84e41dba01..5ef11aefdb8b1 100644 --- a/blocksuite/blocks/src/root-block/clipboard/index.ts +++ b/blocksuite/blocks/src/root-block/clipboard/index.ts @@ -8,7 +8,7 @@ import { } from '@blocksuite/affine-shared/adapters'; import type { BlockComponent, UIEventHandler } from '@blocksuite/block-std'; import { DisposableGroup } from '@blocksuite/global/utils'; -import type { BlockSnapshot, Doc } from '@blocksuite/store'; +import type { Blocks,BlockSnapshot } from '@blocksuite/store'; import { MixTextAdapter } from '../../_common/adapters/index.js'; import { @@ -99,7 +99,7 @@ export class PageClipboard { onBlockSnapshotPaste = async ( snapshot: BlockSnapshot, - doc: Doc, + doc: Blocks, parent?: string, index?: number ) => { diff --git a/blocksuite/blocks/src/root-block/edgeless/components/connector/connector-handle.ts b/blocksuite/blocks/src/root-block/edgeless/components/connector/connector-handle.ts index 284fe85fc227d..e7637c7d564b0 100644 --- a/blocksuite/blocks/src/root-block/edgeless/components/connector/connector-handle.ts +++ b/blocksuite/blocks/src/root-block/edgeless/components/connector/connector-handle.ts @@ -10,7 +10,7 @@ import { } from '@blocksuite/block-std'; import { GfxControllerIdentifier } from '@blocksuite/block-std/gfx'; import { DisposableGroup, Vec, WithDisposable } from '@blocksuite/global/utils'; -import type { Doc } from '@blocksuite/store'; +import type { Blocks } from '@blocksuite/store'; import { consume } from '@lit/context'; import { css, html, LitElement } from 'lit'; import { property, query } from 'lit/decorators.js'; @@ -150,7 +150,7 @@ export class EdgelessConnectorHandle extends WithDisposable(LitElement) { @consume({ context: docContext, }) - accessor doc!: Doc; + accessor doc!: Blocks; @property({ attribute: false }) accessor edgeless!: EdgelessRootBlockComponent; diff --git a/blocksuite/blocks/src/root-block/edgeless/components/frame/frame-preview.ts b/blocksuite/blocks/src/root-block/edgeless/components/frame/frame-preview.ts index 374a75dbe0783..b05e13fdd4bbb 100644 --- a/blocksuite/blocks/src/root-block/edgeless/components/frame/frame-preview.ts +++ b/blocksuite/blocks/src/root-block/edgeless/components/frame/frame-preview.ts @@ -12,7 +12,7 @@ import { DisposableGroup, WithDisposable, } from '@blocksuite/global/utils'; -import { BlockViewType, type Doc, type Query } from '@blocksuite/store'; +import { type Blocks, BlockViewType, type Query } from '@blocksuite/store'; import { css, html, nothing, type PropertyValues } from 'lit'; import { property, query, state } from 'lit/decorators.js'; import { styleMap } from 'lit/directives/style-map.js'; @@ -78,7 +78,7 @@ export class FramePreview extends WithDisposable(ShadowlessElement) { private _frameDisposables: DisposableGroup | null = null; - private _previewDoc: Doc | null = null; + private _previewDoc: Blocks | null = null; private readonly _previewSpec = SpecProvider.getInstance().getSpec('edgeless:preview'); diff --git a/blocksuite/blocks/src/root-block/edgeless/frame-manager.ts b/blocksuite/blocks/src/root-block/edgeless/frame-manager.ts index b0c2599b7f8d7..0302b43830694 100644 --- a/blocksuite/blocks/src/root-block/edgeless/frame-manager.ts +++ b/blocksuite/blocks/src/root-block/edgeless/frame-manager.ts @@ -19,7 +19,7 @@ import { type IVec, type SerializedXYWH, } from '@blocksuite/global/utils'; -import type { Doc } from '@blocksuite/store'; +import type { Blocks } from '@blocksuite/store'; import { Text } from '@blocksuite/store'; import * as Y from 'yjs'; @@ -463,7 +463,7 @@ export class EdgelessFrameManager extends GfxExtension { } export function getNotesInFrameBound( - doc: Doc, + doc: Blocks, frame: FrameBlockModel, fullyContained: boolean = true ) { @@ -481,7 +481,7 @@ export function getNotesInFrameBound( } export function getBlocksInFrameBound( - doc: Doc, + doc: Blocks, model: FrameBlockModel, fullyContained: boolean = true ) { diff --git a/blocksuite/blocks/src/root-block/widgets/element-toolbar/more-menu/render-linked-doc.ts b/blocksuite/blocks/src/root-block/widgets/element-toolbar/more-menu/render-linked-doc.ts index d665585808a00..1bc5e4d02c865 100644 --- a/blocksuite/blocks/src/root-block/widgets/element-toolbar/more-menu/render-linked-doc.ts +++ b/blocksuite/blocks/src/root-block/widgets/element-toolbar/more-menu/render-linked-doc.ts @@ -5,7 +5,7 @@ import { DocModeProvider } from '@blocksuite/affine-shared/services'; import { getBlockProps } from '@blocksuite/affine-shared/utils'; import type { EditorHost } from '@blocksuite/block-std'; import { GfxBlockElementModel } from '@blocksuite/block-std/gfx'; -import { type BlockModel, type Doc } from '@blocksuite/store'; +import { type BlockModel, type Blocks } from '@blocksuite/store'; import { getElementProps, @@ -14,7 +14,11 @@ import { } from '../../../edgeless/utils/clone-utils.js'; import { isFrameBlock, isNoteBlock } from '../../../edgeless/utils/query.js'; -function addBlocksToDoc(targetDoc: Doc, model: BlockModel, parentId: string) { +function addBlocksToDoc( + targetDoc: Blocks, + model: BlockModel, + parentId: string +) { // Add current block to linked doc const blockProps = getBlockProps(model); const newModelId = targetDoc.addBlock( @@ -32,7 +36,7 @@ function addBlocksToDoc(targetDoc: Doc, model: BlockModel, parentId: string) { } export function createLinkedDocFromNote( - doc: Doc, + doc: Blocks, note: NoteBlockModel, docTitle?: string ) { diff --git a/blocksuite/framework/block-std/src/__tests__/test-editor.ts b/blocksuite/framework/block-std/src/__tests__/test-editor.ts index 7471ca57b7436..757a17f2839d4 100644 --- a/blocksuite/framework/block-std/src/__tests__/test-editor.ts +++ b/blocksuite/framework/block-std/src/__tests__/test-editor.ts @@ -1,5 +1,5 @@ import { SignalWatcher, WithDisposable } from '@blocksuite/global/utils'; -import type { Doc } from '@blocksuite/store'; +import type { Blocks } from '@blocksuite/store'; import { html } from 'lit'; import { customElement, property } from 'lit/decorators.js'; @@ -32,7 +32,7 @@ export class TestEditorContainer extends SignalWatcher( } @property({ attribute: false }) - accessor doc!: Doc; + accessor doc!: Blocks; @property({ attribute: false }) accessor specs: ExtensionType[] = []; diff --git a/blocksuite/framework/block-std/src/clipboard/index.ts b/blocksuite/framework/block-std/src/clipboard/index.ts index 132060d865cc4..b03e1c379ca24 100644 --- a/blocksuite/framework/block-std/src/clipboard/index.ts +++ b/blocksuite/framework/block-std/src/clipboard/index.ts @@ -2,8 +2,8 @@ import type { ServiceProvider } from '@blocksuite/global/di'; import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions'; import type { BaseAdapter, + Blocks, BlockSnapshot, - Doc, Job, JobMiddleware, Slice, @@ -110,7 +110,7 @@ export class Clipboard extends LifeCycleWatcher { private readonly _getSnapshotByPriority = async ( getItem: (type: string) => string | File[], - doc: Doc, + doc: Blocks, parent?: string, index?: number ) => { @@ -182,7 +182,7 @@ export class Clipboard extends LifeCycleWatcher { duplicateSlice = async ( slice: Slice, - doc: Doc, + doc: Blocks, parent?: string, index?: number, type = 'BLOCKSUITE/SNAPSHOT' @@ -201,7 +201,7 @@ export class Clipboard extends LifeCycleWatcher { paste = async ( event: ClipboardEvent, - doc: Doc, + doc: Blocks, parent?: string, index?: number ) => { @@ -238,7 +238,7 @@ export class Clipboard extends LifeCycleWatcher { pasteBlockSnapshot = async ( snapshot: BlockSnapshot, - doc: Doc, + doc: Blocks, parent?: string, index?: number ) => { diff --git a/blocksuite/framework/block-std/src/gfx/grid.ts b/blocksuite/framework/block-std/src/gfx/grid.ts index 12df95ab19604..3a1a77e8246fb 100644 --- a/blocksuite/framework/block-std/src/gfx/grid.ts +++ b/blocksuite/framework/block-std/src/gfx/grid.ts @@ -4,7 +4,7 @@ import { getBoundWithRotation, intersects, } from '@blocksuite/global/utils'; -import type { BlockModel, Doc } from '@blocksuite/store'; +import type { BlockModel, Blocks } from '@blocksuite/store'; import { compare } from '../utils/layer.js'; import { GfxBlockElementModel } from './model/gfx-block-model.js'; @@ -361,7 +361,7 @@ export class GridManager { this.add(element); } - watch(blocks: { doc?: Doc; surface?: SurfaceBlockModel | null }) { + watch(blocks: { doc?: Blocks; surface?: SurfaceBlockModel | null }) { const disposables: { dispose: () => void }[] = []; const { doc, surface } = blocks; const isRenderableBlock = ( diff --git a/blocksuite/framework/block-std/src/gfx/layer.ts b/blocksuite/framework/block-std/src/gfx/layer.ts index b314faa2d0123..a7f7262c48f79 100644 --- a/blocksuite/framework/block-std/src/gfx/layer.ts +++ b/blocksuite/framework/block-std/src/gfx/layer.ts @@ -5,7 +5,7 @@ import { last, Slot, } from '@blocksuite/global/utils'; -import type { Doc } from '@blocksuite/store'; +import type { Blocks } from '@blocksuite/store'; import { generateKeyBetween } from 'fractional-indexing'; import { @@ -100,7 +100,7 @@ export class LayerManager { }; constructor( - private readonly _doc: Doc, + private readonly _doc: Blocks, private _surface: SurfaceBlockModel | null, options: { watch: boolean; @@ -775,7 +775,7 @@ export class LayerManager { } } - watch(blocks: { doc?: Doc; surface: SurfaceBlockModel | null }) { + watch(blocks: { doc?: Blocks; surface: SurfaceBlockModel | null }) { const { doc, surface } = blocks; if (doc) { diff --git a/blocksuite/framework/block-std/src/scope/block-std-scope.ts b/blocksuite/framework/block-std/src/scope/block-std-scope.ts index 60e25a30eefda..34d2e02f1ccb5 100644 --- a/blocksuite/framework/block-std/src/scope/block-std-scope.ts +++ b/blocksuite/framework/block-std/src/scope/block-std-scope.ts @@ -1,7 +1,7 @@ import type { ServiceProvider } from '@blocksuite/global/di'; import { Container } from '@blocksuite/global/di'; import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions'; -import { type Doc, Job, type JobMiddleware } from '@blocksuite/store'; +import { type Blocks, Job, type JobMiddleware } from '@blocksuite/store'; import { Clipboard } from '../clipboard/index.js'; import { CommandManager } from '../command/index.js'; @@ -31,7 +31,7 @@ import { EditorHost } from '../view/element/index.js'; import { ViewStore } from '../view/view-store.js'; export interface BlockStdOptions { - doc: Doc; + doc: Blocks; extensions: ExtensionType[]; } @@ -60,7 +60,7 @@ export class BlockStdScope { readonly container: Container; - readonly doc: Doc; + readonly doc: Blocks; readonly provider: ServiceProvider; diff --git a/blocksuite/framework/block-std/src/utils/gfx.ts b/blocksuite/framework/block-std/src/utils/gfx.ts index 33452f59c5ac0..30ac57ece93a3 100644 --- a/blocksuite/framework/block-std/src/utils/gfx.ts +++ b/blocksuite/framework/block-std/src/utils/gfx.ts @@ -1,10 +1,10 @@ -import type { Doc } from '@blocksuite/store'; +import type { Blocks } from '@blocksuite/store'; import { effect } from '@preact/signals-core'; import { SurfaceBlockModel } from '../gfx/model/surface/surface-model.js'; export function onSurfaceAdded( - doc: Doc, + doc: Blocks, callback: (model: SurfaceBlockModel | null) => void ) { let found = false; diff --git a/blocksuite/framework/block-std/src/utils/layer.ts b/blocksuite/framework/block-std/src/utils/layer.ts index f6c3f65fef738..a950eb85b9153 100644 --- a/blocksuite/framework/block-std/src/utils/layer.ts +++ b/blocksuite/framework/block-std/src/utils/layer.ts @@ -1,5 +1,5 @@ import { nToLast } from '@blocksuite/global/utils'; -import type { Doc } from '@blocksuite/store'; +import type { Blocks } from '@blocksuite/store'; import type { GfxLocalElementModel } from '../gfx/index.js'; import type { Layer } from '../gfx/layer.js'; @@ -82,7 +82,7 @@ export function isInRange(edges: [GfxModel, GfxModel], target: GfxModel) { } export function renderableInEdgeless( - doc: Doc, + doc: Blocks, surface: SurfaceBlockModel, block: GfxBlockElementModel ) { diff --git a/blocksuite/framework/block-std/src/utils/tree.ts b/blocksuite/framework/block-std/src/utils/tree.ts index 1cc8f69c6348f..5ea0279f0aec8 100644 --- a/blocksuite/framework/block-std/src/utils/tree.ts +++ b/blocksuite/framework/block-std/src/utils/tree.ts @@ -1,4 +1,4 @@ -import type { Doc } from '@blocksuite/store'; +import type { Blocks } from '@blocksuite/store'; import { type GfxCompatibleInterface, @@ -124,13 +124,16 @@ export function isLockedImpl(element: GfxCompatibleInterface): boolean { return isLockedBySelfImpl(element) || isLockedByAncestorImpl(element); } -export function lockElementImpl(doc: Doc, element: GfxCompatibleInterface) { +export function lockElementImpl(doc: Blocks, element: GfxCompatibleInterface) { doc.transact(() => { element.lockedBySelf = true; }); } -export function unlockElementImpl(doc: Doc, element: GfxCompatibleInterface) { +export function unlockElementImpl( + doc: Blocks, + element: GfxCompatibleInterface +) { doc.transact(() => { element.lockedBySelf = false; }); diff --git a/blocksuite/framework/block-std/src/view/element/block-component.ts b/blocksuite/framework/block-std/src/view/element/block-component.ts index e085356a868ce..7f844b4ab9dca 100644 --- a/blocksuite/framework/block-std/src/view/element/block-component.ts +++ b/blocksuite/framework/block-std/src/view/element/block-component.ts @@ -1,6 +1,6 @@ import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions'; import { SignalWatcher, WithDisposable } from '@blocksuite/global/utils'; -import { type BlockModel, BlockViewType, Doc } from '@blocksuite/store'; +import { type BlockModel, Blocks,BlockViewType } from '@blocksuite/store'; import { consume, provide } from '@lit/context'; import { computed } from '@preact/signals-core'; import { nothing, type TemplateResult } from 'lit'; @@ -23,7 +23,7 @@ import { ShadowlessElement } from './shadowless-element.js'; import type { WidgetComponent } from './widget-component.js'; @requiredProperties({ - doc: PropTypes.instanceOf(Doc), + doc: PropTypes.instanceOf(Blocks), std: PropTypes.object, widgets: PropTypes.recordOf(PropTypes.object), }) @@ -307,7 +307,7 @@ export class BlockComponent< private accessor _service: Service | null = null; @consume({ context: docContext }) - accessor doc!: Doc; + accessor doc!: Blocks; @property({ attribute: false }) accessor viewType: BlockViewType = BlockViewType.Display; diff --git a/blocksuite/framework/block-std/src/view/element/lit-host.ts b/blocksuite/framework/block-std/src/view/element/lit-host.ts index 6f8203ef7b943..be1b2f64fdfc5 100644 --- a/blocksuite/framework/block-std/src/view/element/lit-host.ts +++ b/blocksuite/framework/block-std/src/view/element/lit-host.ts @@ -4,7 +4,7 @@ import { handleError, } from '@blocksuite/global/exceptions'; import { SignalWatcher, Slot, WithDisposable } from '@blocksuite/global/utils'; -import { type BlockModel, BlockViewType, Doc } from '@blocksuite/store'; +import { type BlockModel, Blocks,BlockViewType } from '@blocksuite/store'; import { createContext, provide } from '@lit/context'; import { css, LitElement, nothing, type TemplateResult } from 'lit'; import { property } from 'lit/decorators.js'; @@ -22,11 +22,11 @@ import type { ViewStore } from '../view-store.js'; import { BLOCK_ID_ATTR, WIDGET_ID_ATTR } from './consts.js'; import { ShadowlessElement } from './shadowless-element.js'; -export const docContext = createContext('doc'); +export const docContext = createContext('doc'); export const stdContext = createContext('std'); @requiredProperties({ - doc: PropTypes.instanceOf(Doc), + doc: PropTypes.instanceOf(Blocks), std: PropTypes.object, }) export class EditorHost extends SignalWatcher( @@ -189,7 +189,7 @@ export class EditorHost extends SignalWatcher( @provide({ context: docContext }) @property({ attribute: false }) - accessor doc!: Doc; + accessor doc!: Blocks; @provide({ context: stdContext }) @property({ attribute: false }) diff --git a/blocksuite/framework/block-std/src/view/element/widget-component.ts b/blocksuite/framework/block-std/src/view/element/widget-component.ts index f9b9e7776190e..e81e20d1ce35c 100644 --- a/blocksuite/framework/block-std/src/view/element/widget-component.ts +++ b/blocksuite/framework/block-std/src/view/element/widget-component.ts @@ -1,5 +1,5 @@ import { SignalWatcher, WithDisposable } from '@blocksuite/global/utils'; -import type { BlockModel, Doc } from '@blocksuite/store'; +import type { BlockModel, Blocks } from '@blocksuite/store'; import { consume } from '@lit/context'; import { LitElement } from 'lit'; @@ -94,7 +94,7 @@ export class WidgetComponent< } @consume({ context: docContext }) - private accessor _doc!: Doc; + private accessor _doc!: Blocks; @consume({ context: modelContext }) private accessor _model!: Model; diff --git a/blocksuite/framework/store/src/__tests__/collection.unit.spec.ts b/blocksuite/framework/store/src/__tests__/collection.unit.spec.ts index bf708872389df..4a11ed6f64eec 100644 --- a/blocksuite/framework/store/src/__tests__/collection.unit.spec.ts +++ b/blocksuite/framework/store/src/__tests__/collection.unit.spec.ts @@ -5,7 +5,7 @@ import { assert, beforeEach, describe, expect, it, vi } from 'vitest'; import { applyUpdate, encodeStateAsUpdate } from 'yjs'; import { COLLECTION_VERSION, PAGE_VERSION } from '../consts.js'; -import type { BlockModel, BlockSchemaType, Doc } from '../index.js'; +import type { BlockModel, Blocks,BlockSchemaType } from '../index.js'; import { Schema } from '../index.js'; import type { DocMeta } from '../store/workspace.js'; import { TestWorkspace } from '../test/test-workspace.js'; @@ -54,7 +54,7 @@ function waitOnce(slot: Slot) { return new Promise(resolve => slot.once(val => resolve(val))); } -function createRoot(doc: Doc) { +function createRoot(doc: Blocks) { doc.addBlock('affine:page'); if (!doc.root) throw new Error('root not found'); return doc.root; diff --git a/blocksuite/framework/store/src/adapter/base.ts b/blocksuite/framework/store/src/adapter/base.ts index 9cf8b779902ef..ee855dc4e3dfb 100644 --- a/blocksuite/framework/store/src/adapter/base.ts +++ b/blocksuite/framework/store/src/adapter/base.ts @@ -1,6 +1,6 @@ import { BlockSuiteError } from '@blocksuite/global/exceptions'; -import type { Doc } from '../store/index.js'; +import type { Blocks } from '../store/index.js'; import type { AssetsManager } from '../transformer/assets.js'; import type { DraftModel, Job, Slice } from '../transformer/index.js'; import type { @@ -93,7 +93,7 @@ export abstract class BaseAdapter { | Promise> | FromBlockSnapshotResult; - async fromDoc(doc: Doc) { + async fromDoc(doc: Blocks) { try { const docSnapshot = this.job.docToSnapshot(doc); if (!docSnapshot) return; @@ -138,7 +138,7 @@ export abstract class BaseAdapter { async toBlock( payload: ToBlockSnapshotPayload, - doc: Doc, + doc: Blocks, parent?: string, index?: number ) { @@ -175,7 +175,7 @@ export abstract class BaseAdapter { async toSlice( payload: ToSliceSnapshotPayload, - doc: Doc, + doc: Blocks, parent?: string, index?: number ) { diff --git a/blocksuite/framework/store/src/schema/base.ts b/blocksuite/framework/store/src/schema/base.ts index 11c9b717c4b24..8d4d51b210c10 100644 --- a/blocksuite/framework/store/src/schema/base.ts +++ b/blocksuite/framework/store/src/schema/base.ts @@ -7,7 +7,7 @@ import { z } from 'zod'; import { Boxed } from '../reactive/boxed.js'; import { Text } from '../reactive/text.js'; import type { YBlock } from '../store/doc/block/index.js'; -import type { Doc } from '../store/index.js'; +import type { Blocks } from '../store/index.js'; import type { BaseBlockTransformer } from '../transformer/base.js'; const FlavourSchema = z.string(); @@ -160,7 +160,7 @@ export class BlockModel< /** * @deprecated use doc instead */ - page!: Doc; + page!: Blocks; private readonly _childModels = computed(() => { const value: BlockModel[] = []; @@ -224,7 +224,7 @@ export class BlockModel< return this.page; } - set doc(doc: Doc) { + set doc(doc: Blocks) { this.page = doc; } diff --git a/blocksuite/framework/store/src/store/doc/block-collection.ts b/blocksuite/framework/store/src/store/doc/block-collection.ts index 57a1c6da6bc1e..1000b2f91203e 100644 --- a/blocksuite/framework/store/src/store/doc/block-collection.ts +++ b/blocksuite/framework/store/src/store/doc/block-collection.ts @@ -8,7 +8,7 @@ import type { BlockModel } from '../../schema/base.js'; import type { IdGenerator } from '../../utils/id-generator.js'; import type { AwarenessStore, BlockSuiteDoc } from '../../yjs/index.js'; import type { GetDocOptions, Workspace } from '../workspace.js'; -import { Doc } from './doc.js'; +import { Blocks } from './doc.js'; import type { YBlock } from './index.js'; import type { Query } from './query.js'; @@ -40,9 +40,9 @@ export class BlockCollection { private readonly _collection: Workspace; private readonly _docMap = { - undefined: new Map(), - true: new Map(), - false: new Map(), + undefined: new Map(), + true: new Map(), + false: new Map(), }; // doc/space container. @@ -324,7 +324,7 @@ export class BlockCollection { return this._docMap[readonlyKey].get(key)!; } - const doc = new Doc({ + const doc = new Blocks({ blockCollection: this, schema: this.collection.schema, readonly, diff --git a/blocksuite/framework/store/src/store/doc/block/index.ts b/blocksuite/framework/store/src/store/doc/block/index.ts index a58e36320521f..a449e31c9f951 100644 --- a/blocksuite/framework/store/src/store/doc/block/index.ts +++ b/blocksuite/framework/store/src/store/doc/block/index.ts @@ -1,6 +1,6 @@ import type { Schema } from '../../../schema/index.js'; import { BlockViewType } from '../consts.js'; -import type { Doc } from '../doc.js'; +import type { Blocks } from '../doc.js'; import { SyncController } from './sync-controller.js'; import type { BlockOptions, YBlock } from './types.js'; @@ -38,7 +38,7 @@ export class Block { constructor( readonly schema: Schema, readonly yBlock: YBlock, - readonly doc?: Doc, + readonly doc?: Blocks, readonly options: BlockOptions = {} ) { const onChange = !options.onChange diff --git a/blocksuite/framework/store/src/store/doc/block/sync-controller.ts b/blocksuite/framework/store/src/store/doc/block/sync-controller.ts index 3efc5f72aeda4..d063e3e054d4c 100644 --- a/blocksuite/framework/store/src/store/doc/block/sync-controller.ts +++ b/blocksuite/framework/store/src/store/doc/block/sync-controller.ts @@ -12,7 +12,7 @@ import { } from '../../../reactive/index.js'; import { BlockModel, internalPrimitives } from '../../../schema/base.js'; import type { Schema } from '../../../schema/schema.js'; -import type { Doc } from '../doc.js'; +import type { Blocks } from '../doc.js'; import type { YBlock } from './types.js'; /** @@ -103,7 +103,7 @@ export class SyncController { constructor( readonly schema: Schema, readonly yBlock: YBlock, - readonly doc?: Doc, + readonly doc?: Blocks, readonly onChange?: (key: string, value: unknown) => void ) { const { id, flavour, version, yChildren, props } = this._parseYBlock(); diff --git a/blocksuite/framework/store/src/store/doc/doc.ts b/blocksuite/framework/store/src/store/doc/doc.ts index 2c2cf4216b052..163070e6bafba 100644 --- a/blocksuite/framework/store/src/store/doc/doc.ts +++ b/blocksuite/framework/store/src/store/doc/doc.ts @@ -18,7 +18,7 @@ type DocOptions = { query?: Query; }; -export class Doc { +export class Blocks { private readonly _runQuery = (block: Block) => { runQuery(this._query, block); }; diff --git a/blocksuite/framework/store/src/store/workspace.ts b/blocksuite/framework/store/src/store/workspace.ts index 745be082e1044..312e7aeb28659 100644 --- a/blocksuite/framework/store/src/store/workspace.ts +++ b/blocksuite/framework/store/src/store/workspace.ts @@ -5,7 +5,7 @@ import type { Schema } from '../schema/schema.js'; import type { IdGenerator } from '../utils/id-generator.js'; import type { AwarenessStore } from '../yjs/awareness.js'; import type { BlockSuiteDoc } from '../yjs/doc.js'; -import type { Doc } from './doc/doc.js'; +import type { Blocks } from './doc/doc.js'; import type { BlockCollection } from './doc/index.js'; import type { Query } from './doc/query.js'; @@ -78,8 +78,8 @@ export interface Workspace { docRemoved: Slot; }; - createDoc(options?: CreateDocOptions): Doc; - getDoc(docId: string, options?: GetDocOptions): Doc | null; + createDoc(options?: CreateDocOptions): Blocks; + getDoc(docId: string, options?: GetDocOptions): Blocks | null; removeDoc(docId: string): void; dispose(): void; diff --git a/blocksuite/framework/store/src/test/test-workspace.ts b/blocksuite/framework/store/src/test/test-workspace.ts index bd866544385f9..598e9ea614049 100644 --- a/blocksuite/framework/store/src/test/test-workspace.ts +++ b/blocksuite/framework/store/src/test/test-workspace.ts @@ -18,8 +18,8 @@ import { Awareness } from 'y-protocols/awareness.js'; import type { Schema } from '../schema/index.js'; import { BlockCollection, + type Blocks, type CreateDocOptions, - type Doc, DocCollectionMeta, type GetDocOptions, type Workspace, @@ -208,7 +208,7 @@ export class TestWorkspace implements Workspace { tags: [], }); this.slots.docCreated.emit(docId); - return this.getDoc(docId, { query, readonly }) as Doc; + return this.getDoc(docId, { query, readonly }) as Blocks; } dispose() { @@ -230,7 +230,7 @@ export class TestWorkspace implements Workspace { return space ?? null; } - getDoc(docId: string, options?: GetDocOptions): Doc | null { + getDoc(docId: string, options?: GetDocOptions): Blocks | null { const collection = this.getBlockCollection(docId); return collection?.getDoc(options) ?? null; } diff --git a/blocksuite/framework/store/src/transformer/job.ts b/blocksuite/framework/store/src/transformer/job.ts index 5ebb2930c89d5..bad8d125a160c 100644 --- a/blocksuite/framework/store/src/transformer/job.ts +++ b/blocksuite/framework/store/src/transformer/job.ts @@ -2,7 +2,7 @@ import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions'; import { nextTick, Slot } from '@blocksuite/global/utils'; import type { BlockModel, BlockSchemaType, Schema } from '../schema/index.js'; -import type { Doc } from '../store/index.js'; +import type { Blocks } from '../store/index.js'; import { AssetsManager } from './assets.js'; import { BaseBlockTransformer } from './base.js'; import type { DraftModel } from './draft.js'; @@ -78,7 +78,7 @@ export class Job { } }; - docToSnapshot = (doc: Doc): DocSnapshot | undefined => { + docToSnapshot = (doc: Blocks): DocSnapshot | undefined => { try { this._slots.beforeExport.emit({ type: 'page', @@ -154,7 +154,7 @@ export class Job { snapshotToBlock = async ( snapshot: BlockSnapshot, - doc: Doc, + doc: Blocks, parent?: string, index?: number ): Promise => { @@ -170,7 +170,9 @@ export class Job { } }; - snapshotToDoc = async (snapshot: DocSnapshot): Promise => { + snapshotToDoc = async ( + snapshot: DocSnapshot + ): Promise => { try { this._slots.beforeImport.emit({ type: 'page', @@ -222,7 +224,7 @@ export class Job { snapshotToSlice = async ( snapshot: SliceSnapshot, - doc: Doc, + doc: Blocks, parent?: string, index?: number ): Promise => { @@ -418,7 +420,7 @@ export class Job { } } - private _exportDocMeta(doc: Doc): DocSnapshot['meta'] { + private _exportDocMeta(doc: Blocks): DocSnapshot['meta'] { const docMeta = doc.meta; if (!docMeta) { @@ -466,7 +468,7 @@ export class Job { private async _insertBlockTree( nodes: DraftBlockTreeNode[], - doc: Doc, + doc: Blocks, parentId?: string, startIndex?: number, counter: number = 0 @@ -555,7 +557,7 @@ export class Job { private async _snapshotToBlock( snapshot: BlockSnapshot, - doc: Doc, + doc: Blocks, parent?: string, index?: number ): Promise { diff --git a/blocksuite/framework/store/src/transformer/middleware.ts b/blocksuite/framework/store/src/transformer/middleware.ts index 3f6b9a310477d..fbe7945398062 100644 --- a/blocksuite/framework/store/src/transformer/middleware.ts +++ b/blocksuite/framework/store/src/transformer/middleware.ts @@ -1,6 +1,6 @@ import type { Slot } from '@blocksuite/global/utils'; -import type { Doc } from '../store/index.js'; +import type { Blocks } from '../store/index.js'; import type { AssetsManager } from './assets.js'; import type { DraftModel } from './draft.js'; import type { Slice } from './slice.js'; @@ -38,7 +38,7 @@ export type BeforeExportPayload = type: 'block'; } | { - page: Doc; + page: Blocks; type: 'page'; } | { @@ -60,7 +60,7 @@ export type FinalPayload = | { snapshot: DocSnapshot; type: 'page'; - page: Doc; + page: Blocks; } | { snapshot: SliceSnapshot; diff --git a/blocksuite/framework/store/src/transformer/slice.ts b/blocksuite/framework/store/src/transformer/slice.ts index ea0226d4c185b..b3889a8bb6faf 100644 --- a/blocksuite/framework/store/src/transformer/slice.ts +++ b/blocksuite/framework/store/src/transformer/slice.ts @@ -1,4 +1,4 @@ -import type { Doc } from '../store/index.js'; +import type { Blocks } from '../store/index.js'; import type { DraftModel } from './draft.js'; type SliceData = { @@ -22,7 +22,7 @@ export class Slice { constructor(readonly data: SliceData) {} - static fromModels(doc: Doc, models: DraftModel[]) { + static fromModels(doc: Blocks, models: DraftModel[]) { return new Slice({ content: models, workspaceId: doc.collection.id, diff --git a/blocksuite/framework/store/src/transformer/type.ts b/blocksuite/framework/store/src/transformer/type.ts index e6d48467a3cb6..38270e3151f78 100644 --- a/blocksuite/framework/store/src/transformer/type.ts +++ b/blocksuite/framework/store/src/transformer/type.ts @@ -1,6 +1,6 @@ import { z } from 'zod'; -import type { Doc } from '../store/doc/doc.js'; +import type { Blocks } from '../store/doc/doc.js'; import type { DocMeta, DocsPropertiesMeta } from '../store/workspace.js'; export type BlockSnapshot = { @@ -75,7 +75,7 @@ export interface BlobCRUD { } export interface DocCRUD { - create: (id: string) => Doc; - get: (id: string) => Doc | null; + create: (id: string) => Blocks; + get: (id: string) => Blocks | null; delete: (id: string) => void; } diff --git a/blocksuite/presets/src/__tests__/edgeless/layer.spec.ts b/blocksuite/presets/src/__tests__/edgeless/layer.spec.ts index 13dbee64fbbdc..6ac120fec51fc 100644 --- a/blocksuite/presets/src/__tests__/edgeless/layer.spec.ts +++ b/blocksuite/presets/src/__tests__/edgeless/layer.spec.ts @@ -5,7 +5,7 @@ import type { GroupElementModel, NoteBlockModel, } from '@blocksuite/blocks'; -import { type BlockModel, type Doc } from '@blocksuite/store'; +import { type BlockModel, type Blocks } from '@blocksuite/store'; import { beforeEach, describe, expect, test } from 'vitest'; import * as Y from 'yjs'; @@ -19,7 +19,7 @@ import { setupEditor } from '../utils/setup.js'; let service!: EdgelessRootBlockComponent['service']; -const addNote = (doc: Doc, props: Record = {}) => { +const addNote = (doc: Blocks, props: Record = {}) => { return _addNote(doc, { index: service.layer.generateIndex(), ...props, diff --git a/blocksuite/presets/src/__tests__/utils/edgeless.ts b/blocksuite/presets/src/__tests__/utils/edgeless.ts index ee6c528b8e68e..7f607c2c8aae8 100644 --- a/blocksuite/presets/src/__tests__/utils/edgeless.ts +++ b/blocksuite/presets/src/__tests__/utils/edgeless.ts @@ -1,14 +1,14 @@ -/* eslint-disable @typescript-eslint/no-non-null-assertion */ + import type { EdgelessRootBlockComponent, PageRootBlockComponent, SurfaceBlockComponent, } from '@blocksuite/blocks'; -import type { Doc } from '@blocksuite/store'; +import type { Blocks } from '@blocksuite/store'; import type { AffineEditorContainer } from '../../index.js'; -export function getSurface(doc: Doc, editor: AffineEditorContainer) { +export function getSurface(doc: Blocks, editor: AffineEditorContainer) { const surfaceModel = doc.getBlockByFlavour('affine:surface'); return editor.host!.view.getBlock( @@ -17,17 +17,17 @@ export function getSurface(doc: Doc, editor: AffineEditorContainer) { } export function getDocRootBlock( - doc: Doc, + doc: Blocks, editor: AffineEditorContainer, mode: 'page' ): PageRootBlockComponent; export function getDocRootBlock( - doc: Doc, + doc: Blocks, editor: AffineEditorContainer, mode: 'edgeless' ): EdgelessRootBlockComponent; export function getDocRootBlock( - doc: Doc, + doc: Blocks, editor: AffineEditorContainer, _?: 'edgeless' | 'page' ) { @@ -36,7 +36,7 @@ export function getDocRootBlock( | PageRootBlockComponent; } -export function addNote(doc: Doc, props: Record = {}) { +export function addNote(doc: Blocks, props: Record = {}) { const noteId = doc.addBlock( 'affine:note', { diff --git a/blocksuite/presets/src/__tests__/utils/setup.ts b/blocksuite/presets/src/__tests__/utils/setup.ts index f8db7deec31c2..6280aa145c1a6 100644 --- a/blocksuite/presets/src/__tests__/utils/setup.ts +++ b/blocksuite/presets/src/__tests__/utils/setup.ts @@ -1,5 +1,5 @@ import { effects as blocksEffects } from '@blocksuite/blocks/effects'; -import type { BlockCollection, Doc, Job } from '@blocksuite/store'; +import type { BlockCollection, Blocks, Job } from '@blocksuite/store'; import { effects } from '../../effects.js'; @@ -111,12 +111,12 @@ export function cleanup() { declare global { const editor: AffineEditorContainer; - const doc: Doc; + const doc: Blocks; const collection: TestWorkspace; const job: Job; interface Window { editor: AffineEditorContainer; - doc: Doc; + doc: Blocks; job: Job; collection: TestWorkspace; } diff --git a/blocksuite/presets/src/editors/edgeless-editor.ts b/blocksuite/presets/src/editors/edgeless-editor.ts index 1cda0a0500e43..b7b9a927d283a 100644 --- a/blocksuite/presets/src/editors/edgeless-editor.ts +++ b/blocksuite/presets/src/editors/edgeless-editor.ts @@ -1,7 +1,7 @@ import { BlockStdScope, ShadowlessElement } from '@blocksuite/block-std'; import { EdgelessEditorBlockSpecs, ThemeProvider } from '@blocksuite/blocks'; import { SignalWatcher, WithDisposable } from '@blocksuite/global/utils'; -import type { Doc } from '@blocksuite/store'; +import type { Blocks } from '@blocksuite/store'; import { css, html, nothing, type TemplateResult } from 'lit'; import { property, state } from 'lit/decorators.js'; import { guard } from 'lit/directives/guard.js'; @@ -85,7 +85,7 @@ export class EdgelessEditor extends SignalWatcher( } @property({ attribute: false }) - accessor doc!: Doc; + accessor doc!: Blocks; @property({ attribute: false }) accessor editor!: TemplateResult; diff --git a/blocksuite/presets/src/editors/editor-container.ts b/blocksuite/presets/src/editors/editor-container.ts index e3fc77f4fe3a2..3d5b49da80576 100644 --- a/blocksuite/presets/src/editors/editor-container.ts +++ b/blocksuite/presets/src/editors/editor-container.ts @@ -11,7 +11,7 @@ import { ThemeProvider, } from '@blocksuite/blocks'; import { SignalWatcher, Slot, WithDisposable } from '@blocksuite/global/utils'; -import type { BlockModel, Doc } from '@blocksuite/store'; +import type { BlockModel, Blocks } from '@blocksuite/store'; import { computed, signal } from '@preact/signals-core'; import { css, html } from 'lit'; import { property } from 'lit/decorators.js'; @@ -88,7 +88,7 @@ export class AffineEditorContainer } `; - private readonly _doc = signal(); + private readonly _doc = signal(); private readonly _edgelessSpecs = signal( EdgelessEditorBlockSpecs @@ -123,10 +123,10 @@ export class AffineEditorContainer }; get doc() { - return this._doc.value as Doc; + return this._doc.value as Blocks; } - set doc(doc: Doc) { + set doc(doc: Blocks) { this._doc.value = doc; } diff --git a/blocksuite/presets/src/editors/page-editor.ts b/blocksuite/presets/src/editors/page-editor.ts index ab4bf3c476a3b..7177d9cc9a2a8 100644 --- a/blocksuite/presets/src/editors/page-editor.ts +++ b/blocksuite/presets/src/editors/page-editor.ts @@ -5,7 +5,7 @@ import { } from '@blocksuite/block-std'; import { PageEditorBlockSpecs, ThemeProvider } from '@blocksuite/blocks'; import { noop, SignalWatcher, WithDisposable } from '@blocksuite/global/utils'; -import type { Doc } from '@blocksuite/store'; +import type { Blocks } from '@blocksuite/store'; import { css, html, nothing } from 'lit'; import { property, state } from 'lit/decorators.js'; import { guard } from 'lit/directives/guard.js'; @@ -101,7 +101,7 @@ export class PageEditor extends SignalWatcher( } @property({ attribute: false }) - accessor doc!: Doc; + accessor doc!: Blocks; @property({ type: Boolean }) accessor hasViewport = true; diff --git a/blocksuite/presets/src/fragments/doc-title/doc-title.ts b/blocksuite/presets/src/fragments/doc-title/doc-title.ts index 6864705f79f66..c5114ad43c8c8 100644 --- a/blocksuite/presets/src/fragments/doc-title/doc-title.ts +++ b/blocksuite/presets/src/fragments/doc-title/doc-title.ts @@ -2,7 +2,7 @@ import type { EditorHost } from '@blocksuite/block-std'; import { ShadowlessElement } from '@blocksuite/block-std'; import type { RichText, RootBlockModel } from '@blocksuite/blocks'; import { assertExists, WithDisposable } from '@blocksuite/global/utils'; -import type { Doc } from '@blocksuite/store'; +import type { Blocks } from '@blocksuite/store'; import { css, html } from 'lit'; import { property, query, state } from 'lit/decorators.js'; @@ -178,7 +178,7 @@ export class DocTitle extends WithDisposable(ShadowlessElement) { private accessor _richTextElement!: RichText; @property({ attribute: false }) - accessor doc!: Doc; + accessor doc!: Blocks; } export function getDocTitleByEditorHost( diff --git a/blocksuite/presets/src/fragments/frame-panel/body/frame-panel-body.ts b/blocksuite/presets/src/fragments/frame-panel/body/frame-panel-body.ts index 92595a2cd1a34..4b132f1943fdd 100644 --- a/blocksuite/presets/src/fragments/frame-panel/body/frame-panel-body.ts +++ b/blocksuite/presets/src/fragments/frame-panel/body/frame-panel-body.ts @@ -13,7 +13,7 @@ import { SignalWatcher, WithDisposable, } from '@blocksuite/global/utils'; -import type { Doc } from '@blocksuite/store'; +import type { Blocks } from '@blocksuite/store'; import { css, html, nothing, type PropertyValues } from 'lit'; import { property, query, state } from 'lit/decorators.js'; import { keyed } from 'lit/directives/keyed.js'; @@ -326,7 +326,7 @@ export class FramePanelBody extends SignalWatcher( } } - private _setDocDisposables(doc: Doc) { + private _setDocDisposables(doc: Blocks) { this._clearDocDisposables(); this._docDisposables = new DisposableGroup(); this._docDisposables.add( diff --git a/blocksuite/presets/src/fragments/outline/body/outline-panel-body.ts b/blocksuite/presets/src/fragments/outline/body/outline-panel-body.ts index c04c62bad14a7..2662f1bb559ee 100644 --- a/blocksuite/presets/src/fragments/outline/body/outline-panel-body.ts +++ b/blocksuite/presets/src/fragments/outline/body/outline-panel-body.ts @@ -13,7 +13,7 @@ import { SignalWatcher, WithDisposable, } from '@blocksuite/global/utils'; -import type { Doc } from '@blocksuite/store'; +import type { Blocks } from '@blocksuite/store'; import { effect, signal } from '@preact/signals-core'; import { css, html, LitElement, nothing, type PropertyValues } from 'lit'; import { property, query, state } from 'lit/decorators.js'; @@ -698,7 +698,7 @@ export class OutlinePanelBody extends SignalWatcher( private accessor _selected: string[] = []; @property({ attribute: false }) - accessor doc!: Doc; + accessor doc!: Blocks; @property({ attribute: false }) accessor domHost!: Document | HTMLElement; diff --git a/blocksuite/presets/src/fragments/outline/card/outline-card.ts b/blocksuite/presets/src/fragments/outline/card/outline-card.ts index 88961eb378860..234f3a7e698cf 100644 --- a/blocksuite/presets/src/fragments/outline/card/outline-card.ts +++ b/blocksuite/presets/src/fragments/outline/card/outline-card.ts @@ -7,7 +7,7 @@ import { once, } from '@blocksuite/blocks'; import { SignalWatcher, WithDisposable } from '@blocksuite/global/utils'; -import type { BlockModel, Doc } from '@blocksuite/store'; +import type { BlockModel, Blocks } from '@blocksuite/store'; import { baseTheme } from '@toeverything/theme'; import { css, html, LitElement, nothing, unsafeCSS } from 'lit'; import { property, query, state } from 'lit/decorators.js'; @@ -395,7 +395,7 @@ export class OutlineNoteCard extends SignalWatcher(WithDisposable(LitElement)) { accessor activeHeadingId: string | null = null; @property({ attribute: false }) - accessor doc!: Doc; + accessor doc!: Blocks; @property({ attribute: false }) accessor editorMode: 'page' | 'edgeless' = 'page'; diff --git a/blocksuite/presets/src/fragments/outline/utils/drag.ts b/blocksuite/presets/src/fragments/outline/utils/drag.ts index 14595cd5341de..f442e75fb977c 100644 --- a/blocksuite/presets/src/fragments/outline/utils/drag.ts +++ b/blocksuite/presets/src/fragments/outline/utils/drag.ts @@ -1,5 +1,5 @@ import { on, once } from '@blocksuite/blocks'; -import type { Doc } from '@blocksuite/store'; +import type { Blocks } from '@blocksuite/store'; import type { OutlinePanelBody } from '../body/outline-panel-body.js'; import type { OutlineNoteCard } from '../card/outline-card.js'; @@ -15,7 +15,7 @@ export function startDragging(options: { document: Document; host: Document | HTMLElement; container: OutlinePanelBody; - doc: Doc; + doc: Blocks; }) { const { document, diff --git a/blocksuite/presets/src/fragments/outline/utils/query.ts b/blocksuite/presets/src/fragments/outline/utils/query.ts index 23bec22767bdb..aa9289ac78206 100644 --- a/blocksuite/presets/src/fragments/outline/utils/query.ts +++ b/blocksuite/presets/src/fragments/outline/utils/query.ts @@ -5,7 +5,7 @@ import { type ParagraphBlockModel, type RootBlockModel, } from '@blocksuite/blocks'; -import type { BlockModel, Doc } from '@blocksuite/store'; +import type { BlockModel, Blocks } from '@blocksuite/store'; import { headingKeys } from '../config.js'; @@ -22,7 +22,7 @@ type OutlineNoteItem = { }; export function getNotesFromDoc( - doc: Doc, + doc: Blocks, modes: NoteDisplayMode[] ): OutlineNoteItem[] { const rootModel = doc.root; @@ -74,7 +74,7 @@ export function getHeadingBlocksFromNote( } export function getHeadingBlocksFromDoc( - doc: Doc, + doc: Blocks, modes: NoteDisplayMode[], ignoreEmpty = false ) { diff --git a/packages/frontend/core/src/blocksuite/initialization/index.ts b/packages/frontend/core/src/blocksuite/initialization/index.ts index 09137f464024f..f04549d2ff346 100644 --- a/packages/frontend/core/src/blocksuite/initialization/index.ts +++ b/packages/frontend/core/src/blocksuite/initialization/index.ts @@ -5,7 +5,7 @@ import { type ParagraphProps, type RootBlockProps, } from '@blocksuite/affine/blocks'; -import { type Doc, Text } from '@blocksuite/affine/store'; +import { type Blocks, Text } from '@blocksuite/affine/store'; export interface DocProps { page?: Partial; @@ -14,7 +14,7 @@ export interface DocProps { paragraph?: Partial; } -export function initEmptyDoc(doc: Doc, title?: string) { +export function initEmptyDoc(doc: Blocks, title?: string) { doc.load(() => { initDocFromProps(doc, { page: { @@ -24,7 +24,7 @@ export function initEmptyDoc(doc: Doc, title?: string) { }); } -export function initDocFromProps(doc: Doc, props?: DocProps) { +export function initDocFromProps(doc: Blocks, props?: DocProps) { doc.load(() => { const pageBlockId = doc.addBlock( 'affine:page', diff --git a/packages/frontend/core/src/blocksuite/presets/_common/components/text-renderer.ts b/packages/frontend/core/src/blocksuite/presets/_common/components/text-renderer.ts index 8eb91464c479f..3d3ab28eeadde 100644 --- a/packages/frontend/core/src/blocksuite/presets/_common/components/text-renderer.ts +++ b/packages/frontend/core/src/blocksuite/presets/_common/components/text-renderer.ts @@ -20,8 +20,8 @@ import { import { Container, type ServiceProvider } from '@blocksuite/affine/global/di'; import { WithDisposable } from '@blocksuite/affine/global/utils'; import { + type Blocks, BlockViewType, - type Doc, type JobMiddleware, type Query, type Schema, @@ -174,7 +174,7 @@ export class TextRenderer extends WithDisposable(ShadowlessElement) { } }; - private _doc: Doc | null = null; + private _doc: Blocks | null = null; private readonly _query: Query = { mode: 'strict', diff --git a/packages/frontend/core/src/blocksuite/presets/_common/utils/markdown-utils.ts b/packages/frontend/core/src/blocksuite/presets/_common/utils/markdown-utils.ts index 2785575a0f461..df01db3bd1bc0 100644 --- a/packages/frontend/core/src/blocksuite/presets/_common/utils/markdown-utils.ts +++ b/packages/frontend/core/src/blocksuite/presets/_common/utils/markdown-utils.ts @@ -17,8 +17,8 @@ import type { ServiceProvider } from '@blocksuite/affine/global/di'; import { assertExists } from '@blocksuite/affine/global/utils'; import type { BlockModel, + Blocks, BlockSnapshot, - Doc, DraftModel, JobMiddleware, Schema, @@ -166,7 +166,7 @@ export const markdownToSnapshot = async ( export async function insertFromMarkdown( host: EditorHost, markdown: string, - doc: Doc, + doc: Blocks, parent?: string, index?: number ) { @@ -235,5 +235,5 @@ export async function markDownToDoc( if (!doc) { console.error('Failed to convert markdown to doc'); } - return doc as Doc; + return doc as Blocks; } diff --git a/packages/frontend/core/src/blocksuite/presets/ai/_common/chat-actions-handle.ts b/packages/frontend/core/src/blocksuite/presets/ai/_common/chat-actions-handle.ts index cedaf2da53cd7..38e13e5471d38 100644 --- a/packages/frontend/core/src/blocksuite/presets/ai/_common/chat-actions-handle.ts +++ b/packages/frontend/core/src/blocksuite/presets/ai/_common/chat-actions-handle.ts @@ -24,7 +24,7 @@ import { getCommonBoundWithRotation, type SerializedXYWH, } from '@blocksuite/affine/global/utils'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import type { TemplateResult } from 'lit'; import type { ChatMessage } from '../../../blocks'; @@ -101,7 +101,7 @@ export function constructUserInfoWithMessages( } export async function constructRootChatBlockMessages( - doc: Doc, + doc: Blocks, forkSessionId: string ) { // Convert chat messages to AI chat block messages diff --git a/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/index.ts b/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/index.ts index e5df8998c9d4b..a4943a1fa2c43 100644 --- a/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/index.ts +++ b/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/index.ts @@ -5,7 +5,7 @@ import type { EditorHost } from '@blocksuite/affine/block-std'; import { ShadowlessElement } from '@blocksuite/affine/block-std'; import { NotificationProvider } from '@blocksuite/affine/blocks'; import { debounce, WithDisposable } from '@blocksuite/affine/global/utils'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { css, html, type PropertyValues } from 'lit'; import { property, state } from 'lit/decorators.js'; import { createRef, type Ref, ref } from 'lit/directives/ref.js'; @@ -141,7 +141,7 @@ export class ChatPanel extends WithDisposable(ShadowlessElement) { accessor host!: EditorHost; @property({ attribute: false }) - accessor doc!: Doc; + accessor doc!: Blocks; @state() accessor isLoading = false; diff --git a/packages/frontend/core/src/blocksuite/presets/ai/messages/slides-renderer.ts b/packages/frontend/core/src/blocksuite/presets/ai/messages/slides-renderer.ts index 815ebfff2026d..62ce944713c04 100644 --- a/packages/frontend/core/src/blocksuite/presets/ai/messages/slides-renderer.ts +++ b/packages/frontend/core/src/blocksuite/presets/ai/messages/slides-renderer.ts @@ -6,7 +6,7 @@ import { } from '@blocksuite/affine/blocks'; import { AffineSchemas } from '@blocksuite/affine/blocks/schemas'; import { WithDisposable } from '@blocksuite/affine/global/utils'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { Schema } from '@blocksuite/affine/store'; import { css, html, LitElement, nothing } from 'lit'; import { property, query } from 'lit/decorators.js'; @@ -53,7 +53,7 @@ export class AISlidesRenderer extends WithDisposable(LitElement) { private readonly _editorContainer: Ref = createRef(); - private _doc!: Doc; + private _doc!: Blocks; private _docCollection: WorkspaceImpl | null = null; diff --git a/packages/frontend/core/src/blocksuite/presets/ai/mini-mindmap/mindmap-preview.ts b/packages/frontend/core/src/blocksuite/presets/ai/mini-mindmap/mindmap-preview.ts index 676baa4f4817a..ba941b033194d 100644 --- a/packages/frontend/core/src/blocksuite/presets/ai/mini-mindmap/mindmap-preview.ts +++ b/packages/frontend/core/src/blocksuite/presets/ai/mini-mindmap/mindmap-preview.ts @@ -12,7 +12,7 @@ import { } from '@blocksuite/affine/blocks'; import type { ServiceProvider } from '@blocksuite/affine/global/di'; import { WithDisposable } from '@blocksuite/affine/global/utils'; -import { type Doc, Job, Schema } from '@blocksuite/affine/store'; +import { type Blocks, Job, Schema } from '@blocksuite/affine/store'; import { css, html, LitElement, nothing } from 'lit'; import { property, query } from 'lit/decorators.js'; import { repeat } from 'lit/directives/repeat.js'; @@ -79,7 +79,7 @@ export class MiniMindmapPreview extends WithDisposable(LitElement) { } `; - doc?: Doc; + doc?: Blocks; mindmapId?: string; @@ -131,7 +131,7 @@ export class MiniMindmapPreview extends WithDisposable(LitElement) { this.requestUpdate(); } - private _toMindmapNode(answer: string, doc: Doc) { + private _toMindmapNode(answer: string, doc: Blocks) { return markdownToMindmap(answer, doc, this.host.std.provider); } @@ -234,7 +234,7 @@ type Node = { export const markdownToMindmap = ( answer: string, - doc: Doc, + doc: Blocks, provider: ServiceProvider ) => { let result: Node | null = null; diff --git a/packages/frontend/core/src/components/affine/page-history-modal/history-modal.tsx b/packages/frontend/core/src/components/affine/page-history-modal/history-modal.tsx index 911eb013e7921..5366ff099afca 100644 --- a/packages/frontend/core/src/components/affine/page-history-modal/history-modal.tsx +++ b/packages/frontend/core/src/components/affine/page-history-modal/history-modal.tsx @@ -11,7 +11,10 @@ import { WorkspaceService } from '@affine/core/modules/workspace'; import { i18nTime, Trans, useI18n } from '@affine/i18n'; import { track } from '@affine/track'; import type { DocMode } from '@blocksuite/affine/blocks'; -import type { Doc as BlockSuiteDoc, Workspace } from '@blocksuite/affine/store'; +import type { + Blocks as BlockSuiteDoc, + Workspace, +} from '@blocksuite/affine/store'; import { CloseIcon, ToggleCollapseIcon } from '@blocksuite/icons/rc'; import * as Collapsible from '@radix-ui/react-collapsible'; import type { DialogContentProps } from '@radix-ui/react-dialog'; diff --git a/packages/frontend/core/src/components/affine/share-page-modal/index.tsx b/packages/frontend/core/src/components/affine/share-page-modal/index.tsx index b4d5947245424..7e73a7dc84bcc 100644 --- a/packages/frontend/core/src/components/affine/share-page-modal/index.tsx +++ b/packages/frontend/core/src/components/affine/share-page-modal/index.tsx @@ -1,14 +1,14 @@ import { useEnableCloud } from '@affine/core/components/hooks/affine/use-enable-cloud'; import type { Workspace } from '@affine/core/modules/workspace'; import { track } from '@affine/track'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { useCallback } from 'react'; import { ShareMenu } from './share-menu'; type SharePageModalProps = { workspace: Workspace; - page: Doc; + page: Blocks; }; export const SharePageButton = ({ workspace, page }: SharePageModalProps) => { diff --git a/packages/frontend/core/src/components/affine/share-page-modal/share-menu/share-menu.tsx b/packages/frontend/core/src/components/affine/share-page-modal/share-menu/share-menu.tsx index a9e0076f49b95..7084bd81b1b96 100644 --- a/packages/frontend/core/src/components/affine/share-page-modal/share-menu/share-menu.tsx +++ b/packages/frontend/core/src/components/affine/share-page-modal/share-menu/share-menu.tsx @@ -4,7 +4,7 @@ import { Menu } from '@affine/component/ui/menu'; import { ShareInfoService } from '@affine/core/modules/share-doc'; import type { WorkspaceMetadata } from '@affine/core/modules/workspace'; import { useI18n } from '@affine/i18n'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { LockIcon, PublishIcon } from '@blocksuite/icons/rc'; import { useLiveData, useService } from '@toeverything/infra'; import { forwardRef, type PropsWithChildren, type Ref, useEffect } from 'react'; @@ -15,7 +15,7 @@ import { SharePage } from './share-page'; export interface ShareMenuProps extends PropsWithChildren { workspaceMetadata: WorkspaceMetadata; - currentPage: Doc; + currentPage: Blocks; onEnableAffineCloud: () => void; onOpenShareModal?: (open: boolean) => void; } diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-editor/blocksuite-editor-container.tsx b/packages/frontend/core/src/components/blocksuite/block-suite-editor/blocksuite-editor-container.tsx index 62444eb3703c1..60e49b2c69e39 100644 --- a/packages/frontend/core/src/components/blocksuite/block-suite-editor/blocksuite-editor-container.tsx +++ b/packages/frontend/core/src/components/blocksuite/block-suite-editor/blocksuite-editor-container.tsx @@ -10,7 +10,7 @@ import type { EdgelessEditor, PageEditor, } from '@blocksuite/affine/presets'; -import { type BlockModel, type Doc } from '@blocksuite/affine/store'; +import { type BlockModel, type Blocks } from '@blocksuite/affine/store'; import clsx from 'clsx'; import type React from 'react'; import { @@ -27,7 +27,7 @@ import { BlocksuiteDocEditor, BlocksuiteEdgelessEditor } from './lit-adaper'; import * as styles from './styles.css'; interface BlocksuiteEditorContainerProps { - page: Doc; + page: Blocks; mode: DocMode; shared?: boolean; className?: string; @@ -191,7 +191,7 @@ export const BlocksuiteEditorContainer = forwardRef< }); // copy from '@blocksuite/affine-shared/utils' -export function getLastNoteBlock(doc: Doc) { +export function getLastNoteBlock(doc: Blocks) { let note: NoteBlockModel | null = null; if (!doc.root) return null; const { children } = doc.root; diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-editor/blocksuite-editor.tsx b/packages/frontend/core/src/components/blocksuite/block-suite-editor/blocksuite-editor.tsx index f1bee9bc21b74..89ceb70edfe79 100644 --- a/packages/frontend/core/src/components/blocksuite/block-suite-editor/blocksuite-editor.tsx +++ b/packages/frontend/core/src/components/blocksuite/block-suite-editor/blocksuite-editor.tsx @@ -11,7 +11,7 @@ import { } from '@blocksuite/affine/blocks'; import { DisposableGroup } from '@blocksuite/affine/global/utils'; import type { AffineEditorContainer } from '@blocksuite/affine/presets'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import type { CSSProperties } from 'react'; import { useEffect, useState } from 'react'; @@ -20,7 +20,7 @@ import { BlocksuiteEditorContainer } from './blocksuite-editor-container'; import { NoPageRootError } from './no-page-error'; export type EditorProps = { - page: Doc; + page: Blocks; mode: DocMode; shared?: boolean; defaultOpenProperty?: DefaultOpenProperty; diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-editor/journal-doc-title.tsx b/packages/frontend/core/src/components/blocksuite/block-suite-editor/journal-doc-title.tsx index eb6d3a69f9972..0c8a86449c9d3 100644 --- a/packages/frontend/core/src/components/blocksuite/block-suite-editor/journal-doc-title.tsx +++ b/packages/frontend/core/src/components/blocksuite/block-suite-editor/journal-doc-title.tsx @@ -1,12 +1,12 @@ import { JournalService } from '@affine/core/modules/journal'; import { i18nTime, useI18n } from '@affine/i18n'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { useLiveData, useService } from '@toeverything/infra'; import dayjs from 'dayjs'; import * as styles from './styles.css'; -export const BlocksuiteEditorJournalDocTitle = ({ page }: { page: Doc }) => { +export const BlocksuiteEditorJournalDocTitle = ({ page }: { page: Blocks }) => { const journalService = useService(JournalService); const journalDateStr = useLiveData(journalService.journalDate$(page.id)); const journalDate = journalDateStr ? dayjs(journalDateStr) : null; diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-editor/lit-adaper.tsx b/packages/frontend/core/src/components/blocksuite/block-suite-editor/lit-adaper.tsx index 0da7345fdfd93..244a8a9b3f09f 100644 --- a/packages/frontend/core/src/components/blocksuite/block-suite-editor/lit-adaper.tsx +++ b/packages/frontend/core/src/components/blocksuite/block-suite-editor/lit-adaper.tsx @@ -23,7 +23,7 @@ import { EdgelessEditor, PageEditor, } from '@blocksuite/affine/presets'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { useFramework, useLiveData, @@ -85,7 +85,7 @@ const adapted = { }; interface BlocksuiteEditorProps { - page: Doc; + page: Blocks; shared?: boolean; defaultOpenProperty?: DefaultOpenProperty; } diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-editor/no-page-error.ts b/packages/frontend/core/src/components/blocksuite/block-suite-editor/no-page-error.ts index 8c63dfc37d8fa..0724a18794173 100644 --- a/packages/frontend/core/src/components/blocksuite/block-suite-editor/no-page-error.ts +++ b/packages/frontend/core/src/components/blocksuite/block-suite-editor/no-page-error.ts @@ -1,11 +1,11 @@ -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import type { Map as YMap } from 'yjs'; /** * TODO(@eyhn): Define error to unexpected state together in the future. */ export class NoPageRootError extends Error { - constructor(public page: Doc) { + constructor(public page: Blocks) { super('Page root not found when render editor!'); // Log info to let sentry collect more message diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-header/journal/date-picker.tsx b/packages/frontend/core/src/components/blocksuite/block-suite-header/journal/date-picker.tsx index 0a060c61dc2de..e2cbd9c73fd8f 100644 --- a/packages/frontend/core/src/components/blocksuite/block-suite-header/journal/date-picker.tsx +++ b/packages/frontend/core/src/components/blocksuite/block-suite-header/journal/date-picker.tsx @@ -2,13 +2,13 @@ import type { WeekDatePickerHandle } from '@affine/component'; import { WeekDatePicker } from '@affine/component'; import { useJournalRouteHelper } from '@affine/core/components/hooks/use-journal'; import { JournalService } from '@affine/core/modules/journal'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { useLiveData, useService } from '@toeverything/infra'; import dayjs from 'dayjs'; import { useEffect, useRef, useState } from 'react'; export interface JournalWeekDatePickerProps { - page: Doc; + page: Blocks; } const weekStyle = { maxWidth: 800, width: '100%' }; diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-header/menu/index.tsx b/packages/frontend/core/src/components/blocksuite/block-suite-header/menu/index.tsx index 7df4bef2b0f14..df4b7198dafc4 100644 --- a/packages/frontend/core/src/components/blocksuite/block-suite-header/menu/index.tsx +++ b/packages/frontend/core/src/components/blocksuite/block-suite-header/menu/index.tsx @@ -22,7 +22,7 @@ import { ViewService } from '@affine/core/modules/workbench/services/view'; import { WorkspaceService } from '@affine/core/modules/workspace'; import { useI18n } from '@affine/i18n'; import { track } from '@affine/track'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { DuplicateIcon, EdgelessIcon, @@ -52,7 +52,7 @@ import { HistoryTipsModal } from './history-tips-modal'; type PageMenuProps = { rename?: () => void; - page: Doc; + page: Blocks; isJournal?: boolean; containerWidth: number; }; diff --git a/packages/frontend/core/src/components/hooks/affine/use-export-page.ts b/packages/frontend/core/src/components/hooks/affine/use-export-page.ts index c1b5c507d84b6..56c6e2accb622 100644 --- a/packages/frontend/core/src/components/hooks/affine/use-export-page.ts +++ b/packages/frontend/core/src/components/hooks/affine/use-export-page.ts @@ -22,7 +22,7 @@ import { ZipTransformer, } from '@blocksuite/affine/blocks'; import type { AffineEditorContainer } from '@blocksuite/affine/presets'; -import { type Doc, Job } from '@blocksuite/affine/store'; +import { type Blocks, Job } from '@blocksuite/affine/store'; import { useLiveData, useService } from '@toeverything/infra'; import { useSetAtom } from 'jotai'; import { nanoid } from 'nanoid'; @@ -32,7 +32,7 @@ import { useAsyncCallback } from '../affine-async-hooks'; type ExportType = 'pdf' | 'html' | 'png' | 'markdown' | 'snapshot'; interface ExportHandlerOptions { - page: Doc; + page: Blocks; editorContainer: AffineEditorContainer; type: ExportType; } @@ -53,7 +53,11 @@ interface AdapterConfig { indexFileName: string; } -async function exportDoc(doc: Doc, std: BlockStdScope, config: AdapterConfig) { +async function exportDoc( + doc: Blocks, + std: BlockStdScope, + config: AdapterConfig +) { const job = new Job({ schema: doc.collection.schema, blobCRUD: doc.collection.blobSync, @@ -99,7 +103,7 @@ async function exportDoc(doc: Doc, std: BlockStdScope, config: AdapterConfig) { download(downloadBlob, name); } -async function exportToHtml(doc: Doc, std?: BlockStdScope) { +async function exportToHtml(doc: Blocks, std?: BlockStdScope) { if (!std) { // If std is not provided, we use the default export method await HtmlTransformer.exportDoc(doc); @@ -113,7 +117,7 @@ async function exportToHtml(doc: Doc, std?: BlockStdScope) { } } -async function exportToMarkdown(doc: Doc, std?: BlockStdScope) { +async function exportToMarkdown(doc: Blocks, std?: BlockStdScope) { if (!std) { // If std is not provided, we use the default export method await MarkdownTransformer.exportDoc(doc); diff --git a/packages/frontend/core/src/components/hooks/use-block-suite-workspace-helper.ts b/packages/frontend/core/src/components/hooks/use-block-suite-workspace-helper.ts index 97bda794d46c8..60e0d5f821bea 100644 --- a/packages/frontend/core/src/components/hooks/use-block-suite-workspace-helper.ts +++ b/packages/frontend/core/src/components/hooks/use-block-suite-workspace-helper.ts @@ -1,10 +1,10 @@ -import type { Doc, Workspace } from '@blocksuite/affine/store'; +import type { Blocks, Workspace } from '@blocksuite/affine/store'; import { useMemo } from 'react'; export function useDocCollectionHelper(docCollection: Workspace) { return useMemo( () => ({ - createDoc: (pageId?: string): Doc => { + createDoc: (pageId?: string): Blocks => { return docCollection.createDoc({ id: pageId }); }, }), diff --git a/packages/frontend/core/src/components/hooks/use-block-suite-workspace-page.ts b/packages/frontend/core/src/components/hooks/use-block-suite-workspace-page.ts index 7b7b3292909f5..4d4336ca3a611 100644 --- a/packages/frontend/core/src/components/hooks/use-block-suite-workspace-page.ts +++ b/packages/frontend/core/src/components/hooks/use-block-suite-workspace-page.ts @@ -1,6 +1,6 @@ import { DebugLogger } from '@affine/debug'; import { DisposableGroup } from '@blocksuite/affine/global/utils'; -import type { Doc, Workspace } from '@blocksuite/affine/store'; +import type { Blocks, Workspace } from '@blocksuite/affine/store'; import { useEffect, useState } from 'react'; const logger = new DebugLogger('use-doc-collection-page'); @@ -8,7 +8,7 @@ const logger = new DebugLogger('use-doc-collection-page'); export function useDocCollectionPage( docCollection: Workspace, pageId: string | null -): Doc | null { +): Blocks | null { const [page, setPage] = useState( pageId ? docCollection.getDoc(pageId) : null ); diff --git a/packages/frontend/core/src/components/page-list/__tests__/use-block-suite-page-preview.spec.ts b/packages/frontend/core/src/components/page-list/__tests__/use-block-suite-page-preview.spec.ts index 0c1ee0f192ab0..12b6c27e79e47 100644 --- a/packages/frontend/core/src/components/page-list/__tests__/use-block-suite-page-preview.spec.ts +++ b/packages/frontend/core/src/components/page-list/__tests__/use-block-suite-page-preview.spec.ts @@ -5,7 +5,7 @@ import 'fake-indexeddb/auto'; import { AffineSchemas } from '@blocksuite/affine/blocks/schemas'; import { assertExists } from '@blocksuite/affine/global/utils'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { Schema } from '@blocksuite/store'; import { TestWorkspace } from '@blocksuite/store/test'; import { renderHook } from '@testing-library/react'; @@ -22,7 +22,7 @@ beforeEach(async () => { vi.useFakeTimers({ toFake: ['requestIdleCallback'] }); docCollection = new TestWorkspace({ id: 'test', schema }); docCollection.meta.initialize(); - const initPage = async (page: Doc) => { + const initPage = async (page: Blocks) => { page.load(); expect(page).not.toBeNull(); assertExists(page); @@ -37,7 +37,7 @@ beforeEach(async () => { describe('useBlockSuitePagePreview', () => { test('basic', async () => { - const page = docCollection.getDoc('page0') as Doc; + const page = docCollection.getDoc('page0') as Blocks; const id = page.addBlock( 'affine:paragraph', { diff --git a/packages/frontend/core/src/components/page-list/use-block-suite-page-preview.ts b/packages/frontend/core/src/components/page-list/use-block-suite-page-preview.ts index f5efc2edc3dd9..23877692b0cdf 100644 --- a/packages/frontend/core/src/components/page-list/use-block-suite-page-preview.ts +++ b/packages/frontend/core/src/components/page-list/use-block-suite-page-preview.ts @@ -1,13 +1,13 @@ -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import type { Atom } from 'jotai'; import { atom } from 'jotai'; const MAX_PREVIEW_LENGTH = 150; const MAX_SEARCH_BLOCK_COUNT = 30; -const weakMap = new WeakMap>(); +const weakMap = new WeakMap>(); -export const getPagePreviewText = (page: Doc) => { +export const getPagePreviewText = (page: Blocks) => { const pageRoot = page.root; if (!pageRoot) { return ''; @@ -60,7 +60,7 @@ export const getPagePreviewText = (page: Doc) => { const emptyAtom = atom(''); -export function useBlockSuitePagePreview(page: Doc | null): Atom { +export function useBlockSuitePagePreview(page: Blocks | null): Atom { if (page === null) { return emptyAtom; } else if (weakMap.has(page)) { diff --git a/packages/frontend/core/src/components/page-list/use-block-suite-workspace-page.ts b/packages/frontend/core/src/components/page-list/use-block-suite-workspace-page.ts index 5f615d1378ad1..03249e503638c 100644 --- a/packages/frontend/core/src/components/page-list/use-block-suite-workspace-page.ts +++ b/packages/frontend/core/src/components/page-list/use-block-suite-workspace-page.ts @@ -1,6 +1,6 @@ import { DebugLogger } from '@affine/debug'; import { DisposableGroup } from '@blocksuite/affine/global/utils'; -import type { Doc, Workspace } from '@blocksuite/affine/store'; +import type { Blocks, Workspace } from '@blocksuite/affine/store'; import { useEffect, useState } from 'react'; const logger = new DebugLogger('useBlockSuiteWorkspacePage'); @@ -8,7 +8,7 @@ const logger = new DebugLogger('useBlockSuiteWorkspacePage'); export function useDocCollectionPage( docCollection: Workspace, pageId: string | null -): Doc | null { +): Blocks | null { const [page, setPage] = useState( pageId ? docCollection.getDoc(pageId) : null ); diff --git a/packages/frontend/core/src/components/root-app-sidebar/index.tsx b/packages/frontend/core/src/components/root-app-sidebar/index.tsx index b984b973cfb4e..6246e7eb0f2ff 100644 --- a/packages/frontend/core/src/components/root-app-sidebar/index.tsx +++ b/packages/frontend/core/src/components/root-app-sidebar/index.tsx @@ -25,7 +25,7 @@ import { CMDKQuickSearchService } from '@affine/core/modules/quicksearch/service import type { Workspace } from '@affine/core/modules/workspace'; import { useI18n } from '@affine/i18n'; import { track } from '@affine/track'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { AllDocsIcon, GithubIcon, @@ -56,7 +56,7 @@ export type RootAppSidebarProps = { onOpenSettingModal: () => void; currentWorkspace: Workspace; openPage: (pageId: string) => void; - createPage: () => Doc; + createPage: () => Blocks; paths: { all: (workspaceId: string) => string; trash: (workspaceId: string) => string; diff --git a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/connector.tsx b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/connector.tsx index 61a0e3d0a91a5..65d2c5d2577f3 100644 --- a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/connector.tsx +++ b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/connector.tsx @@ -19,7 +19,7 @@ import { StrokeStyle, TextAlign, } from '@blocksuite/affine/blocks'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { useFramework, useLiveData } from '@toeverything/infra'; import { isEqual } from 'lodash-es'; import { useCallback, useMemo } from 'react'; @@ -357,7 +357,7 @@ export const ConnectorSettings = () => { return getCurrentTextColor(color); }, [getCurrentTextColor, settings]); - const getElements = useCallback((doc: Doc) => { + const getElements = useCallback((doc: Blocks) => { const surface = getSurfaceBlock(doc); return surface?.getElementsByType('connector') || []; }, []); diff --git a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/docs/index.ts b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/docs/index.ts index a1476043c2bd3..aed99bcbd1b37 100644 --- a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/docs/index.ts +++ b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/docs/index.ts @@ -1,6 +1,6 @@ import { WorkspaceImpl } from '@affine/core/modules/workspace/impl/workspace'; import { AffineSchemas } from '@blocksuite/affine/blocks'; -import type { Doc, DocSnapshot } from '@blocksuite/affine/store'; +import type { Blocks, DocSnapshot } from '@blocksuite/affine/store'; import { Job, Schema } from '@blocksuite/affine/store'; const getCollection = (() => { @@ -26,7 +26,7 @@ export type DocName = | 'connector' | 'mindmap'; -const docMap = new Map>(); +const docMap = new Map>(); async function loadNote() { return (await import('./note.json')).default; diff --git a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/mind-map.tsx b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/mind-map.tsx index 675569865f8f3..8d831db3c31b9 100644 --- a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/mind-map.tsx +++ b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/mind-map.tsx @@ -8,7 +8,7 @@ import { SettingRow } from '@affine/component/setting-components'; import { EditorSettingService } from '@affine/core/modules/editor-setting'; import { useI18n } from '@affine/i18n'; import { LayoutType, MindmapStyle } from '@blocksuite/affine/blocks'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { useFramework, useLiveData } from '@toeverything/infra'; import { useCallback, useMemo } from 'react'; @@ -93,7 +93,7 @@ export const MindMapSettings = () => { }); }, [editorSetting, settings]); - const getElements = useCallback((doc: Doc) => { + const getElements = useCallback((doc: Blocks) => { const surface = getSurfaceBlock(doc); return surface?.getElementsByType('mindmap') || []; }, []); diff --git a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/note.tsx b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/note.tsx index 5d483662320cc..a7c242969771f 100644 --- a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/note.tsx +++ b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/note.tsx @@ -15,7 +15,7 @@ import { NoteShadowMap, StrokeStyle, } from '@blocksuite/affine/blocks'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { useFramework, useLiveData } from '@toeverything/infra'; import { isEqual } from 'lodash-es'; import { useCallback, useMemo } from 'react'; @@ -170,7 +170,7 @@ export const NoteSettings = () => { return getCurrentColor(background); }, [getCurrentColor, settings]); - const getElements = useCallback((doc: Doc) => { + const getElements = useCallback((doc: Blocks) => { return doc.getBlocksByFlavour('affine:note') || []; }, []); diff --git a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/pen.tsx b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/pen.tsx index 26bed7789fefc..10de31438af80 100644 --- a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/pen.tsx +++ b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/pen.tsx @@ -3,7 +3,7 @@ import { SettingRow } from '@affine/component/setting-components'; import { EditorSettingService } from '@affine/core/modules/editor-setting'; import { useI18n } from '@affine/i18n'; import { DefaultTheme } from '@blocksuite/affine/blocks'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { useFramework, useLiveData } from '@toeverything/infra'; import { isEqual } from 'lodash-es'; import { useCallback, useMemo } from 'react'; @@ -59,7 +59,7 @@ export const PenSettings = () => { [editorSetting] ); - const getElements = useCallback((doc: Doc) => { + const getElements = useCallback((doc: Blocks) => { const surface = getSurfaceBlock(doc); return surface?.getElementsByType('brush') || []; }, []); diff --git a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/shape.tsx b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/shape.tsx index 208dbabbfa40a..2611992f862e0 100644 --- a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/shape.tsx +++ b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/shape.tsx @@ -26,7 +26,7 @@ import { StrokeStyle, TextAlign, } from '@blocksuite/affine/blocks'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { useFramework, useLiveData } from '@toeverything/infra'; import { isEqual } from 'lodash-es'; import { useCallback, useMemo, useState } from 'react'; @@ -339,7 +339,7 @@ export const ShapeSettings = () => { }, [editorSetting, settings, currentShape, strokeColorPalettes]); const getElements = useCallback( - (doc: Doc) => { + (doc: Blocks) => { const surface = getSurfaceBlock(doc); if (!surface) return []; return surface.getElementsByType('shape').filter(node => { @@ -353,7 +353,7 @@ export const ShapeSettings = () => { ); const firstUpdate = useCallback( - (doc: Doc, editorHost: EditorHost) => { + (doc: Blocks, editorHost: EditorHost) => { const edgelessService = editorHost.std.getService( 'affine:page' ) as EdgelessRootService; diff --git a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/snapshot.tsx b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/snapshot.tsx index 1d67a46553d85..1fb61f0302613 100644 --- a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/snapshot.tsx +++ b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/snapshot.tsx @@ -19,7 +19,7 @@ import { ThemeExtensionIdentifier, } from '@blocksuite/affine/blocks'; import { Bound } from '@blocksuite/affine/global/utils'; -import type { Block, Doc } from '@blocksuite/affine/store'; +import type { Block, Blocks } from '@blocksuite/affine/store'; import { createSignalFromObservable } from '@blocksuite/affine-shared/utils'; import type { Container } from '@blocksuite/global/di'; import type { Signal } from '@preact/signals-core'; @@ -45,8 +45,8 @@ interface Props { docName: DocName; keyName: keyof EditorSettingSchema; height?: number; - getElements: (doc: Doc) => Array; - firstUpdate?: (doc: Doc, editorHost: EditorHost) => void; + getElements: (doc: Blocks) => Array; + firstUpdate?: (doc: Blocks, editorHost: EditorHost) => void; children?: React.ReactElement; } @@ -63,7 +63,7 @@ export const EdgelessSnapshot = (props: Props) => { children, } = props; const wrapperRef = useRef(null); - const docRef = useRef(null); + const docRef = useRef(null); const editorHostRef = useRef(null); const framework = useFramework(); const { editorSetting } = framework.get(EditorSettingService); diff --git a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/text.tsx b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/text.tsx index 25822454c4245..aec3ef9b3237d 100644 --- a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/text.tsx +++ b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/text.tsx @@ -15,7 +15,7 @@ import { FontWeightMap, TextAlign, } from '@blocksuite/affine/blocks'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { useFramework, useLiveData } from '@toeverything/infra'; import { isEqual } from 'lodash-es'; import { useCallback, useMemo } from 'react'; @@ -143,7 +143,7 @@ export const TextSettings = () => { return getCurrentColor(color); }, [getCurrentColor, settings]); - const getElements = useCallback((doc: Doc) => { + const getElements = useCallback((doc: Blocks) => { return doc.getBlocksByFlavour('affine:edgeless-text') || []; }, []); diff --git a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/utils.ts b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/utils.ts index 31ecf421759f3..ed76064458058 100644 --- a/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/utils.ts +++ b/packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/utils.ts @@ -1,13 +1,13 @@ import type { SurfaceBlockModel } from '@blocksuite/affine/block-std/gfx'; import type { FrameBlockModel } from '@blocksuite/affine/blocks'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; -export function getSurfaceBlock(doc: Doc) { +export function getSurfaceBlock(doc: Blocks) { const blocks = doc.getBlocksByFlavour('affine:surface'); return blocks.length !== 0 ? (blocks[0].model as SurfaceBlockModel) : null; } -export function getFrameBlock(doc: Doc) { +export function getFrameBlock(doc: Blocks) { const blocks = doc.getBlocksByFlavour('affine:frame'); return blocks.length !== 0 ? (blocks[0].model as FrameBlockModel) : null; } diff --git a/packages/frontend/core/src/desktop/pages/workspace/detail-page/detail-page-header.tsx b/packages/frontend/core/src/desktop/pages/workspace/detail-page/detail-page-header.tsx index c346dc38b34c5..436920b663380 100644 --- a/packages/frontend/core/src/desktop/pages/workspace/detail-page/detail-page-header.tsx +++ b/packages/frontend/core/src/desktop/pages/workspace/detail-page/detail-page-header.tsx @@ -24,7 +24,7 @@ import type { Workspace } from '@affine/core/modules/workspace'; import type { AffineDNDData } from '@affine/core/types/dnd'; import { useI18n } from '@affine/i18n'; import { track } from '@affine/track'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { useLiveData, useService } from '@toeverything/infra'; import { forwardRef, useCallback, useEffect, useRef, useState } from 'react'; @@ -49,7 +49,7 @@ const Header = forwardRef< Header.displayName = 'forwardRef(Header)'; interface PageHeaderProps { - page: Doc; + page: Blocks; workspace: Workspace; } export function JournalPageHeader({ page, workspace }: PageHeaderProps) { diff --git a/packages/frontend/core/src/modules/doc-info/utils.ts b/packages/frontend/core/src/modules/doc-info/utils.ts index 34e4705b49178..d38a2d0c8d101 100644 --- a/packages/frontend/core/src/modules/doc-info/utils.ts +++ b/packages/frontend/core/src/modules/doc-info/utils.ts @@ -1,7 +1,7 @@ import { DebugLogger } from '@affine/debug'; import { BlockStdScope } from '@blocksuite/affine/block-std'; import { PageEditorBlockSpecs } from '@blocksuite/affine/blocks'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { LiveData } from '@toeverything/infra'; import { useMemo } from 'react'; import { Observable } from 'rxjs'; @@ -42,7 +42,7 @@ export function signalToLiveData( } // todo(pengx17): use rc pool? -export function createBlockStdScope(doc: Doc) { +export function createBlockStdScope(doc: Blocks) { logger.debug('createBlockStdScope', doc.id); const std = new BlockStdScope({ doc, @@ -51,6 +51,6 @@ export function createBlockStdScope(doc: Doc) { return std; } -export function useBlockStdScope(doc: Doc) { +export function useBlockStdScope(doc: Blocks) { return useMemo(() => createBlockStdScope(doc), [doc]); } diff --git a/packages/frontend/core/src/modules/doc-info/views/database-properties/cells/rich-text.tsx b/packages/frontend/core/src/modules/doc-info/views/database-properties/cells/rich-text.tsx index 3dbaf5340b492..c4dc5104a56df 100644 --- a/packages/frontend/core/src/modules/doc-info/views/database-properties/cells/rich-text.tsx +++ b/packages/frontend/core/src/modules/doc-info/views/database-properties/cells/rich-text.tsx @@ -5,7 +5,7 @@ import { DefaultInlineManagerExtension, RichText, } from '@blocksuite/affine/blocks'; -import type { Doc } from '@blocksuite/affine/store'; +import type { Blocks } from '@blocksuite/affine/store'; import { TextIcon } from '@blocksuite/icons/rc'; import { type LiveData, useLiveData } from '@toeverything/infra'; import { type CSSProperties, useEffect, useRef, useState } from 'react'; @@ -23,7 +23,7 @@ const renderRichText = ({ }: { std: BlockStdScope; text: Y.Text; - doc: Doc; + doc: Blocks; }) => { const inlineManager = std.get(DefaultInlineManagerExtension.identifier); diff --git a/packages/frontend/core/src/modules/doc/scopes/doc.ts b/packages/frontend/core/src/modules/doc/scopes/doc.ts index ba8db10caf317..36812ad1e8054 100644 --- a/packages/frontend/core/src/modules/doc/scopes/doc.ts +++ b/packages/frontend/core/src/modules/doc/scopes/doc.ts @@ -1,4 +1,4 @@ -import type { Doc as BlockSuiteDoc } from '@blocksuite/affine/store'; +import type { Blocks as BlockSuiteDoc } from '@blocksuite/affine/store'; import { Scope } from '@toeverything/infra'; import type { DocRecord } from '../entities/record'; diff --git a/packages/frontend/core/src/modules/workspace/impl/workspace.ts b/packages/frontend/core/src/modules/workspace/impl/workspace.ts index 115e4550bf36a..ac71bcc97fd8e 100644 --- a/packages/frontend/core/src/modules/workspace/impl/workspace.ts +++ b/packages/frontend/core/src/modules/workspace/impl/workspace.ts @@ -7,9 +7,9 @@ import { NoopLogger, Slot } from '@blocksuite/affine/global/utils'; import { AwarenessStore, BlockCollection, + type Blocks, BlockSuiteDoc, type CreateDocOptions, - type Doc, DocCollectionMeta, type GetDocOptions, type IdGenerator, @@ -168,7 +168,7 @@ export class WorkspaceImpl implements Workspace { tags: [], }); this.slots.docCreated.emit(docId); - return this.getDoc(docId, { query, readonly }) as Doc; + return this.getDoc(docId, { query, readonly }) as Blocks; } dispose() { @@ -190,7 +190,7 @@ export class WorkspaceImpl implements Workspace { return space ?? null; } - getDoc(docId: string, options?: GetDocOptions): Doc | null { + getDoc(docId: string, options?: GetDocOptions): Blocks | null { const collection = this.getBlockCollection(docId); return collection?.getDoc(options) ?? null; }