UNPKG

@servicenow/library-enhanced-element

Version:

Base element for Now Design System components

50 lines (45 loc) 1.07 kB
import {createUpdateStateEffect} from '@servicenow/ui-effect-update-state'; export const localsSetEffectHandler = createUpdateStateEffect( (state, action) => { /* eslint-disable-next-line no-undef */ if (process.env.NODE_ENV === 'development') { /* eslint-disable-next-line no-console */ console.warn( '`locals` from @devsnc/library-enhanced-element is deprecated. Please migrate to using `updateState` helper method from @servicenow/ui-core.' ); } const {payload} = action; return { ...state, locals: { ...state.locals, ...payload } }; } ); export const extendWithLocals = (baseConfig) => { const localsConfig = baseConfig.locals || {}; const locals = Object.keys(localsConfig).reduce( (acc, key) => ({ ...acc, [key]: localsConfig[key].default }), {} ); return { ...baseConfig, actionHandlers: { LOCALS_SET: { ...localsSetEffectHandler, stopPropagation: true }, ...baseConfig.actionHandlers }, initialState: { locals, properties: {}, ...baseConfig.initialState } }; };