Skip to content

Commit fd53dea

Browse files
committed
fix(core): 修复边选中偶发失焦问题
1 parent e48b149 commit fd53dea

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

packages/core/src/view/edge/BaseEdge.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { createElement as h, Component, createRef } from 'preact/compat'
22
import { Circle } from '../shape'
3+
import { isNil, isFunction } from 'lodash-es'
34
import { LineText } from '../text'
45
import LogicFlow from '../../LogicFlow'
56
import { GraphModel, BaseEdgeModel, PolylineEdgeModel } from '../../model'
@@ -550,6 +551,15 @@ export abstract class BaseEdge<P extends IProps> extends Component<
550551
e,
551552
position,
552553
})
554+
// 会偶现边点击后会马上失去焦点的问题,这里手动让节点获焦以解决这个问题
555+
const el = e.currentTarget as HTMLElement
556+
const rAF =
557+
!isNil(window) && isFunction(window.requestAnimationFrame)
558+
? window.requestAnimationFrame.bind(window)
559+
: (fn: () => void) => setTimeout(fn, 0)
560+
rAF(() => {
561+
el.focus()
562+
})
553563
}
554564
const { editConfigModel } = graphModel
555565
graphModel.selectEdgeById(model.id, isMultipleSelect(e, editConfigModel))

0 commit comments

Comments
 (0)