ソースを参照

feat: add selector bg class name and shortcut remove func (#999)

* feat(shortcuts): add handler removal functionality

* style: add descriptive class name to selector bounds background layer
Louis Young 1 ヶ月 前
コミット
6593df31d7

+ 3 - 1
packages/canvas-engine/renderer/src/layers/flow-selector-bounds-layer.tsx

@@ -84,7 +84,9 @@ export class FlowSelectorBoundsLayer extends Layer<FlowSelectorBoundsLayerOption
       this.selectBoundsBackground.classList.add(this.options.backgroundClassName);
     }
     // 这里创建一个空 layer 用于放背景
-    const selectorBoundsLayer = domUtils.createDivWithClass('gedit-playground-layer');
+    const selectorBoundsLayer = domUtils.createDivWithClass(
+      'gedit-selector-bounds-background-layer gedit-playground-layer'
+    );
     selectorBoundsLayer.appendChild(this.selectBoundsBackground);
     // 背景框需要在节点的下边
     this.pipelineNode.insertBefore(selectorBoundsLayer, firstChild);

+ 7 - 1
packages/plugins/shortcuts-plugin/src/shortcuts-contribution.ts

@@ -31,7 +31,7 @@ export class ShortcutsRegistry {
 
   @inject(CommandRegistry) protected commandRegistry: CommandRegistry;
 
-  readonly shortcutsHandlers: ShortcutsHandler[] = [];
+  shortcutsHandlers: ShortcutsHandler[] = [];
 
   addHandlers(...handlers: ShortcutsHandler[]): void {
     // 注册 command
@@ -60,6 +60,12 @@ export class ShortcutsRegistry {
     });
   }
 
+  removeHandler(commandId: string): void {
+    this.shortcutsHandlers = this.shortcutsHandlers.filter(
+      (handler) => handler.commandId !== commandId
+    );
+  }
+
   has(commandId: string): boolean {
     return this.shortcutsHandlers.some((handler) => handler.commandId === commandId);
   }