diff --git a/blocksuite/affine/block-paragraph/src/heading-icon.ts b/blocksuite/affine/block-paragraph/src/heading-icon.ts index bc805bf16b..3edc80369c 100644 --- a/blocksuite/affine/block-paragraph/src/heading-icon.ts +++ b/blocksuite/affine/block-paragraph/src/heading-icon.ts @@ -8,7 +8,7 @@ import { } from '@blocksuite/affine-components/icons'; import type { ParagraphBlockModel } from '@blocksuite/affine-model'; import { ShadowlessElement } from '@blocksuite/block-std'; -import { WithDisposable } from '@blocksuite/global/utils'; +import { SignalWatcher, WithDisposable } from '@blocksuite/global/utils'; import { cssVarV2 } from '@toeverything/theme/v2'; import { css, html, nothing, unsafeCSS } from 'lit'; import { property } from 'lit/decorators.js'; @@ -32,7 +32,9 @@ function HeadingIcon(i: number) { } } -export class ParagraphHeadingIcon extends WithDisposable(ShadowlessElement) { +export class ParagraphHeadingIcon extends SignalWatcher( + WithDisposable(ShadowlessElement) +) { static override styles = css` affine-paragraph-heading-icon .heading-icon { display: flex; @@ -65,12 +67,14 @@ export class ParagraphHeadingIcon extends WithDisposable(ShadowlessElement) { `; override render() { - const type = this.model.type; + const type = this.model.type$.value; if (!type.startsWith('h')) return nothing; const i = parseInt(type.slice(1)); - return html`
`; + return html``; } @property({ attribute: false }) diff --git a/blocksuite/affine/block-paragraph/src/paragraph-block.ts b/blocksuite/affine/block-paragraph/src/paragraph-block.ts index 0623354e77..8f32267ea4 100644 --- a/blocksuite/affine/block-paragraph/src/paragraph-block.ts +++ b/blocksuite/affine/block-paragraph/src/paragraph-block.ts @@ -157,7 +157,7 @@ export class ParagraphBlockComponent extends CaptionedBlockComponent< this._readonlyCollapsed = collapsed; // reset text selection when selected block is collapsed - if (this.model.type.startsWith('h') && collapsed) { + if (this.model.type$.value.startsWith('h') && collapsed) { const collapsedSiblings = this.collapsedSiblings; const textSelection = this.host.selection.find(TextSelection); @@ -177,7 +177,7 @@ export class ParagraphBlockComponent extends CaptionedBlockComponent< // # 456 // // we need to update collapsed state of 123 when 456 converted to text - let beforeType = this.model.type; + let beforeType = this.model.type$.peek(); this.disposables.add( effect(() => { const type = this.model.type$.value; @@ -211,7 +211,7 @@ export class ParagraphBlockComponent extends CaptionedBlockComponent< const collapsedSiblings = this.collapsedSiblings; let style = html``; - if (this.model.type.startsWith('h') && collapsed) { + if (this.model.type$.value.startsWith('h') && collapsed) { style = html`