diff --git a/packages/core/src/view/edge/BaseEdge.tsx b/packages/core/src/view/edge/BaseEdge.tsx index a57f6dabe..dd2e8be6f 100644 --- a/packages/core/src/view/edge/BaseEdge.tsx +++ b/packages/core/src/view/edge/BaseEdge.tsx @@ -1,4 +1,5 @@ import { createElement as h, Component, createRef } from 'preact/compat' +import { isFunction, isNil } from 'lodash-es' import { Circle } from '../shape' import { LineText } from '../text' import LogicFlow from '../../LogicFlow' @@ -565,6 +566,15 @@ export abstract class BaseEdge
extends Component< e, position, }) + // 复制粘贴后会出现点击边时,边会失去焦点的问题,这里手动让边获焦以解决这个问题 + const el = e.currentTarget as HTMLElement + const rAF = + !isNil(window) && isFunction(window.requestAnimationFrame) + ? window.requestAnimationFrame.bind(window) + : (fn: () => void) => setTimeout(fn, 0) + rAF(() => { + el.focus() + }) } const { editConfigModel } = graphModel graphModel.selectEdgeById(model.id, isMultipleSelect(e, editConfigModel))