25 lines
963 B
JavaScript
25 lines
963 B
JavaScript
import { registerTarget } from '../../internals/index.js';
|
|
import { useDragDropManager } from '../useDragDropManager.js';
|
|
import { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js';
|
|
import { useAccept } from './useAccept.js';
|
|
import { useDropTarget } from './useDropTarget.js';
|
|
export function useRegisteredDropTarget(spec, monitor, connector) {
|
|
const manager = useDragDropManager();
|
|
const dropTarget = useDropTarget(spec, monitor);
|
|
const accept = useAccept(spec);
|
|
useIsomorphicLayoutEffect(function registerDropTarget() {
|
|
const [handlerId, unregister] = registerTarget(accept, dropTarget, manager);
|
|
monitor.receiveHandlerId(handlerId);
|
|
connector.receiveHandlerId(handlerId);
|
|
return unregister;
|
|
}, [
|
|
manager,
|
|
monitor,
|
|
dropTarget,
|
|
connector,
|
|
accept.map((a)=>a.toString()
|
|
).join('|'),
|
|
]);
|
|
}
|
|
|
|
//# sourceMappingURL=useRegisteredDropTarget.js.map
|