@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
29 lines (28 loc) • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = setData;
var _jsonPointer = _interopRequireDefault(require("../../utils/json-pointer"));
var _useSharedState = require("../../../../shared/helpers/useSharedState");
var _structuredClone = _interopRequireDefault(require("@ungap/structured-clone"));
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 = function (path) {
let value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
const existingData = (0, _structuredClone.default)(sharedState.data || {});
if (typeof value === 'function') {
value = value(_jsonPointer.default.has(existingData, path) ? _jsonPointer.default.get(existingData, path) : undefined);
}
_jsonPointer.default.set(existingData, path, value);
sharedState.extend(existingData);
};
return {
update
};
}
//# sourceMappingURL=setData.js.map