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

27 lines
1007 B
JavaScript

import { registerSource } from '../../internals/index.js';
import { useDragDropManager } from '../useDragDropManager.js';
import { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js';
import { useDragSource } from './useDragSource.js';
import { useDragType } from './useDragType.js';
export function useRegisteredDragSource(spec, monitor, connector) {
const manager = useDragDropManager();
const handler = useDragSource(spec, monitor, connector);
const itemType = useDragType(spec);
useIsomorphicLayoutEffect(function registerDragSource() {
if (itemType != null) {
const [handlerId, unregister] = registerSource(itemType, handler, manager);
monitor.receiveHandlerId(handlerId);
connector.receiveHandlerId(handlerId);
return unregister;
}
return;
}, [
manager,
monitor,
connector,
handler,
itemType
]);
}
//# sourceMappingURL=useRegisteredDragSource.js.map