cluedin-widget
Version:
This is the project for creating and managing widgets in CluedIn.
57 lines (53 loc) • 1.79 kB
JavaScript
const constants = require( '../constants' );
const initialState = {
layout: {},
token: '',
org: '',
connectedData: []
};
module.exports = function update( state = initialState, action = {} ) {
switch( action.type ) {
case constants.core.RESET_LAYOUT:
return {
layout: {},
token: state.token,
org: state.org,
connectedData: state.connectedData
};
case constants.generic.UNAUTHORIZED_REQUEST:
return Object.assign( {}, {
layout: state.layout,
token: void 0,
org: state.org,
connectedData: state.connectedData
} );
case constants.core.RECEIVE_LAYOUT:
return {
layout: Object.assign( {}, action.data.layout ),
token: state.token,
org: state.org,
connectedData: state.connectedData
};
case constants.core.RECEIVE_MOST_CONNECTED:
return Object.assign( {}, {
connectedData: action.data,
layout: state.layout,
token: state.token,
org: state.org
} );
case constants.core.REMOVE_WIDGET:
var newLayout = state.layout;
var name = action.data.name;
newLayout.widgets = state.layout.widgets.filter( ( w ) => {
return w.name !== name;
} );
return Object.assign( {}, {
connectedData: action.data,
layout: Object.assign( {}, newLayout ),
token: state.token,
org: state.org
} );
default :
return state;
}
};