Working on adding overlays for file drag and drop

Этот коммит содержится в:
Reed Garmsen
2015-08-09 13:04:24 -07:00
родитель 1fa436b4f9
Коммит 81d7599f75
5 изменённых файлов: 36 добавлений и 15 удалений

Просмотреть файл

@@ -113,39 +113,31 @@ module.exports = React.createClass({
var self = this; var self = this;
if (this.props.postType === 'post') { if (this.props.postType === 'post') {
$('body').on('dragover', '.app__content', function(e) { $('body').on('dragover', '.post-list__table', function(e) {
e.preventDefault(); e.preventDefault();
e.stopPropagation();
}); });
$('body').on('dragenter', '.app__content', function(e) { $('body').on('dragenter', '.post-list__table', function(e) {
e.preventDefault(); e.preventDefault();
e.stopPropagation();
}); });
$('body').on('dragend dragleave', '.app__content', function(e) { $('body').on('dragleave', '.post-list__table', function(e) {
e.preventDefault(); e.preventDefault();
e.stopPropagation();
}); });
$('body').on('drop', '.app__content', function(e) { $('body').on('drop', '.post-list__table', function(e) {
e.preventDefault(); e.preventDefault();
e.stopPropagation();
self.handleDrop(e); self.handleDrop(e);
}); });
} else if (this.props.postType === 'comment') { } else if (this.props.postType === 'comment') {
$('body').on('dragover', '.sidebar--right', function(e) { $('body').on('dragover', '.sidebar--right', function(e) {
e.preventDefault(); e.preventDefault();
e.stopPropagation();
}); });
$('body').on('dragenter', '.sidebar--right', function(e) { $('body').on('dragenter', '.sidebar--right', function(e) {
e.preventDefault(); e.preventDefault();
e.stopPropagation();
}); });
$('body').on('dragend dragleave', '.sidebar--right', function(e) { $('body').on('dragleave', '.sidebar--right', function(e) {
e.preventDefault(); e.preventDefault();
e.stopPropagation();
}); });
$('body').on('drop', '.sidebar--right', function(e) { $('body').on('drop', '.sidebar--right', function(e) {
e.preventDefault(); e.preventDefault();
e.stopPropagation();
self.handleDrop(e); self.handleDrop(e);
}); });
} }

Просмотреть файл

@@ -280,6 +280,10 @@ module.exports = React.createClass({
} }
); );
}, },
handleDragEnter: function() {
console.log("HERE ENTER");
this.setState({fileDrag: true});
},
getInitialState: function() { getInitialState: function() {
return getStateFromStores(); return getStateFromStores();
}, },
@@ -461,9 +465,14 @@ module.exports = React.createClass({
postCtls.push(<LoadingScreen position="absolute" />); postCtls.push(<LoadingScreen position="absolute" />);
} }
var fileDragOverlay = '';
if (this.state.fileDrag) {
fileDragOverlay = 'post-list-file-overlay';
}
return ( return (
<div ref="postlist" className="post-list-holder-by-time"> <div ref="postlist" className="post-list-holder-by-time">
<div className="post-list__table"> <div className={"post-list__table " + fileDragOverlay} onDragEnter={this.handleDragEnter}>
<div className="post-list__content"> <div className="post-list__content">
{ more_messages } { more_messages }
{ postCtls } { postCtls }

Просмотреть файл

@@ -243,6 +243,10 @@ module.exports = React.createClass({
this.refs[id].forceUpdate(); this.refs[id].forceUpdate();
} }
}, },
handleDragEnter: function() {
console.log("HERE ENTER RIGHT");
this.setState({fileDrag: true});
},
getInitialState: function() { getInitialState: function() {
return getStateFromStores(); return getStateFromStores();
}, },
@@ -294,8 +298,13 @@ module.exports = React.createClass({
var currentId = UserStore.getCurrentId(); var currentId = UserStore.getCurrentId();
var searchForm = currentId == null ? null : <SearchBox />; var searchForm = currentId == null ? null : <SearchBox />;
var fileDragOverlay = '';
if (this.state.fileDrag) {
fileDragOverlay = 'post-right-file-overlay';
}
return ( return (
<div className="post-right__container"> <div className={"post-right__container" + fileDragOverlay} onDragEnter={this.handleDragEnter}>
<div className="search-bar__container sidebar--right__search-header">{searchForm}</div> <div className="search-bar__container sidebar--right__search-header">{searchForm}</div>
<div className="sidebar-right__body"> <div className="sidebar-right__body">
<RhsHeaderPost fromSearch={this.props.fromSearch} isMentionSearch={this.props.isMentionSearch} /> <RhsHeaderPost fromSearch={this.props.fromSearch} isMentionSearch={this.props.isMentionSearch} />

Просмотреть файл

@@ -107,6 +107,11 @@ body.ios {
} }
#post-list { #post-list {
.post-list-file-overlay {
width: 100%;
height: 100%;
background:rgba(255,255,255,0.5);
}
.post-list-holder-by-time { .post-list-holder-by-time {
background: #fff; background: #fff;
overflow-y: scroll; overflow-y: scroll;

Просмотреть файл

@@ -1,5 +1,11 @@
.post-right__container { .post-right__container {
.post-right-file-overlay {
width: 100%;
height: 100%;
background:rgba(255,255,255,0.5);
}
.post-right-root-message { .post-right-root-message {
padding: 1em 1em 0; padding: 1em 1em 0;
} }