// Copyright (c) 2017-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; }