Merge pull request #3822 from xyflow/refactor/on-node-drag-types
refactor(types): OnNodeDrag
This commit is contained in:
@@ -94,9 +94,9 @@ export type NodeProps<T = any> = {
|
||||
positionAbsoluteY: number;
|
||||
width?: number;
|
||||
height?: number;
|
||||
dragging: boolean;
|
||||
targetPosition?: Position;
|
||||
sourcePosition?: Position;
|
||||
dragging: NodeBase['dragging'];
|
||||
sourcePosition?: NodeBase['sourcePosition'];
|
||||
targetPosition?: NodeBase['targetPosition'];
|
||||
};
|
||||
|
||||
export type NodeHandleBounds = {
|
||||
@@ -134,8 +134,6 @@ export type NodeDragItem = {
|
||||
|
||||
export type NodeOrigin = [number, number];
|
||||
|
||||
export type OnNodeDrag = (event: MouseEvent, node: NodeBase, nodes: NodeBase[]) => void;
|
||||
|
||||
export type OnSelectionDrag = (event: MouseEvent, nodes: NodeBase[]) => void;
|
||||
|
||||
export type NodeHandle = Optional<HandleElement, 'width' | 'height'>;
|
||||
|
||||
@@ -23,7 +23,6 @@ import type {
|
||||
SnapGrid,
|
||||
Transform,
|
||||
PanBy,
|
||||
OnNodeDrag,
|
||||
OnSelectionDrag,
|
||||
UpdateNodePositions,
|
||||
Box,
|
||||
@@ -31,7 +30,7 @@ import type {
|
||||
|
||||
export type OnDrag = (event: MouseEvent, dragItems: NodeDragItem[], node: NodeBase, nodes: NodeBase[]) => void;
|
||||
|
||||
type StoreItems = {
|
||||
type StoreItems<OnNodeDrag> = {
|
||||
nodes: NodeBase[];
|
||||
nodeLookup: Map<string, NodeBase>;
|
||||
edges: EdgeBase[];
|
||||
@@ -58,9 +57,9 @@ type StoreItems = {
|
||||
updateNodePositions: UpdateNodePositions;
|
||||
};
|
||||
|
||||
export type XYDragParams = {
|
||||
export type XYDragParams<OnNodeDrag> = {
|
||||
domNode: Element;
|
||||
getStoreItems: () => StoreItems;
|
||||
getStoreItems: () => StoreItems<OnNodeDrag>;
|
||||
onDragStart?: OnDrag;
|
||||
onDrag?: OnDrag;
|
||||
onDragStop?: OnDrag;
|
||||
@@ -80,14 +79,15 @@ export type DragUpdateParams = {
|
||||
domNode: Element;
|
||||
};
|
||||
|
||||
export function XYDrag({
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
export function XYDrag<OnNodeDrag extends (e: any, nodes: any, node: any) => void | undefined>({
|
||||
domNode,
|
||||
onNodeMouseDown,
|
||||
getStoreItems,
|
||||
onDragStart,
|
||||
onDrag,
|
||||
onDragStop,
|
||||
}: XYDragParams): XYDragInstance {
|
||||
}: XYDragParams<OnNodeDrag>): XYDragInstance {
|
||||
let lastPos: { x: number | null; y: number | null } = { x: null, y: null };
|
||||
let autoPanId = 0;
|
||||
let dragItems: NodeDragItem[] = [];
|
||||
|
||||
Reference in New Issue
Block a user