Section 6
강의내용
- 마우스 드래그 앤 드랍
Drag & Drop
source
// Drop
const onDrop = useCallback(
(e) => {
e.preventDefault();
console.log(e);
const formData = new FormData();
if (e.dataTransfer.items) {
// Use DataTransferItemList interface to access the file(s)
for (let i = 0; i < e.dataTransfer.items.length; i++) {
// If dropped items aren't files, reject them
if (e.dataTransfer.items[i].kind === 'file') {
const file = e.dataTransfer.items[i].getAsFile();
console.log('... file[' + i + '].name = ' + file.name);
formData.append('image', file);
}
}
} else {
// Use DataTransfer interface to access the file(s)
for (let i = 0; i < e.dataTransfer.files.length; i++) {
console.log('... file[' + i + '].name = ' + e.dataTransfer.files[i].name);
formData.append('image', e.dataTransfer.files[i]);
}
}
axios.post(`/api/workspaces/${workspace}/dms/${id}/images`, formData).then(() => {
setDragOver(false);
localStorage.setItem(`${workspace}-${id}`, new Date().getTime().toString());
mutateChat();
});
},
[workspace, id, mutateChat],
);
//Drag
const onDragOver = useCallback((e) => {
e.preventDefault();
console.log(e);
setDragOver(true);
}, []);
■ SWR 디버깅
npm i @jjordy/swr-devtools