bc518174
王天杨
提交两个项目文件
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import { useEffect } from 'react'
import type { DragLayerMonitor } from '../types/index.js'
import { useCollector } from './useCollector.js'
import { useDragDropManager } from './useDragDropManager.js'
/**
* useDragLayer Hook
* @param collector The property collector
*/
export function useDragLayer<CollectedProps, DragObject = any>(
collect: (monitor: DragLayerMonitor<DragObject>) => CollectedProps,
): CollectedProps {
const dragDropManager = useDragDropManager()
const monitor = dragDropManager.getMonitor()
const [collected, updateCollected] = useCollector(monitor, collect)
useEffect(() => monitor.subscribeToOffsetChange(updateCollected))
useEffect(() => monitor.subscribeToStateChange(updateCollected))
return collected
}
|