Files
igny8/frontend/node_modules/react-dnd/dist/hooks/useDrag/useDragSourceConnector.js
2025-11-09 10:27:02 +00:00

32 lines
1.0 KiB
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