infinity-forge
Version:
52 lines • 2.67 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Accordions = Accordions;
var jsx_runtime_1 = require("react/jsx-runtime");
var react_1 = require("react");
var component_1 = require("../component.js");
function Accordions(_a) {
var items = _a.items, Component = _a.Component, configurations = _a.configurations;
var _b = (0, react_1.useState)(undefined), indexOpened = _b[0], setIndexOpened = _b[1];
var isMultiple = configurations.isMultiple;
var accordionProps = (configurations === null || configurations === void 0 ? void 0 : configurations.accordion) || {};
return items === null || items === void 0 ? void 0 : items.map(function (item, index) {
var isOpen = isMultiple && Array.isArray(indexOpened) ? indexOpened.includes(index) : indexOpened === index;
return ((0, jsx_runtime_1.jsx)(component_1.Accordion, __assign({ controlledIsOpen: isOpen, itemProps: item, click: function () {
setIndexOpened(function (oldState) {
if (isMultiple) {
var oldArray = Array.isArray(oldState) ? oldState : [];
var alreadyOpen = oldArray.includes(index);
if (alreadyOpen) {
return oldArray.filter(function (i) { return i !== index; });
}
else {
return __spreadArray(__spreadArray([], oldArray, true), [index], false);
}
}
// Comportamento padrão (apenas um aberto por vez)
return index === oldState ? undefined : index;
});
} }, accordionProps, { children: (0, jsx_runtime_1.jsx)(Component, __assign({}, item)) }), (item === null || item === void 0 ? void 0 : item.id) || index));
});
}
//# sourceMappingURL=index.js.map