Skip to content

Commit 9d5a2c0

Browse files
committed
Drag and drop dans le breadcrumb
1 parent 10f17c2 commit 9d5a2c0

2 files changed

Lines changed: 27 additions & 4 deletions

File tree

src/ExplorerView.js

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,26 @@ class ExplorerView extends Component {
9999
toggleDisplay(displayByList) {
100100
this.setState({ displayByList });
101101
}
102+
103+
handleDragOver(event) {
104+
event.target.classList.add('dropZone');
105+
event.preventDefault();
106+
}
107+
108+
handleDragLeave(event) {
109+
event.target.classList.remove('dropZone');
110+
}
111+
112+
handleDrop(event, _id) {
113+
const { refresh } = this.props;
114+
['folder', 'question', 'qcm'].forEach(type => {
115+
if (event.dataTransfer.types.includes(type)) {
116+
const file = JSON.parse(event.dataTransfer.getData(type));
117+
request('Move', { _id: file._id, idParent: _id }).then(() => refresh());
118+
}
119+
});
120+
event.target.classList.remove('dropZone');
121+
}
102122

103123
render() {
104124
const {
@@ -117,7 +137,12 @@ class ExplorerView extends Component {
117137
<div id="path">
118138
{[].concat(...[{ name: 'Explorer' }, ...path].map(folder => {
119139
return [
120-
<span onClick={() => this.goBack(folder._id)}>{folder.name}</span>,
140+
<span
141+
onClick={() => this.goBack(folder._id)}
142+
onDragOver={this.handleDragOver}
143+
onDragLeave={this.handleDragLeave}
144+
onDrop={e => this.handleDrop(e, folder._id)}
145+
>{folder.name}</span>,
121146
<div className="arrow"/>
122147
]
123148
})).slice(0, -1)}

src/File.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,7 @@ class File extends Component {
101101

102102
handleDragStart(event) {
103103
const { file } = this.props;
104-
if (file.type === 'question') {
105-
event.dataTransfer.setData('question', JSON.stringify(file));
106-
}
104+
event.dataTransfer.setData(file.type, JSON.stringify(file));
107105
}
108106

109107
render() {

0 commit comments

Comments
 (0)