react-dnd
Version:
Drag and Drop for React
16 lines (15 loc) • 609 B
JavaScript
import { useEffect } from 'react';
import { useDragDropManager } from './internal/useDragDropManager';
import { useCollector } from './internal/useCollector';
/**
* useDragLayer Hook
* @param collector The property collector
*/
export function useDragLayer(collect) {
const dragDropManager = useDragDropManager();
const monitor = dragDropManager.getMonitor();
const [collected, updateCollected] = useCollector(monitor, collect);
useEffect(() => monitor.subscribeToOffsetChange(updateCollected));
useEffect(() => monitor.subscribeToStateChange(updateCollected));
return collected;
}