summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authornickago <ngonella@calpoly.edu>2015-08-05 14:43:40 -0700
committernickago <ngonella@calpoly.edu>2015-08-05 14:43:40 -0700
commit47cedd68d6f8c5dfd9c5af826e29342080759b61 (patch)
tree6ad79d2c08c3c8a5f047d20623277627fe42d606 /web
parent7692e67728cc471a5ac8903a859eba9d82c6429e (diff)
downloadchat-47cedd68d6f8c5dfd9c5af826e29342080759b61.tar.gz
chat-47cedd68d6f8c5dfd9c5af826e29342080759b61.tar.bz2
chat-47cedd68d6f8c5dfd9c5af826e29342080759b61.zip
Removed all functionality required for removing used mentions from auto-complete
Diffstat (limited to 'web')
-rw-r--r--web/react/components/mention_list.jsx17
-rw-r--r--web/react/components/textbox.jsx66
-rw-r--r--web/react/stores/post_store.jsx2
3 files changed, 9 insertions, 76 deletions
diff --git a/web/react/components/mention_list.jsx b/web/react/components/mention_list.jsx
index a0f68df98..931418d02 100644
--- a/web/react/components/mention_list.jsx
+++ b/web/react/components/mention_list.jsx
@@ -75,7 +75,7 @@ module.exports = React.createClass({
this.setState({selectedMention: 0, selectedUsername: ''});
}
},
- onListenerChange: function(id, mentionText, excludeList) {
+ onListenerChange: function(id, mentionText) {
if (id !== this.props.id) {
return;
}
@@ -84,9 +84,6 @@ module.exports = React.createClass({
if (mentionText != null) {
newState.mentionText = mentionText;
}
- if (excludeList != null) {
- newState.excludeUsers = excludeList;
- }
this.setState(newState);
},
@@ -143,15 +140,6 @@ module.exports = React.createClass({
scrollTop: scrollAmount
}, 75);
},
- alreadyMentioned: function(username) {
- var excludeUsers = this.state.excludeUsers;
- for (var i = 0; i < excludeUsers.length; i++) {
- if (excludeUsers[i] === username) {
- return true;
- }
- }
- return false;
- },
getInitialState: function() {
return {excludeUsers: [], mentionText: '-1', selectedMention: 0, selectedUsername: ''};
},
@@ -195,9 +183,6 @@ module.exports = React.createClass({
var index = 0;
for (var i = 0; i < users.length && index < MAX_ITEMS_IN_LIST; i++) {
- if (this.alreadyMentioned(users[i].username)) {
- continue;
- }
if ((users[i].first_name && users[i].first_name.lastIndexOf(mentionText, 0) === 0) ||
(users[i].last_name && users[i].last_name.lastIndexOf(mentionText, 0) === 0) ||
users[i].username.lastIndexOf(mentionText, 0) === 0) {
diff --git a/web/react/components/textbox.jsx b/web/react/components/textbox.jsx
index bbd1f84b6..5deb671a7 100644
--- a/web/react/components/textbox.jsx
+++ b/web/react/components/textbox.jsx
@@ -35,7 +35,7 @@ module.exports = React.createClass({
ErrorStore.addChangeListener(this._onError);
this.resize();
- this.processMentions();
+ this.updateMentionTab(null);
},
componentWillUnmount: function() {
PostStore.removeAddMentionListener(this._onChange);
@@ -83,7 +83,7 @@ module.exports = React.createClass({
this.caret = -1;
}
if (this.doProcessMentions) {
- this.processMentions();
+ this.updateMentionTab(null);
this.doProcessMentions = false;
}
this.resize();
@@ -103,15 +103,14 @@ module.exports = React.createClass({
getInitialState: function() {
return { mentionText: '-1', mentions: [], connection: "", timerInterrupt: null };
},
- updateMentionTab: function(mentionText, excludeList) {
+ updateMentionTab: function(mentionText) {
var self = this;
// using setTimeout so dispatch isn't called during an in progress dispatch
setTimeout(function() {
AppDispatcher.handleViewAction({
type: ActionTypes.RECIEVED_MENTION_DATA,
id: self.props.id,
- mention_text: mentionText,
- exclude_list: excludeList
+ mention_text: mentionText
});
}, 1);
},
@@ -167,57 +166,6 @@ module.exports = React.createClass({
this.doProcessMentions = true;
}
},
- processMentions: function() {
- /* First, find all the possible mentions and add
- them all to a list of mentions */
- var text = utils.insertHtmlEntities(this.refs.message.getDOMNode().value);
-
- var profileMap = UserStore.getProfilesUsernameMap();
-
- var re1 = /@([a-z0-9_]+)( |$|\n)/gi;
-
- var matches = text.match(re1);
-
- if (!matches) {
- this.updateMentionTab(null, []);
- return;
- }
-
- var mentions = [];
- for (var i = 0; i < matches.length; i++) {
- var m = matches[i].substring(1,matches[i].length).trim();
- if ((m in profileMap && mentions.indexOf(m) === -1) || Constants.SPECIAL_MENTIONS.indexOf(m) !== -1) {
- mentions.push(m);
- }
- }
-
- /* Figure out what the user is currently typing. If it's a mention then we don't
- want to add it to the mention list yet, so we remove it if
- there is only one occurence of that mention so far. */
- var caret = utils.getCaretPosition(this.refs.message.getDOMNode());
-
- var text = this.props.messageText;
-
- var preText = text.substring(0, caret);
-
- var atIndex = preText.lastIndexOf('@');
- var spaceIndex = preText.lastIndexOf(' ');
- var newLineIndex = preText.lastIndexOf('\n');
-
- var typingMention = "";
- if (atIndex > spaceIndex && atIndex > newLineIndex) {
-
- typingMention = text.substring(atIndex+1, caret);
- }
-
- var re2 = new RegExp('@' + typingMention + '( |$|\n)', 'g');
-
- if ((text.match(re2) || []).length === 1 && mentions.indexOf(typingMention) !== -1) {
- mentions.splice(mentions.indexOf(typingMention), 1);
- }
-
- this.updateMentionTab(null, mentions);
- },
checkForNewMention: function(text) {
var caret = utils.getCaretPosition(this.refs.message.getDOMNode());
@@ -227,7 +175,7 @@ module.exports = React.createClass({
// The @ character not typed, so nothing to do.
if (atIndex === -1) {
- this.updateMentionTab('-1', null);
+ this.updateMentionTab('-1');
return;
}
@@ -236,13 +184,13 @@ module.exports = React.createClass({
// If there is a space after the last @, nothing to do.
if (lastSpace > atIndex || lastCharSpace > atIndex) {
- this.updateMentionTab('-1', null);
+ this.updateMentionTab('-1');
return;
}
// Get the name typed so far.
var name = preText.substring(atIndex+1, preText.length).toLowerCase();
- this.updateMentionTab(name, null);
+ this.updateMentionTab(name);
},
addMention: function(name) {
var caret = utils.getCaretPosition(this.refs.message.getDOMNode());
diff --git a/web/react/stores/post_store.jsx b/web/react/stores/post_store.jsx
index ecf54ede6..4aa6ebb3a 100644
--- a/web/react/stores/post_store.jsx
+++ b/web/react/stores/post_store.jsx
@@ -193,7 +193,7 @@ PostStore.dispatchToken = AppDispatcher.register(function(payload) {
PostStore.emitSelectedPostChange(action.from_search);
break;
case ActionTypes.RECIEVED_MENTION_DATA:
- PostStore.emitMentionDataChange(action.id, action.mention_text, action.exclude_list);
+ PostStore.emitMentionDataChange(action.id, action.mention_text);
break;
case ActionTypes.RECIEVED_ADD_MENTION:
PostStore.emitAddMention(action.id, action.username);