mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
Added keys to array-based elements and made getMe asynchronous
This commit is contained in:
@@ -439,9 +439,9 @@ module.exports = React.createClass({
|
||||
currentPostDay = utils.getDateForUnixTicks(post.create_at);
|
||||
if (currentPostDay.toDateString() != previousPostDay.toDateString()) {
|
||||
postCtls.push(
|
||||
<div className="date-separator">
|
||||
<hr className="separator__hr" />
|
||||
<div className="separator__text">{currentPostDay.toDateString()}</div>
|
||||
<div key="date_div" className="date-separator">
|
||||
<hr key="date_line" className="separator__hr" />
|
||||
<div key="date" className="separator__text">{currentPostDay.toDateString()}</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -449,9 +449,9 @@ module.exports = React.createClass({
|
||||
if (post.create_at > last_viewed && !rendered_last_viewed) {
|
||||
rendered_last_viewed = true;
|
||||
postCtls.push(
|
||||
<div className="new-separator">
|
||||
<hr id="new_message" className="separator__hr" />
|
||||
<div className="separator__text">New Messages</div>
|
||||
<div key="unviewed_div" className="new-separator">
|
||||
<hr key="unviewed_line" id="new_message" className="separator__hr" />
|
||||
<div key="unviewedMessage" className="separator__text">New Messages</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -459,7 +459,7 @@ module.exports = React.createClass({
|
||||
previousPostDay = currentPostDay;
|
||||
}
|
||||
} else {
|
||||
postCtls.push(<LoadingScreen position="absolute" />);
|
||||
postCtls.push(<LoadingScreen key="loading" position="absolute" />);
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
var utils = require('../utils/utils.jsx');
|
||||
|
||||
module.exports = React.createClass({
|
||||
displayName:'SettingsSidebar',
|
||||
updateTab: function(tab) {
|
||||
this.props.updateTab(tab);
|
||||
$('.settings-modal').addClass('display--content');
|
||||
@@ -14,7 +15,7 @@ module.exports = React.createClass({
|
||||
<div className="">
|
||||
<ul className="nav nav-pills nav-stacked">
|
||||
{this.props.tabs.map(function(tab) {
|
||||
return <li className={self.props.activeTab == tab.name ? 'active' : ''}><a href="#" onClick={function(){self.updateTab(tab.name);}}><i className={tab.icon}></i>{tab.ui_name}</a></li>
|
||||
return <li key={tab.name+'_li'} className={self.props.activeTab == tab.name ? 'active' : ''}><a key={tab.name + '_a'} href="#" onClick={function(){self.updateTab(tab.name);}}><i key={tab.name+'_i'} className={tab.icon}></i>{tab.ui_name}</a></li>
|
||||
})}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@@ -87,7 +87,8 @@ var NavbarDropdown = React.createClass({
|
||||
}
|
||||
});
|
||||
}
|
||||
teams.push(<li><a href={utils.getWindowLocationOrigin() + '/signup_team'}>Create a New Team</a></li>);
|
||||
teams.push(<li key="newTeam_li"><a key="newTeam_a" href={utils.getWindowLocationOrigin() + "/signup_team" }>Create a New Team</a></li>);
|
||||
|
||||
|
||||
return (
|
||||
<ul className='nav navbar-nav navbar-right'>
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
var AppDispatcher = require('../dispatcher/app_dispatcher.jsx');
|
||||
var EventEmitter = require('events').EventEmitter;
|
||||
var assign = require('object-assign');
|
||||
var client = require('../utils/client.jsx');
|
||||
|
||||
var Constants = require('../utils/constants.jsx');
|
||||
var ActionTypes = Constants.ActionTypes;
|
||||
@@ -73,24 +72,13 @@ var UserStore = assign({}, EventEmitter.prototype, {
|
||||
BrowserStore.setGlobalItem("current_user_id", id);
|
||||
}
|
||||
},
|
||||
getCurrentId: function(skipFetch) {
|
||||
getCurrentId: function() {
|
||||
var current_id = this._current_id;
|
||||
|
||||
if (current_id == null) {
|
||||
current_id = BrowserStore.getGlobalItem("current_user_id");
|
||||
}
|
||||
|
||||
// this is a speical case to force fetch the
|
||||
// current user if it's missing
|
||||
// it's synchronous to block rendering
|
||||
if (current_id == null && !skipFetch) {
|
||||
var me = client.getMeSynchronous();
|
||||
if (me != null) {
|
||||
this.setCurrentUser(me);
|
||||
current_id = me.id;
|
||||
}
|
||||
}
|
||||
|
||||
return current_id;
|
||||
},
|
||||
getCurrentUser: function(skipFetch) {
|
||||
|
||||
@@ -322,7 +322,7 @@ module.exports.getMe = function() {
|
||||
if (isCallInProgress("getMe")) return;
|
||||
|
||||
callTracker["getMe"] = utils.getTimestamp();
|
||||
client.getMeSynchronous(
|
||||
client.getMe(
|
||||
function(data, textStatus, xhr) {
|
||||
callTracker["getMe"] = 0;
|
||||
|
||||
|
||||
@@ -279,32 +279,24 @@ module.exports.getAudits = function(userId, success, error) {
|
||||
});
|
||||
};
|
||||
|
||||
module.exports.getMeSynchronous = function(success, error) {
|
||||
|
||||
var current_user = null;
|
||||
module.exports.getMe = function(success, error) {
|
||||
|
||||
$.ajax({
|
||||
async: false,
|
||||
url: "/api/v1/users/me",
|
||||
dataType: 'json',
|
||||
contentType: 'application/json',
|
||||
type: 'GET',
|
||||
success: function(data, textStatus, xhr) {
|
||||
current_user = data;
|
||||
if (success) success(data, textStatus, xhr);
|
||||
},
|
||||
success: success,
|
||||
error: function(xhr, status, err) {
|
||||
var ieChecker = window.navigator.userAgent; // This and the condition below is used to check specifically for browsers IE10 & 11 to suppress a 200 'OK' error from appearing on login
|
||||
if (xhr.status != 200 || !(ieChecker.indexOf("Trident/7.0") > 0 || ieChecker.indexOf("Trident/6.0") > 0)) {
|
||||
if (error) {
|
||||
e = handleError("getMeSynchronous", xhr, status, err);
|
||||
e = handleError("getMe", xhr, status, err);
|
||||
error(e);
|
||||
};
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
return current_user;
|
||||
};
|
||||
|
||||
module.exports.inviteMembers = function(data, success, error) {
|
||||
|
||||
Reference in New Issue
Block a user