@modern-kit/react
Version:
40 lines (36 loc) • 992 B
JavaScript
;
var jsxRuntime = require('react/jsx-runtime');
var React = require('react');
var componentsIterator = require('../Iterator/index.cjs');
require('@modern-kit/utils');
const SeparatedIterator = ({
itemKey,
items,
separator,
renderItem,
separatorInterval = 1,
includeLastSeparator = false
}) => {
const isRenderSeparator = React.useCallback(
(index) => {
if (index === items.length - 1) {
return includeLastSeparator;
}
return (index + 1) % separatorInterval === 0;
},
[includeLastSeparator, separatorInterval, items.length]
);
return /* @__PURE__ */ jsxRuntime.jsx(
componentsIterator.Iterator,
{
items,
itemKey,
renderItem: (item, index) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
renderItem(item, index),
isRenderSeparator(index) && separator
] })
}
);
};
exports.SeparatedIterator = SeparatedIterator;
//# sourceMappingURL=index.cjs.map