@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
62 lines (61 loc) • 2.01 kB
JavaScript
;
"use client";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = require("react");
var _index = _interopRequireDefault(require("../../utils/json-pointer/index.js"));
var _Context = _interopRequireDefault(require("../Context.js"));
var _withComponentMarkers = _interopRequireDefault(require("../../../../shared/helpers/withComponentMarkers.js"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function At(props) {
const {
path = '/',
iterate,
children
} = props;
const dataContext = (0, _react.useContext)(_Context.default);
const {
data: contextData,
handlePathChange: handlePathChangeDataContext
} = dataContext;
const data = contextData && _index.default.has(contextData, path) ? _index.default.get(contextData, path) : undefined;
const handlePathChange = (0, _react.useCallback)((changePath, value) => {
handlePathChangeDataContext(`${path}${changePath}`, value);
}, [handlePathChangeDataContext, path]);
if (iterate) {
if (!Array.isArray(data)) {
return null;
}
return (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
children: data.map((element, i) => {
const handlePathChange = handlePathChangeDataContext ? (changePath, value) => {
handlePathChangeDataContext(`${path}/${i}${changePath}`, value);
} : undefined;
return (0, _jsxRuntime.jsx)(_Context.default, {
value: {
...dataContext,
data: element,
handlePathChange
},
children: children
}, `element${i}`);
})
});
}
return (0, _jsxRuntime.jsx)(_Context.default, {
value: {
...dataContext,
data,
handlePathChange
},
children: children
});
}
(0, _withComponentMarkers.default)(At, {
_supportsSpacingProps: true
});
var _default = exports.default = At;
//# sourceMappingURL=At.js.map