@servicenow/library-enhanced-element
Version:
Base element for Now Design System components
42 lines (35 loc) • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.extendWithLocals = exports.localsSetEffectHandler = undefined;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _uiEffectUpdateState = require('@servicenow/ui-effect-update-state');
const localsSetEffectHandler = exports.localsSetEffectHandler = (0, _uiEffectUpdateState.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 _extends({}, state, {
locals: _extends({}, state.locals, payload)
});
});
const extendWithLocals = exports.extendWithLocals = baseConfig => {
const localsConfig = baseConfig.locals || {};
const locals = Object.keys(localsConfig).reduce((acc, key) => _extends({}, acc, {
[key]: localsConfig[key].default
}), {});
return _extends({}, baseConfig, {
actionHandlers: _extends({
LOCALS_SET: _extends({}, localsSetEffectHandler, {
stopPropagation: true
})
}, baseConfig.actionHandlers),
initialState: _extends({
locals,
properties: {}
}, baseConfig.initialState)
});
};