react-optimized-dnd
Version:
A React package for building performant drag-and-drop interfaces. Provides context provider, hooks, and type definitions for flexible, optimized DnD in React apps.
30 lines (29 loc) • 860 B
TypeScript
export interface IDroppableItem {
ref: React.RefObject<HTMLElement>;
subscriber: (data: any) => void;
isOver?: boolean;
data?: any;
}
export interface IReactOptimizedDndContextState {
draggingElementRef: React.RefObject<HTMLElement | null>;
setDraggingElement: (ref: React.RefObject<HTMLElement> | null, draggableElementData: any) => void;
droppableElementRefsPool: React.RefObject<Record<string, IDroppableItem>>;
}
export interface IReactOptimizedDndComponentState {
draggingElement: {
ref: React.RefObject<HTMLElement> | null;
data: any;
};
overElement: {
ref: React.RefObject<HTMLElement> | null;
data: any;
};
}
export interface UseDraggableProps {
data?: any;
dragThreshold?: number;
touchDragDelay?: number;
}
export interface UseDroppableProps {
data?: any;
}