refactor(editor): remove assert functions (#10629)

This commit is contained in:
Saul-Mirone
2025-03-05 10:20:02 +00:00
parent 201c3438ba
commit 7e39893aac
17 changed files with 63 additions and 95 deletions

View File

@@ -26,7 +26,10 @@ import {
FeatureFlagService,
ThemeProvider,
} from '@blocksuite/affine-shared/services';
import { captureEventTarget } from '@blocksuite/affine-shared/utils';
import {
captureEventTarget,
matchModels,
} from '@blocksuite/affine-shared/utils';
import { type BlockStdScope, stdContext } from '@blocksuite/block-std';
import { GfxControllerIdentifier } from '@blocksuite/block-std/gfx';
import type { XYWH } from '@blocksuite/global/gfx';
@@ -38,7 +41,7 @@ import {
toDegree,
Vec,
} from '@blocksuite/global/gfx';
import { assertInstanceOf, WithDisposable } from '@blocksuite/global/utils';
import { WithDisposable } from '@blocksuite/global/utils';
import { FrameIcon, PageIcon } from '@blocksuite/icons/lit';
import { consume } from '@lit/context';
import { baseTheme } from '@toeverything/theme';
@@ -192,7 +195,9 @@ export class EdgelessAutoCompletePanel extends WithDisposable(LitElement) {
doc.root?.id
);
const note = doc.getBlock(id)?.model;
assertInstanceOf(note, NoteBlockModel);
if (!matchModels(note, [NoteBlockModel])) {
return;
}
doc.addBlock('affine:paragraph', { type: 'text' }, id);
const group = this.currentSource.group;
@@ -285,7 +290,9 @@ export class EdgelessAutoCompletePanel extends WithDisposable(LitElement) {
});
if (!textId) return;
const textElement = this.crud.getElementById(textId);
assertInstanceOf(textElement, TextElementModel);
if (!(textElement instanceof TextElementModel)) {
return;
}
this.crud.updateElement(this.connector.id, {
target: { id: textId, position },

View File

@@ -13,7 +13,6 @@ import {
} from '@blocksuite/affine-shared/services';
import { openFileOrFiles } from '@blocksuite/affine-shared/utils';
import { Bound } from '@blocksuite/global/gfx';
import { assertInstanceOf } from '@blocksuite/global/utils';
import type { TemplateResult } from 'lit';
import * as Y from 'yjs';
@@ -143,7 +142,10 @@ export const textRender: DraggableTool['render'] = async (
edgeless.doc.captureSync();
const textElement = edgeless.service.crud.getElementById(id);
assertInstanceOf(textElement, TextElementModel);
if (!(textElement instanceof TextElementModel)) {
console.error('Cannot mount text editor on a non-text element');
return null;
}
mountTextElementEditor(textElement, edgeless);
}

View File

@@ -14,7 +14,6 @@ import type { PointerEventState } from '@blocksuite/block-std';
import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions';
import type { IVec } from '@blocksuite/global/gfx';
import { Bound } from '@blocksuite/global/gfx';
import { assertInstanceOf } from '@blocksuite/global/utils';
import * as Y from 'yjs';
import { EdgelessConnectorLabelEditor } from '../components/text/edgeless-connector-label-editor.js';
@@ -82,11 +81,10 @@ export function mountShapeTextEditor(
const updatedElement = edgeless.service.crud.getElementById(shapeElement.id);
assertInstanceOf(
updatedElement,
ShapeElementModel,
'Cannot mount text editor on a non-shape element'
);
if (!(updatedElement instanceof ShapeElementModel)) {
console.error('Cannot mount text editor on a non-shape element');
return;
}
const shapeEditor = new EdgelessShapeTextEditor();
shapeEditor.element = updatedElement;

View File

@@ -11,7 +11,6 @@ import {
type PointerEventState,
WidgetComponent,
} from '@blocksuite/block-std';
import { assertInstanceOf } from '@blocksuite/global/utils';
import { html, nothing } from 'lit';
import { state } from 'lit/decorators.js';
import { styleMap } from 'lit/directives/style-map.js';
@@ -443,9 +442,14 @@ function getSelectingBlockPaths(blockInfos: BlockInfo[], userRect: Rect) {
function isDragArea(e: PointerEventState) {
const el = e.raw.target;
assertInstanceOf(el, Element);
if (!(el instanceof Element)) {
return false;
}
const block = el.closest<BlockComponent>(`[${BLOCK_ID_ATTR}]`);
return block && matchModels(block.model, [RootBlockModel, NoteBlockModel]);
if (!block) {
return false;
}
return matchModels(block.model, [RootBlockModel, NoteBlockModel]);
}
declare global {