@modern-kit/react
Version:
1 lines • 1.89 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":["../../../src/components/SeparatedIterator/index.tsx"],"sourcesContent":["import { useCallback } from 'react';\nimport { Iterator, IteratorProps } from '../Iterator';\n\ninterface SeparatedIteratorProps<T> extends IteratorProps<T> {\n separator: JSX.Element;\n separatorInterval?: number;\n includeLastSeparator?: boolean;\n}\n\nexport const SeparatedIterator = <T,>({\n itemKey,\n items,\n separator,\n renderItem,\n separatorInterval = 1,\n includeLastSeparator = false,\n}: SeparatedIteratorProps<T>) => {\n const isRenderSeparator = useCallback(\n (index: number) => {\n if (index === items.length - 1) {\n return includeLastSeparator;\n }\n return (index + 1) % separatorInterval === 0;\n },\n [includeLastSeparator, separatorInterval, items.length]\n );\n\n return (\n <Iterator\n items={items}\n itemKey={itemKey}\n renderItem={(item, index) => (\n <>\n {renderItem(item, index)}\n {isRenderSeparator(index) && separator}\n </>\n )}\n />\n );\n};\n"],"names":["useCallback","jsx","Iterator","jsxs","Fragment"],"mappings":";;;;;;;AASO,MAAM,oBAAoB,CAAK;AAAA,EACpC,OAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,iBAAA,GAAoB,CAAA;AAAA,EACpB,oBAAA,GAAuB;AACzB,CAAA,KAAiC;AAC/B,EAAA,MAAM,iBAAA,GAAoBA,iBAAA;AAAA,IACxB,CAAC,KAAA,KAAkB;AACjB,MAAA,IAAI,KAAA,KAAU,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG;AAC9B,QAAA,OAAO,oBAAA;AAAA,MACT;AACA,MAAA,OAAA,CAAQ,KAAA,GAAQ,KAAK,iBAAA,KAAsB,CAAA;AAAA,IAC7C,CAAA;AAAA,IACA,CAAC,oBAAA,EAAsB,iBAAA,EAAmB,KAAA,CAAM,MAAM;AAAA,GACxD;AAEA,EAAA,uBACEC,cAAA;AAAA,IAACC,2BAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA,EAAY,CAAC,IAAA,EAAM,KAAA,qBACjBC,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,QAAA,UAAA,CAAW,MAAM,KAAK,CAAA;AAAA,QACtB,iBAAA,CAAkB,KAAK,CAAA,IAAK;AAAA,OAAA,EAC/B;AAAA;AAAA,GAEJ;AAEJ;;;;"}