summaryrefslogtreecommitdiffstats
path: root/web/react/stores/user_store.jsx
diff options
context:
space:
mode:
authorJoramWilander <jwawilander@gmail.com>2015-08-14 08:43:49 -0400
committerJoramWilander <jwawilander@gmail.com>2015-08-14 12:38:16 -0400
commitb704e9489b21b3bec17f5c8b573a1724781ee6f7 (patch)
tree002f9fb35ce932800160bc45d91a50804bbb6594 /web/react/stores/user_store.jsx
parente27db2ed63fd3c9c686c049a9b9049a907985ecc (diff)
downloadchat-b704e9489b21b3bec17f5c8b573a1724781ee6f7.tar.gz
chat-b704e9489b21b3bec17f5c8b573a1724781ee6f7.tar.bz2
chat-b704e9489b21b3bec17f5c8b573a1724781ee6f7.zip
added google sign-in functionality to the client, with minor model modifications
Diffstat (limited to 'web/react/stores/user_store.jsx')
-rw-r--r--web/react/stores/user_store.jsx14
1 files changed, 13 insertions, 1 deletions
diff --git a/web/react/stores/user_store.jsx b/web/react/stores/user_store.jsx
index f8616c6ab..248495dac 100644
--- a/web/react/stores/user_store.jsx
+++ b/web/react/stores/user_store.jsx
@@ -4,6 +4,7 @@
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;
@@ -72,7 +73,7 @@ var UserStore = assign({}, EventEmitter.prototype, {
BrowserStore.setGlobalItem('current_user_id', id);
}
},
- getCurrentId: function() {
+ getCurrentId: function(skipFetch) {
var currentId = this.gCurrentId;
if (currentId == null) {
@@ -80,6 +81,17 @@ var UserStore = assign({}, EventEmitter.prototype, {
this.gCurrentId = currentId;
}
+ // this is a special case to force fetch the
+ // current user if it's missing
+ // it's synchronous to block rendering
+ if (currentId == null && !skipFetch) {
+ var me = client.getMeSynchronous();
+ if (me != null) {
+ this.setCurrentUser(me);
+ currentId = me.id;
+ }
+ }
+
return currentId;
},
getCurrentUser: function() {