UNPKG

cluedin-widget

Version:

This is the project for creating and managing widgets in CluedIn.

57 lines (53 loc) 1.79 kB
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; } };