Blame view

天文台pc/tianwentai-ui/node_modules/react-dnd/src/hooks/useDrop/DropTargetImpl.ts 792 Bytes
bc518174   王天杨   提交两个项目文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  import type { DropTarget } from 'dnd-core'
  
  import type { DropTargetMonitor } from '../../types/index.js'
  import type { DropTargetHookSpec } from '../types.js'
  
  export class DropTargetImpl<O, R, P> implements DropTarget {
  	public constructor(
  		public spec: DropTargetHookSpec<O, R, P>,
  		private monitor: DropTargetMonitor<O, R>,
  	) {}
  
  	public canDrop() {
  		const spec = this.spec
  		const monitor = this.monitor
  		return spec.canDrop ? spec.canDrop(monitor.getItem(), monitor) : true
  	}
  
  	public hover() {
  		const spec = this.spec
  		const monitor = this.monitor
  		if (spec.hover) {
  			spec.hover(monitor.getItem(), monitor)
  		}
  	}
  
  	public drop() {
  		const spec = this.spec
  		const monitor = this.monitor
  		if (spec.drop) {
  			return spec.drop(monitor.getItem(), monitor)
  		}
  		return
  	}
  }