@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
28 lines (27 loc) • 1.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = setData;
var _index = _interopRequireDefault(require("../../utils/json-pointer/index.js"));
var _useSharedState = require("../../../../shared/helpers/useSharedState.js");
var _structuredClone = require("../../../../shared/helpers/structuredClone.js");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function setData(id, data) {
const sharedState = (0, _useSharedState.createSharedState)(id);
if (data) {
sharedState.extend(data);
}
const update = (path, value = undefined) => {
const existingData = (0, _structuredClone.structuredClone)(sharedState.data || {});
if (typeof value === 'function') {
value = value(_index.default.has(existingData, path) ? _index.default.get(existingData, path) : undefined);
}
_index.default.set(existingData, path, value);
sharedState.extend(existingData);
};
return {
update
};
}
//# sourceMappingURL=setData.js.map