diff options
Diffstat (limited to 'app/client/system/system.reducer.js')
| -rw-r--r-- | app/client/system/system.reducer.js | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/app/client/system/system.reducer.js b/app/client/system/system.reducer.js index e581813..1b0e28f 100644 --- a/app/client/system/system.reducer.js +++ b/app/client/system/system.reducer.js @@ -9,6 +9,21 @@ const systemInitialState = { site: { name: 'Lens Cortex', }, + server: { + connected: false, + status: "disconnected", + error: null, + }, + relay: { + connected: false, + status: "unknown", + error: null, + }, + rpc: { + connected: false, + status: "unknown", + error: null, + }, cmd: { loading: false, loaded: false, @@ -111,6 +126,63 @@ const systemInitialState = { const systemReducer = (state = systemInitialState, action) => { switch(action.type) { + case types.socket.connect: + case types.socket.reconnecting: + return { + ...state, + server: { + status: 'connected', + connected: true, + error: null, + }, + } + case types.socket.reconnect: + return { + ...state, + server: { + status: 'reconnecting (attempt ' + action.attempt + ')', + connected: false, + error: null, + }, + } + case types.socket.connect_error: + case types.socket.reconnect_error: + case types.socket.disconnect: + case types.socket.reconnect_failed: + return { + ...state, + server: { + status: 'disconnected', + connected: false, + error: action.error || null, + }, + } + case types.socket.error: + return { + ...state, + server: { + ...state.socket, + error: action.error, + }, + } + case types.system.relay_connected: + return { + ...state, + relay: { + status: 'connected', + connected: true, + error: null, + } + } + case types.system.relay_disconnected: + return { + ...state, + relay: { + status: 'disconnected', + connected: false, + error: null, + } + } case types.system.running_command: return { ...state, |
