summaryrefslogtreecommitdiffstats
path: root/webapp/actions
diff options
context:
space:
mode:
authorHarrison Healey <harrisonmhealey@gmail.com>2017-04-20 11:30:50 -0400
committerGeorge Goldberg <george@gberg.me>2017-04-20 16:30:50 +0100
commit4a49dec7ade2672a861647f508e6611cbade3905 (patch)
treebb1c665145de2fc79f5d2b0468bbd6cf90a0b195 /webapp/actions
parentff8b91027fd531880ea951bee1a0b63e506b0ae8 (diff)
downloadchat-4a49dec7ade2672a861647f508e6611cbade3905.tar.gz
chat-4a49dec7ade2672a861647f508e6611cbade3905.tar.bz2
chat-4a49dec7ade2672a861647f508e6611cbade3905.zip
PLT-1384 Synced preferences over the websocket (#6108)
Diffstat (limited to 'webapp/actions')
-rw-r--r--webapp/actions/global_actions.jsx24
-rw-r--r--webapp/actions/websocket_actions.jsx18
2 files changed, 41 insertions, 1 deletions
diff --git a/webapp/actions/global_actions.jsx b/webapp/actions/global_actions.jsx
index c81bb02ac..c3cfb00a4 100644
--- a/webapp/actions/global_actions.jsx
+++ b/webapp/actions/global_actions.jsx
@@ -403,11 +403,33 @@ export function emitPreferenceChangedEvent(preference) {
preference
});
- if (preference.category === Constants.Preferences.CATEGORY_DIRECT_CHANNEL_SHOW) {
+ if (addedNewDmUser(preference)) {
loadProfilesForSidebar();
}
}
+export function emitPreferencesChangedEvent(preferences) {
+ AppDispatcher.handleServerAction({
+ type: Constants.ActionTypes.RECEIVED_PREFERENCES,
+ preferences
+ });
+
+ if (preferences.findIndex(addedNewDmUser) !== -1) {
+ loadProfilesForSidebar();
+ }
+}
+
+function addedNewDmUser(preference) {
+ return preference.category === Constants.Preferences.CATEGORY_DIRECT_CHANNEL_SHOW && preference.value === 'true';
+}
+
+export function emitPreferencesDeletedEvent(preferences) {
+ AppDispatcher.handleServerAction({
+ type: Constants.ActionTypes.DELETED_PREFERENCES,
+ preferences
+ });
+}
+
export function emitRemovePost(post) {
AppDispatcher.handleViewAction({
type: Constants.ActionTypes.REMOVE_POST,
diff --git a/webapp/actions/websocket_actions.jsx b/webapp/actions/websocket_actions.jsx
index 916abb5af..41e1c8f4b 100644
--- a/webapp/actions/websocket_actions.jsx
+++ b/webapp/actions/websocket_actions.jsx
@@ -185,6 +185,14 @@ function handleEvent(msg) {
handlePreferenceChangedEvent(msg);
break;
+ case SocketEvents.PREFERENCES_CHANGED:
+ handlePreferencesChangedEvent(msg);
+ break;
+
+ case SocketEvents.PREFERENCES_DELETED:
+ handlePreferencesDeletedEvent(msg);
+ break;
+
case SocketEvents.TYPING:
handleUserTypingEvent(msg);
break;
@@ -356,6 +364,16 @@ function handlePreferenceChangedEvent(msg) {
GlobalActions.emitPreferenceChangedEvent(preference);
}
+function handlePreferencesChangedEvent(msg) {
+ const preferences = JSON.parse(msg.data.preferences);
+ GlobalActions.emitPreferencesChangedEvent(preferences);
+}
+
+function handlePreferencesDeletedEvent(msg) {
+ const preferences = JSON.parse(msg.data.preferences);
+ GlobalActions.emitPreferencesDeletedEvent(preferences);
+}
+
function handleUserTypingEvent(msg) {
GlobalActions.emitRemoteUserTypingEvent(msg.broadcast.channel_id, msg.data.user_id, msg.data.parent_id);