@modern-kit/react
Version:
38 lines (35 loc) • 908 B
JavaScript
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
import { useCallback } from 'react';
import { Iterator } from '../Iterator/index.mjs';
import '@modern-kit/utils';
const SeparatedIterator = ({
itemKey,
items,
separator,
renderItem,
separatorInterval = 1,
includeLastSeparator = false
}) => {
const isRenderSeparator = useCallback(
(index) => {
if (index === items.length - 1) {
return includeLastSeparator;
}
return (index + 1) % separatorInterval === 0;
},
[includeLastSeparator, separatorInterval, items.length]
);
return /* @__PURE__ */ jsx(
Iterator,
{
items,
itemKey,
renderItem: (item, index) => /* @__PURE__ */ jsxs(Fragment, { children: [
renderItem(item, index),
isRenderSeparator(index) && separator
] })
}
);
};
export { SeparatedIterator };
//# sourceMappingURL=index.mjs.map