UNPKG

cluedin-widget

Version:

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

69 lines (55 loc) 1.9 kB
/* { '/Organization': { version: '1', //simple increment to remove state for specific entity removedWidgets: [ 'OnBoarding','LastDocument' ], widgetStates: [ { name: 'OnBoarding', parameters: { show: false } }, { name: 'PeopleOnThisPlatform', isSuggestedSearch: true, parameters: { filter: 'someValues' } } ] } } */ import localStorage from 'store'; import config from '../config/index' const globalKey = 'cluedIn_' + config.clientId; module.exports = { getExcludedWidgets( entityType ) { let state = localStorage.get( globalKey ) || {}; var stateForEntityType = state[ entityType ] || void 0; if ( !stateForEntityType ) { return [] } return ( stateForEntityType.removedWidgets || []); }, getWidget( entityType ) { let state = localStorage.get( globalKey ) || {}; return state[ entityType ] || void 0; }, resetWidget( entityType ) { let state = localStorage.get( globalKey ) || {}; if ( state[ entityType ] ) { state[ entityType ].removedWidgets = [] } localStorage.set( globalKey, state ); }, removeWidget( entityType, widgetName ) { let state = localStorage.get( globalKey ) || {}; var stateForEntityType = state[ entityType ]; if ( stateForEntityType ) { if ( stateForEntityType.removedWidgets && stateForEntityType.removedWidgets.length > 0 ) { stateForEntityType.removedWidgets.push( widgetName ); } else { stateForEntityType.removedWidgets = [ widgetName ]; } state[ entityType ] = stateForEntityType; } else { state[ entityType ] = { removedWidgets: [ widgetName ], widgetStates: [] } } localStorage.set( globalKey, state ); } };