react-dnd
Version:
Drag and Drop for React
32 lines (31 loc) • 1.05 kB
JavaScript
import { useMemo } from 'react';
import { SourceConnector } from '../../internals/index.js';
import { useDragDropManager } from '../useDragDropManager.js';
import { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js';
export function useDragSourceConnector(dragSourceOptions, dragPreviewOptions) {
const manager = useDragDropManager();
const connector = useMemo(()=>new SourceConnector(manager.getBackend())
, [
manager
]);
useIsomorphicLayoutEffect(()=>{
connector.dragSourceOptions = dragSourceOptions || null;
connector.reconnect();
return ()=>connector.disconnectDragSource()
;
}, [
connector,
dragSourceOptions
]);
useIsomorphicLayoutEffect(()=>{
connector.dragPreviewOptions = dragPreviewOptions || null;
connector.reconnect();
return ()=>connector.disconnectDragPreview()
;
}, [
connector,
dragPreviewOptions
]);
return connector;
}
//# sourceMappingURL=useDragSourceConnector.js.map