goobs-frontend
Version:
A comprehensive React-based libary for building modern web applications
30 lines • 1.45 kB
TypeScript
import { default as React } from 'react';
import { ColumnData } from '../../types';
/** Item describing which task is being dragged. */
interface DragInfo {
taskId: string;
columnIndex: number;
taskIndex: number;
}
/**
* GitHub-like drag and drop hook for tasks.
* Simplifies the drag model - tasks are directly draggable without pre-selection.
*/
export declare function useTaskDragAndDrop(): {
dragItem: DragInfo | null;
isDragging: boolean;
dragOverInfo: {
columnIndex: number;
taskIndex: number;
} | null;
handleTaskDragStart: (e: React.DragEvent, taskId: string, columnIndex: number, taskIndex: number) => void;
handleTaskDragOver: (e: React.DragEvent, columnIndex: number, taskIndex: number) => void;
handleTaskDragEnter: (e: React.DragEvent, columnIndex: number, taskIndex: number) => void;
handleTaskDragLeave: (e: React.DragEvent) => void;
handleTaskDrop: (e: React.DragEvent, dropColumnIndex: number, dropTaskIndex: number, allColumns: ColumnData[], setAllColumns: React.Dispatch<React.SetStateAction<ColumnData[]>>) => void;
handleColumnDragOver: (e: React.DragEvent, columnIndex: number, allColumns: ColumnData[]) => void;
handleColumnDrop: (e: React.DragEvent, columnIndex: number, allColumns: ColumnData[], setAllColumns: React.Dispatch<React.SetStateAction<ColumnData[]>>) => void;
resetDragState: () => void;
};
export {};
//# sourceMappingURL=tasks.d.ts.map