refactor(editor): remove gfx tool global type (#12116)

Closes: BS-2650
This commit is contained in:
Saul-Mirone
2025-05-04 13:53:26 +00:00
parent f3b5c36cf7
commit 30a2e5b4fb
95 changed files with 664 additions and 521 deletions

View File

@@ -1,5 +1,6 @@
import {
CanvasElementType,
DefaultTool,
OverlayIdentifier,
} from '@blocksuite/affine-block-surface';
import type {
@@ -104,8 +105,7 @@ export class ConnectorTool extends BaseTool<ConnectorToolOptions> {
this._allowCancel = true;
}
// @ts-expect-error FIXME: resolve after gfx tool refactor
this.gfx.tool.setTool('default');
this.gfx.tool.setTool(DefaultTool);
this.gfx.selection.set({ elements: [focusedId] });
}
@@ -132,8 +132,8 @@ export class ConnectorTool extends BaseTool<ConnectorToolOptions> {
const connector = this._connector;
this.doc.captureSync();
// @ts-expect-error FIXME: resolve after gfx tool refactor
this.gfx.tool.setTool('default');
this.gfx.tool.setTool(DefaultTool);
this.gfx.selection.set({ elements: [connector.id] });
}

View File

@@ -1,4 +1,7 @@
import { EdgelessCRUDIdentifier } from '@blocksuite/affine-block-surface';
import {
DefaultTool,
EdgelessCRUDIdentifier,
} from '@blocksuite/affine-block-surface';
import { getLineHeight } from '@blocksuite/affine-gfx-text';
import type { ConnectorElementModel } from '@blocksuite/affine-model';
import type { RichText } from '@blocksuite/affine-rich-text';
@@ -40,8 +43,7 @@ export function mountConnectorLabelEditor(
const gfx = edgeless.std.get(GfxControllerIdentifier);
// @ts-expect-error default tool should be migrated to std
gfx.tool.setTool('default');
gfx.tool.setTool(DefaultTool);
gfx.selection.set({
elements: [connector.id],
editing: true,

View File

@@ -1,4 +1,7 @@
import { EdgelessCRUDIdentifier } from '@blocksuite/affine-block-surface';
import {
DefaultTool,
EdgelessCRUDIdentifier,
} from '@blocksuite/affine-block-surface';
import type { ConnectorElementModel } from '@blocksuite/affine-model';
import { BlockSuiteError, ErrorCode } from '@blocksuite/global/exceptions';
import type { IVec } from '@blocksuite/global/gfx';
@@ -24,8 +27,7 @@ export function mountConnectorLabelEditor(
const gfx = edgeless.std.get(GfxControllerIdentifier);
// @ts-expect-error FIXME: resolve after gfx tool refactor
gfx.tool.setTool('default');
gfx.tool.setTool(DefaultTool);
gfx.selection.set({
elements: [connector.id],
editing: true,

View File

@@ -8,6 +8,8 @@ import {
ConnectorLIcon,
} from '@blocksuite/icons/lit';
import { ConnectorTool } from '../connector-tool';
export const buildConnectorDenseMenu: DenseMenuBuilder = (edgeless, gfx) => {
const prevMode =
edgeless.std.get(EditPropsStore).lastProps$.value.connector.mode;
@@ -17,7 +19,7 @@ export const buildConnectorDenseMenu: DenseMenuBuilder = (edgeless, gfx) => {
const createSelect =
(mode: ConnectorMode, record = true) =>
() => {
gfx.tool.setTool('connector', {
gfx.tool.setTool(ConnectorTool, {
mode,
});
record &&

View File

@@ -16,11 +16,12 @@ import {
ConnectorEIcon,
ConnectorLIcon,
} from '@blocksuite/icons/lit';
import type { GfxToolsFullOptionValue } from '@blocksuite/std/gfx';
import { computed } from '@preact/signals-core';
import { css, html, LitElement } from 'lit';
import { property } from 'lit/decorators.js';
import { ConnectorTool } from '../connector-tool';
function ConnectorModeButtonGroup(
mode: ConnectorMode,
setConnectorMode: (props: Record<string, unknown>) => void
@@ -110,7 +111,7 @@ export class EdgelessConnectorMenu extends EdgelessToolbarToolMixin(
return this.edgeless.std.get(ThemeProvider).theme$.value;
});
override type: GfxToolsFullOptionValue['type'] = 'connector';
override type = ConnectorTool;
override render() {
const { stroke, strokeWidth, mode } = this._props$.value;

View File

@@ -10,6 +10,8 @@ import {
import { computed } from '@preact/signals-core';
import { css, html, LitElement } from 'lit';
import { ConnectorTool } from '../connector-tool';
const IcomMap = {
[ConnectorMode.Straight]: ConnectorLIcon(),
[ConnectorMode.Orthogonal]: ConnectorEIcon(),
@@ -30,7 +32,7 @@ export class EdgelessConnectorToolButton extends QuickToolMixin(
.mode;
});
override type = 'connector' as const;
override type = ConnectorTool;
private _toggleMenu() {
if (this.tryDisposePopper()) return;
@@ -64,7 +66,7 @@ export class EdgelessConnectorToolButton extends QuickToolMixin(
@click=${() => {
// don't update tool before toggling menu
this._toggleMenu();
this.gfx.tool.setTool('connector', {
this.gfx.tool.setTool(ConnectorTool, {
mode,
});
}}