File tree Expand file tree Collapse file tree 3 files changed +10
-7
lines changed Expand file tree Collapse file tree 3 files changed +10
-7
lines changed Original file line number Diff line number Diff line change 11import * as React from 'react' ;
22import classNames from 'classnames' ;
33import ResizeObserver from 'rc-resize-observer' ;
4+ import type { ItemWithIndex } from './Overflow' ;
45import type { ComponentType } from './RawItem' ;
56
67// Use shared variable to save bundle size
78const UNDEFINED = undefined ;
89
910export interface ItemProps < ItemType > extends React . HTMLAttributes < any > {
1011 prefixCls : string ;
11- item ?: ItemType ;
12+ item ?: ItemWithIndex < ItemType > ;
1213 className ?: string ;
1314 style ?: React . CSSProperties ;
14- renderItem ?: ( item : ItemType ) => React . ReactNode ;
15+ renderItem ?: ( item : ItemWithIndex < ItemType > ) => React . ReactNode ;
1516 responsive ?: boolean ;
1617 // https://github.com/ant-design/ant-design/issues/35475
1718 /**
Original file line number Diff line number Diff line change @@ -16,6 +16,8 @@ export { OverflowContext } from './context';
1616
1717export type { ComponentType } from './RawItem' ;
1818
19+ export type ItemWithIndex < ItemType > = ItemType & { index ?: number } ;
20+
1921export interface OverflowProps < ItemType > extends React . HTMLAttributes < any > {
2022 prefixCls ?: string ;
2123 className ?: string ;
@@ -24,7 +26,7 @@ export interface OverflowProps<ItemType> extends React.HTMLAttributes<any> {
2426 itemKey ?: React . Key | ( ( item : ItemType ) => React . Key ) ;
2527 /** Used for `responsive`. It will limit render node to avoid perf issue */
2628 itemWidth ?: number ;
27- renderItem ?: ( item : ItemType ) => React . ReactNode ;
29+ renderItem ?: ( item : ItemWithIndex < ItemType > ) => React . ReactNode ;
2830 /** @private Do not use in your production. Render raw node that need wrap Item by developer self */
2931 renderRawItem ?: ( item : ItemType , index : number ) => React . ReactElement ;
3032 maxCount ?: number | typeof RESPONSIVE | typeof INVALIDATE ;
@@ -341,13 +343,13 @@ function Overflow<ItemType = any>(
341343 }
342344 : ( item : ItemType , index : number ) => {
343345 const key = getKey ( item , index ) ;
344-
346+ const propsItem : ItemWithIndex < ItemType > = { ... item , index } ;
345347 return (
346348 < Item
347349 { ...itemSharedProps }
348350 order = { index }
349351 key = { key }
350- item = { { ... item , index } }
352+ item = { propsItem }
351353 renderItem = { mergedRenderItem }
352354 itemKey = { key }
353355 registerSize = { registerSize }
Original file line number Diff line number Diff line change @@ -56,8 +56,8 @@ describe('Overflow.Basic', () => {
5656 const wrapper = mount (
5757 < Overflow
5858 data = { testData }
59- renderItem = { ( item , order ) => {
60- return `${ item . label } -${ order } -test` ;
59+ renderItem = { ( item ) => {
60+ return `${ item . label } -${ item . index } -test` ;
6161 } }
6262 /> ,
6363 ) ;
You can’t perform that action at this time.
0 commit comments