diff options
Diffstat (limited to 'webapp/actions')
-rw-r--r-- | webapp/actions/global_actions.jsx | 24 | ||||
-rw-r--r-- | webapp/actions/websocket_actions.jsx | 18 |
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); |