summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorReed Garmsen <rgarmsen2295@gmail.com>2016-01-06 14:18:05 -0800
committerReed Garmsen <rgarmsen2295@gmail.com>2016-01-06 14:39:43 -0800
commit9d9eaec14f4e4a8bc3bda4ef19c980bef2bb467b (patch)
treea1ff50230846cd8bc7b399b5d6b4b6c7ec1e4c26 /web
parent5bcb9f1c50ed9c319d2a21f2ecb4816c51d18b40 (diff)
downloadchat-9d9eaec14f4e4a8bc3bda4ef19c980bef2bb467b.tar.gz
chat-9d9eaec14f4e4a8bc3bda4ef19c980bef2bb467b.tar.bz2
chat-9d9eaec14f4e4a8bc3bda4ef19c980bef2bb467b.zip
Removed ability to drag n' drop text; drag n' drop ui no longer appears when non-files are dragged
Diffstat (limited to 'web')
-rw-r--r--web/react/components/create_comment.jsx7
-rw-r--r--web/react/components/create_post.jsx7
-rw-r--r--web/react/components/file_upload.jsx34
-rw-r--r--web/react/utils/utils.jsx6
4 files changed, 30 insertions, 24 deletions
diff --git a/web/react/components/create_comment.jsx b/web/react/components/create_comment.jsx
index c190b4dd8..cae94429c 100644
--- a/web/react/components/create_comment.jsx
+++ b/web/react/components/create_comment.jsx
@@ -32,7 +32,6 @@ export default class CreateComment extends React.Component {
this.handleUploadStart = this.handleUploadStart.bind(this);
this.handleFileUploadComplete = this.handleFileUploadComplete.bind(this);
this.handleUploadError = this.handleUploadError.bind(this);
- this.handleTextDrop = this.handleTextDrop.bind(this);
this.removePreview = this.removePreview.bind(this);
this.getFileCount = this.getFileCount.bind(this);
this.handleResize = this.handleResize.bind(this);
@@ -239,11 +238,6 @@ export default class CreateComment extends React.Component {
this.setState({uploadsInProgress: draft.uploadsInProgress, serverError: err});
}
}
- handleTextDrop(text) {
- const newText = this.state.messageText + text;
- this.handleUserInput(newText);
- Utils.setCaretPosition(ReactDOM.findDOMNode(this.refs.textbox.refs.message), newText.length);
- }
removePreview(id) {
let previews = this.state.previews;
let uploadsInProgress = this.state.uploadsInProgress;
@@ -344,7 +338,6 @@ export default class CreateComment extends React.Component {
onUploadStart={this.handleUploadStart}
onFileUpload={this.handleFileUploadComplete}
onUploadError={this.handleUploadError}
- onTextDrop={this.handleTextDrop}
postType='comment'
channelId={this.props.channelId}
/>
diff --git a/web/react/components/create_post.jsx b/web/react/components/create_post.jsx
index e901b272a..a476863a3 100644
--- a/web/react/components/create_post.jsx
+++ b/web/react/components/create_post.jsx
@@ -40,7 +40,6 @@ export default class CreatePost extends React.Component {
this.handleUploadStart = this.handleUploadStart.bind(this);
this.handleFileUploadComplete = this.handleFileUploadComplete.bind(this);
this.handleUploadError = this.handleUploadError.bind(this);
- this.handleTextDrop = this.handleTextDrop.bind(this);
this.removePreview = this.removePreview.bind(this);
this.onChange = this.onChange.bind(this);
this.onPreferenceChange = this.onPreferenceChange.bind(this);
@@ -281,11 +280,6 @@ export default class CreatePost extends React.Component {
this.setState({uploadsInProgress: draft.uploadsInProgress, serverError: message});
}
}
- handleTextDrop(text) {
- const newText = this.state.messageText + text;
- this.handleUserInput(newText);
- Utils.setCaretPosition(ReactDOM.findDOMNode(this.refs.textbox.refs.message), newText.length);
- }
removePreview(id) {
const previews = Object.assign([], this.state.previews);
const uploadsInProgress = this.state.uploadsInProgress;
@@ -462,7 +456,6 @@ export default class CreatePost extends React.Component {
onUploadStart={this.handleUploadStart}
onFileUpload={this.handleFileUploadComplete}
onUploadError={this.handleUploadError}
- onTextDrop={this.handleTextDrop}
postType='post'
channelId=''
/>
diff --git a/web/react/components/file_upload.jsx b/web/react/components/file_upload.jsx
index 9316ca9a5..8c7353e86 100644
--- a/web/react/components/file_upload.jsx
+++ b/web/react/components/file_upload.jsx
@@ -109,8 +109,6 @@ export default class FileUpload extends React.Component {
if (typeof files !== 'string' && files.length) {
this.uploadFiles(files);
- } else {
- this.props.onTextDrop(e.originalEvent.dataTransfer.getData('Text'));
}
}
@@ -120,11 +118,19 @@ export default class FileUpload extends React.Component {
if (this.props.postType === 'post') {
$('.row.main').dragster({
- enter() {
- $('.center-file-overlay').removeClass('hidden');
+ enter(dragsterEvent, e) {
+ var files = e.originalEvent.dataTransfer;
+
+ if (utils.isFileTransfer(files)) {
+ $('.center-file-overlay').removeClass('hidden');
+ }
},
- leave() {
- $('.center-file-overlay').addClass('hidden');
+ leave(dragsterEvent, e) {
+ var files = e.originalEvent.dataTransfer;
+
+ if (utils.isFileTransfer(files)) {
+ $('.center-file-overlay').addClass('hidden');
+ }
},
drop(dragsterEvent, e) {
$('.center-file-overlay').addClass('hidden');
@@ -133,11 +139,19 @@ export default class FileUpload extends React.Component {
});
} else if (this.props.postType === 'comment') {
$('.post-right__container').dragster({
- enter() {
- $('.right-file-overlay').removeClass('hidden');
+ enter(dragsterEvent, e) {
+ var files = e.originalEvent.dataTransfer;
+
+ if (utils.isFileTransfer(files)) {
+ $('.right-file-overlay').removeClass('hidden');
+ }
},
- leave() {
- $('.right-file-overlay').addClass('hidden');
+ leave(dragsterEvent, e) {
+ var files = e.originalEvent.dataTransfer;
+
+ if (utils.isFileTransfer(files)) {
+ $('.right-file-overlay').addClass('hidden');
+ }
},
drop(dragsterEvent, e) {
$('.right-file-overlay').addClass('hidden');
diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx
index 33aae7d1e..95eca7c3a 100644
--- a/web/react/utils/utils.jsx
+++ b/web/react/utils/utils.jsx
@@ -1276,3 +1276,9 @@ export function fillArray(value, length) {
return arr;
}
+
+// Checks if a data transfer contains files not text, folders, etc..
+// Slightly modified from http://stackoverflow.com/questions/6848043/how-do-i-detect-a-file-is-being-dragged-rather-than-a-draggable-element-on-my-pa
+export function isFileTransfer(files) {
+ return files.types != null && (files.types.indexOf ? files.types.indexOf('Files') !== -1 : files.types.contains('application/x-moz-file'));
+}