feat(editor): merge store and blocks (#9591)

This commit is contained in:
Saul-Mirone
2025-01-08 13:01:19 +00:00
parent a0cba55a5b
commit 5842d45ab1
124 changed files with 362 additions and 414 deletions

View File

@@ -9,7 +9,7 @@ import {
} from '@blocksuite/affine-shared/adapters';
import type { BlockComponent, UIEventHandler } from '@blocksuite/block-std';
import { DisposableGroup } from '@blocksuite/global/utils';
import type { Blocks, BlockSnapshot } from '@blocksuite/store';
import type { BlockSnapshot, Store } from '@blocksuite/store';
import {
defaultImageProxyMiddleware,
@@ -99,7 +99,7 @@ export class PageClipboard {
onBlockSnapshotPaste = async (
snapshot: BlockSnapshot,
doc: Blocks,
doc: Store,
parent?: string,
index?: number
) => {

View File

@@ -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 { Blocks } from '@blocksuite/store';
import type { Store } 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!: Blocks;
accessor doc!: Store;
@property({ attribute: false })
accessor edgeless!: EdgelessRootBlockComponent;

View File

@@ -12,7 +12,7 @@ import {
DisposableGroup,
WithDisposable,
} from '@blocksuite/global/utils';
import { type Blocks, type Query, Store } from '@blocksuite/store';
import { type Query, type Store } 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: Blocks | null = null;
private _previewDoc: Store | null = null;
private readonly _previewSpec =
SpecProvider.getInstance().getSpec('edgeless:preview');
@@ -155,7 +155,6 @@ export class FramePreview extends WithDisposable(ShadowlessElement) {
private _renderSurfaceContent() {
if (!this._previewDoc || !this.frame) return nothing;
const { width, height } = this.frameViewportWH;
const store = new Store({ blocks: this._previewDoc });
const _previewSpec = this._previewSpec.value;
return html`<div
@@ -173,7 +172,7 @@ export class FramePreview extends WithDisposable(ShadowlessElement) {
})}
>
${new BlockStdScope({
store,
store: this._previewDoc,
extensions: _previewSpec,
}).render()}
</div>

View File

@@ -19,7 +19,7 @@ import {
type IVec,
type SerializedXYWH,
} from '@blocksuite/global/utils';
import type { Blocks } from '@blocksuite/store';
import type { Store } 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: Blocks,
doc: Store,
frame: FrameBlockModel,
fullyContained: boolean = true
) {
@@ -481,7 +481,7 @@ export function getNotesInFrameBound(
}
export function getBlocksInFrameBound(
doc: Blocks,
doc: Store,
model: FrameBlockModel,
fullyContained: boolean = true
) {

View File

@@ -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 Blocks, Text } from '@blocksuite/store';
import { type BlockModel, type Store, Text } from '@blocksuite/store';
import {
getElementProps,
@@ -14,11 +14,7 @@ import {
} from '../../../edgeless/utils/clone-utils.js';
import { isFrameBlock, isNoteBlock } from '../../../edgeless/utils/query.js';
function addBlocksToDoc(
targetDoc: Blocks,
model: BlockModel,
parentId: string
) {
function addBlocksToDoc(targetDoc: Store, model: BlockModel, parentId: string) {
// Add current block to linked doc
const blockProps = getBlockProps(model);
const newModelId = targetDoc.addBlock(
@@ -36,7 +32,7 @@ function addBlocksToDoc(
}
export function createLinkedDocFromNote(
doc: Blocks,
doc: Store,
note: NoteBlockModel,
docTitle?: string
) {