chat / client /src /hooks /Files /useDragHelpers.ts
Zhitomir's picture
chat init
aa2e6af
Raw
History Blame Contribute Delete
1.09 kB
import { useDrop } from 'react-dnd';
import { NativeTypes } from 'react-dnd-html5-backend';
import type { DropTargetMonitor } from 'react-dnd';
import useFileHandling from './useFileHandling';
export default function useDragHelpers() {
const { files, handleFiles } = useFileHandling();
const [{ canDrop, isOver }, drop] = useDrop(
() => ({
accept: [NativeTypes.FILE],
drop(item: { files: File[] }) {
console.log('drop', item.files);
handleFiles(item.files);
},
canDrop() {
// console.log('canDrop', item.files, item.items);
return true;
},
// hover() {
// // console.log('hover', item.files, item.items);
// },
collect: (monitor: DropTargetMonitor) => {
// const item = monitor.getItem() as File[];
// if (item) {
// console.log('collect', item.files, item.items);
// }
return {
isOver: monitor.isOver(),
canDrop: monitor.canDrop(),
};
},
}),
[files],
);
return {
canDrop,
isOver,
drop,
};
}