Fix #171 - You can now drag & drop files to be uploaded
This commit is contained in:
		| @@ -9,6 +9,8 @@ import TabsBar from './components/tabs_bar'; | |||||||
| import ModalContainer from './containers/modal_container'; | import ModalContainer from './containers/modal_container'; | ||||||
| import Notifications from '../notifications'; | import Notifications from '../notifications'; | ||||||
| import { debounce } from 'react-decoration'; | import { debounce } from 'react-decoration'; | ||||||
|  | import { uploadCompose } from '../../actions/compose'; | ||||||
|  | import { connect } from 'react-redux'; | ||||||
|  |  | ||||||
| const UI = React.createClass({ | const UI = React.createClass({ | ||||||
|  |  | ||||||
| @@ -25,12 +27,35 @@ const UI = React.createClass({ | |||||||
|     this.setState({ width: window.innerWidth }); |     this.setState({ width: window.innerWidth }); | ||||||
|   }, |   }, | ||||||
|  |  | ||||||
|  |   handleDragOver (e) { | ||||||
|  |     e.preventDefault(); | ||||||
|  |     e.stopPropagation(); | ||||||
|  |  | ||||||
|  |     e.dataTransfer.dropEffect = 'copy'; | ||||||
|  |  | ||||||
|  |     if (e.dataTransfer.effectAllowed === 'all' || e.dataTransfer.effectAllowed === 'uninitialized') { | ||||||
|  |       // | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |  | ||||||
|  |   handleDrop (e) { | ||||||
|  |     e.preventDefault(); | ||||||
|  |  | ||||||
|  |     if (e.dataTransfer) { | ||||||
|  |       this.props.dispatch(uploadCompose(e.dataTransfer.files)); | ||||||
|  |     } | ||||||
|  |   }, | ||||||
|  |  | ||||||
|   componentWillMount () { |   componentWillMount () { | ||||||
|     window.addEventListener('resize', this.handleResize, { passive: true }); |     window.addEventListener('resize', this.handleResize, { passive: true }); | ||||||
|  |     window.addEventListener('dragover', this.handleDragOver); | ||||||
|  |     window.addEventListener('drop', this.handleDrop); | ||||||
|   }, |   }, | ||||||
|  |  | ||||||
|   componentWillUnmount () { |   componentWillUnmount () { | ||||||
|     window.removeEventListener('resize', this.handleResize); |     window.removeEventListener('resize', this.handleResize); | ||||||
|  |     window.removeEventListener('dragover', this.handleDragOver); | ||||||
|  |     window.removeEventListener('drop', this.handleDrop); | ||||||
|   }, |   }, | ||||||
|  |  | ||||||
|   render () { |   render () { | ||||||
| @@ -70,4 +95,4 @@ const UI = React.createClass({ | |||||||
|  |  | ||||||
| }); | }); | ||||||
|  |  | ||||||
| export default UI; | export default connect()(UI); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user