summaryrefslogtreecommitdiff
path: root/app/client/system/system.reducer.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/client/system/system.reducer.js')
-rw-r--r--app/client/system/system.reducer.js72
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,