Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/Item.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export interface ItemProps<ItemType> extends React.HTMLAttributes<any> {
item?: ItemType;
className?: string;
style?: React.CSSProperties;
renderItem?: (item: ItemType) => React.ReactNode;
renderItem?: (item: ItemType, order: number) => React.ReactNode;
responsive?: boolean;
// https://github.com/ant-design/ant-design/issues/35475
/**
Expand Down Expand Up @@ -66,7 +66,7 @@ function InternalItem<ItemType>(

// ================================ Render ================================
const childNode =
renderItem && item !== UNDEFINED ? renderItem(item) : children;
renderItem && item !== UNDEFINED ? renderItem(item, order) : children;

let overflowStyle: React.CSSProperties | undefined;
if (!invalidate) {
Expand Down
2 changes: 1 addition & 1 deletion src/Overflow.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export interface OverflowProps<ItemType> extends React.HTMLAttributes<any> {
itemKey?: React.Key | ((item: ItemType) => React.Key);
/** Used for `responsive`. It will limit render node to avoid perf issue */
itemWidth?: number;
renderItem?: (item: ItemType) => React.ReactNode;
renderItem?: (item: ItemType, order: number) => React.ReactNode;
/** @private Do not use in your production. Render raw node that need wrap Item by developer self */
renderRawItem?: (item: ItemType, index: number) => React.ReactElement;
maxCount?: number | typeof RESPONSIVE | typeof INVALIDATE;
Expand Down
17 changes: 17 additions & 0 deletions tests/index.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,23 @@ describe('Overflow.Basic', () => {
expect(wrapper.find('Item').text()).toEqual('Bamboo Is Light');
});

it('renderItem params have "order"', () => {
const testData = getData(3);
const wrapper = mount(
<Overflow
data={testData}
renderItem={(item, order) => {
return `${item.label}-${order}-test`;
}}
/>,
);
const renderedItems = wrapper.find('.rc-overflow-item');
expect(renderedItems).toHaveLength(testData.length);
renderedItems.forEach((node, index) => {
expect(node.text()).toBe(`${testData[index].label}-${index}-test`);
});
});

describe('renderRest', () => {
it('function', () => {
const wrapper = mount(
Expand Down
Loading