PLT-2241 Refactored statuses into a more real-time system (#3573)

* Refactored statuses into a more real-time system

* Updated package.json with correct commit and fixed minor bug

* Minor updates to statuses based on feedback

* When setting status online, update only LastActivityAt if status already exists
Этот коммит содержится в:
Joram Wilander
2016-07-18 11:10:03 -04:00
коммит произвёл GitHub
родитель 180adc79af
Коммит c0ab2636d6
35 изменённых файлов: 800 добавлений и 376 удалений

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

@@ -9,6 +9,7 @@ import LocalizationStore from './localization_store.jsx';
import Constants from 'utils/constants.jsx';
const ActionTypes = Constants.ActionTypes;
const UserStatuses = Constants.UserStatuses;
const CHANGE_EVENT_DM_LIST = 'change_dm_list';
const CHANGE_EVENT = 'change';
@@ -292,18 +293,11 @@ class UserStoreClass extends EventEmitter {
}
setStatuses(statuses) {
this.pSetStatuses(statuses);
this.emitStatusesChange();
}
pSetStatuses(statuses) {
this.statuses = statuses;
this.statuses = Object.assign(this.statuses, statuses);
}
setStatus(userId, status) {
var statuses = this.getStatuses();
statuses[userId] = status;
this.pSetStatuses(statuses);
this.statuses[userId] = status;
this.emitStatusesChange();
}
@@ -312,7 +306,7 @@ class UserStoreClass extends EventEmitter {
}
getStatus(id) {
return this.getStatuses()[id];
return this.getStatuses()[id] || UserStatuses.OFFLINE;
}
getNoAccounts() {
@@ -370,7 +364,7 @@ UserStore.dispatchToken = AppDispatcher.register((payload) => {
UserStore.emitAuditsChange();
break;
case ActionTypes.RECEIVED_STATUSES:
UserStore.pSetStatuses(action.statuses);
UserStore.setStatuses(action.statuses);
UserStore.emitStatusesChange();
break;
default: