diff options
author | Joram Wilander <jwawilander@gmail.com> | 2017-06-06 17:24:08 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-06 17:24:08 -0400 |
commit | 6e7b912ec61a6a791e0e8405ff6f6bd7e622a187 (patch) | |
tree | c2fa1d2bae0b344859339d9077af5d822420e7bb /webapp/actions | |
parent | 02f09b8af90f1df38762b5257291b31597575dbb (diff) | |
download | chat-6e7b912ec61a6a791e0e8405ff6f6bd7e622a187.tar.gz chat-6e7b912ec61a6a791e0e8405ff6f6bd7e622a187.tar.bz2 chat-6e7b912ec61a6a791e0e8405ff6f6bd7e622a187.zip |
PLT-4257 Add pop-up asking if user wants to reset status (#6526)
* Add pop-up asking if user wants to reset status
* Update test snapshot
* Update prop name for old uses of confirm modal
* Updating checkbox (#6586)
* Updating style for checkbox (#6596)
Diffstat (limited to 'webapp/actions')
-rw-r--r-- | webapp/actions/user_actions.jsx | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/webapp/actions/user_actions.jsx b/webapp/actions/user_actions.jsx index 606dccdb8..63c716d5d 100644 --- a/webapp/actions/user_actions.jsx +++ b/webapp/actions/user_actions.jsx @@ -26,6 +26,7 @@ const dispatch = store.dispatch; const getState = store.getState; import * as Selectors from 'mattermost-redux/selectors/entities/users'; +import {getBool} from 'mattermost-redux/selectors/entities/preferences'; import { getProfiles, @@ -43,12 +44,15 @@ import { createUser, login, loadMe as loadMeRedux, - updateUserRoles as updateUserRolesRedux + updateUserRoles as updateUserRolesRedux, + getStatus, + setStatus } from 'mattermost-redux/actions/users'; import {getClientConfig, getLicenseConfig} from 'mattermost-redux/actions/general'; import {getTeamMembersByIds, getMyTeamMembers} from 'mattermost-redux/actions/teams'; import {getChannelAndMyMember} from 'mattermost-redux/actions/channels'; +import {Preferences as PreferencesRedux} from 'mattermost-redux/constants'; export function loadMe(callback) { loadMeRedux()(dispatch, getState).then( @@ -831,3 +835,23 @@ export function loadMyTeamMembers() { } ); } + +export function autoResetStatus() { + return async (doDispatch, doGetState) => { + const {currentUserId} = getState().entities.users; + const userStatus = await getStatus(currentUserId)(doDispatch, doGetState); + + if (!userStatus.manual) { + return userStatus; + } + + const autoReset = getBool(getState(), PreferencesRedux.CATEGORY_AUTO_RESET_MANUAL_STATUS, currentUserId, false); + + if (autoReset) { + setStatus({user_id: currentUserId, status: 'online'})(doDispatch, doGetState); + return userStatus; + } + + return userStatus; + }; +} |