This commit is contained in:
56
node_modules/react-dnd/lib/hooks/useDrag/DragSourceImpl.js
generated
vendored
Normal file
56
node_modules/react-dnd/lib/hooks/useDrag/DragSourceImpl.js
generated
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
export class DragSourceImpl {
|
||||
spec;
|
||||
monitor;
|
||||
connector;
|
||||
constructor(spec, monitor, connector) {
|
||||
this.spec = spec;
|
||||
this.monitor = monitor;
|
||||
this.connector = connector;
|
||||
}
|
||||
beginDrag() {
|
||||
const spec = this.spec;
|
||||
const monitor = this.monitor;
|
||||
let result = null;
|
||||
if (typeof spec.item === 'object') {
|
||||
result = spec.item;
|
||||
}
|
||||
else if (typeof spec.item === 'function') {
|
||||
result = spec.item(monitor);
|
||||
}
|
||||
else {
|
||||
result = {};
|
||||
}
|
||||
return result ?? null;
|
||||
}
|
||||
canDrag() {
|
||||
const spec = this.spec;
|
||||
const monitor = this.monitor;
|
||||
if (typeof spec.canDrag === 'boolean') {
|
||||
return spec.canDrag;
|
||||
}
|
||||
else if (typeof spec.canDrag === 'function') {
|
||||
return spec.canDrag(monitor);
|
||||
}
|
||||
else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
isDragging(globalMonitor, target) {
|
||||
const spec = this.spec;
|
||||
const monitor = this.monitor;
|
||||
const { isDragging } = spec;
|
||||
return isDragging
|
||||
? isDragging(monitor)
|
||||
: target === globalMonitor.getSourceId();
|
||||
}
|
||||
endDrag() {
|
||||
const spec = this.spec;
|
||||
const monitor = this.monitor;
|
||||
const connector = this.connector;
|
||||
const { end } = spec;
|
||||
if (end) {
|
||||
end(monitor.getItem(), monitor);
|
||||
}
|
||||
connector.reconnect();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user