@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
32 lines (31 loc) • 1.28 kB
TypeScript
import type { TreeDragDropPayload } from './move-tree-node/move-tree-node';
import type { TreeDragState, TreeNodeData } from './Tree';
export type TreeAllowDrop = (payload: TreeDragDropPayload) => boolean;
interface UseTreeNodeDragDropInput {
nodeValue: string;
hasChildren: boolean;
isExpanded: boolean;
data: TreeNodeData[];
onDragDrop: ((payload: TreeDragDropPayload) => void) | undefined;
dragStateRef: React.RefObject<TreeDragState>;
allowDrop: TreeAllowDrop | undefined;
withDragHandle: boolean | undefined;
}
export interface TreeDragHandleProps {
onMouseDown: (event: React.MouseEvent) => void;
}
export declare function useTreeNodeDragDrop({ nodeValue, hasChildren, isExpanded, data, onDragDrop, dragStateRef, allowDrop, withDragHandle, }: UseTreeNodeDragDropInput): {
readonly elementProps: {};
readonly dragHandleProps: undefined;
} | {
elementProps: {
draggable: boolean;
onDragStart: (event: React.DragEvent) => void;
onDragOver: (event: React.DragEvent) => void;
onDragLeave: (event: React.DragEvent) => void;
onDrop: (event: React.DragEvent) => void;
onDragEnd: (event: React.DragEvent) => void;
};
dragHandleProps: TreeDragHandleProps | undefined;
};
export {};