From 0ff6dba3c86e88b53fcee19d12e82cd4601ed862 Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Tue, 2 Jul 2019 14:20:48 -0400 Subject: [PATCH] MM-16477 Check for modified users on reconnect (#2936) * MM-16477 Move websocket status to redux * MM-16477 Check for modified users on reconnect * Update mattermost-redux * Update mattermost-redux --- app/actions/views/channel.js | 2 +- app/reducers/device/index.js | 2 -- app/reducers/device/websocket.js | 34 -------------------------------- app/store/middleware.js | 8 ++++++++ package-lock.json | 4 ++-- package.json | 2 +- packager/moduleNames.js | 1 - packager/modulePaths.js | 1 - 8 files changed, 12 insertions(+), 42 deletions(-) delete mode 100644 app/reducers/device/websocket.js diff --git a/app/actions/views/channel.js b/app/actions/views/channel.js index 32418fd2e..687d1178d 100644 --- a/app/actions/views/channel.js +++ b/app/actions/views/channel.js @@ -198,7 +198,7 @@ export function loadPostsIfNecessaryWithRetry(channelId) { }); } } else { - const {lastConnectAt} = state.device.websocket; + const {lastConnectAt} = state.websocket; const lastGetPosts = state.views.channel.lastGetPosts[channelId]; let since; diff --git a/app/reducers/device/index.js b/app/reducers/device/index.js index 14a8e351d..5145f3e85 100644 --- a/app/reducers/device/index.js +++ b/app/reducers/device/index.js @@ -8,7 +8,6 @@ import dimension from './dimension'; import isTablet from './is_tablet'; import orientation from './orientation'; import statusBarHeight from './status_bar'; -import websocket from './websocket'; export default combineReducers({ connection, @@ -16,5 +15,4 @@ export default combineReducers({ isTablet, orientation, statusBarHeight, - websocket, }); diff --git a/app/reducers/device/websocket.js b/app/reducers/device/websocket.js deleted file mode 100644 index 803e8fdde..000000000 --- a/app/reducers/device/websocket.js +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See LICENSE.txt for license information. - -import {GeneralTypes, UserTypes} from 'mattermost-redux/action_types'; - -function getInitialState() { - return { - connected: false, - lastConnectAt: 0, - lastDisconnectAt: 0, - }; -} - -export default function(state = getInitialState(), action) { - if (!state.connected && action.type === GeneralTypes.WEBSOCKET_SUCCESS) { - return { - ...state, - connected: true, - lastConnectAt: new Date().getTime(), - }; - } else if (state.connected && (action.type === GeneralTypes.WEBSOCKET_FAILURE || action.type === GeneralTypes.WEBSOCKET_CLOSED)) { - return { - ...state, - connected: false, - lastDisconnectAt: new Date().getTime(), - }; - } - - if (action.type === UserTypes.LOGOUT_SUCCESS) { - return getInitialState(); - } - - return state; -} diff --git a/app/store/middleware.js b/app/store/middleware.js index 6910aeef3..05a8cbbb7 100644 --- a/app/store/middleware.js +++ b/app/store/middleware.js @@ -172,6 +172,10 @@ function resetStateForNewVersion(action) { selectServer, recentEmojis, }, + websocket: { + lastConnectAt: payload.websocket?.lastConnectAt, + lastDisconnectAt: payload.websocket?.lastDisconnectAt, + }, }; return { @@ -328,6 +332,10 @@ export function cleanUpState(action, keepCurrent = false) { ...payload.views.channel, }, }, + websocket: { + lastConnectAt: payload.websocket?.lastConnectAt, + lastDisconnectAt: payload.websocket?.lastDisconnectAt, + }, }; nextState.errors = payload.errors; diff --git a/package-lock.json b/package-lock.json index b37b97a3e..d8a94641b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13155,8 +13155,8 @@ "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" }, "mattermost-redux": { - "version": "github:mattermost/mattermost-redux#f9b616dfbb532e1a196be67744e2277366532a73", - "from": "github:mattermost/mattermost-redux#f9b616dfbb532e1a196be67744e2277366532a73", + "version": "github:mattermost/mattermost-redux#66dcea7c71de9f87e3fe12652458e16f9517f6b7", + "from": "github:mattermost/mattermost-redux#66dcea7c71de9f87e3fe12652458e16f9517f6b7", "requires": { "deep-equal": "1.0.1", "eslint-plugin-header": "3.0.0", diff --git a/package.json b/package.json index e99f64bb7..f621eeb05 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "intl": "1.2.5", "jail-monkey": "2.2.0", "jsc-android": "241213.2.0", - "mattermost-redux": "github:mattermost/mattermost-redux#f9b616dfbb532e1a196be67744e2277366532a73", + "mattermost-redux": "github:mattermost/mattermost-redux#66dcea7c71de9f87e3fe12652458e16f9517f6b7", "mime-db": "1.40.0", "moment-timezone": "0.5.25", "prop-types": "15.7.2", diff --git a/packager/moduleNames.js b/packager/moduleNames.js index 1263945e9..7e79e8e76 100644 --- a/packager/moduleNames.js +++ b/packager/moduleNames.js @@ -32,7 +32,6 @@ module.exports = [ 'app/reducers/device/is_tablet.js', 'app/reducers/device/orientation.js', 'app/reducers/device/status_bar.js', - 'app/reducers/device/websocket.js', 'app/reducers/index.js', 'app/reducers/navigation/index.js', 'app/reducers/views/announcement.js', diff --git a/packager/modulePaths.js b/packager/modulePaths.js index 301f51f92..cef5a4ff2 100644 --- a/packager/modulePaths.js +++ b/packager/modulePaths.js @@ -31,7 +31,6 @@ module.exports = ['./node_modules/app/components/loading.js', './node_modules/app/reducers/device/is_tablet.js', './node_modules/app/reducers/device/orientation.js', './node_modules/app/reducers/device/status_bar.js', - './node_modules/app/reducers/device/websocket.js', './node_modules/app/reducers/index.js', './node_modules/app/reducers/navigation/index.js', './node_modules/app/reducers/views/announcement.js',