27 lines
1007 B
JavaScript
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
|