File tree Expand file tree Collapse file tree 5 files changed +42
-5
lines changed Expand file tree Collapse file tree 5 files changed +42
-5
lines changed Original file line number Diff line number Diff line change @@ -7,7 +7,13 @@ function getTabPanes(count = 50) {
7
7
const tabs : React . ReactElement [ ] = [ ] ;
8
8
for ( let i = 0 ; i < count ; i += 1 ) {
9
9
tabs . push (
10
- < TabPane key = { i } tab = { `Tab ${ i } ` } disabled = { i === 3 } closable = { i === 5 ? false : undefined } >
10
+ < TabPane
11
+ key = { i }
12
+ tab = { `Tab ${ i } ` }
13
+ menuTab = { i === 0 ? 'FIRST ONE!' : null }
14
+ disabled = { i === 3 }
15
+ closable = { i === 5 ? false : undefined }
16
+ >
11
17
Content of { i }
12
18
</ TabPane > ,
13
19
) ;
Original file line number Diff line number Diff line change @@ -73,7 +73,7 @@ function OperationNode(
73
73
aria-controls = { id && `${ id } -panel-${ tab . key } ` }
74
74
disabled = { tab . disabled }
75
75
>
76
- { tab . tab }
76
+ { tab . menuTab ?? tab . tab }
77
77
</ MenuItem >
78
78
) ) }
79
79
</ Menu >
@@ -149,8 +149,8 @@ function OperationNode(
149
149
}
150
150
151
151
const overlayClassName = classNames ( {
152
- [ `${ dropdownPrefix } -rtl` ] : rtl
153
- } )
152
+ [ `${ dropdownPrefix } -rtl` ] : rtl ,
153
+ } ) ;
154
154
155
155
const moreNode : React . ReactElement = mobile ? null : (
156
156
< Dropdown
Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ import classNames from 'classnames';
3
3
4
4
export interface TabPaneProps {
5
5
tab ?: React . ReactNode ;
6
+ menuTab ?: React . ReactNode ;
6
7
className ?: string ;
7
8
style ?: React . CSSProperties ;
8
9
disabled ?: boolean ;
Original file line number Diff line number Diff line change @@ -62,7 +62,7 @@ export function getTransformY(wrapper: ReactWrapper) {
62
62
return Number ( match [ 1 ] ) ;
63
63
}
64
64
65
- export function getTabs ( props : TabsProps = null ) {
65
+ export function getTabs ( props : TabsProps = null , moreTabs ?: React . ReactNode ) {
66
66
return (
67
67
< Tabs { ...props } >
68
68
< TabPane tab = "light" key = "light" >
@@ -80,6 +80,7 @@ export function getTabs(props: TabsProps = null) {
80
80
< TabPane tab = "miu" key = "miu" >
81
81
Miu
82
82
</ TabPane >
83
+ { moreTabs }
83
84
</ Tabs >
84
85
) ;
85
86
}
Original file line number Diff line number Diff line change @@ -88,6 +88,35 @@ describe('Tabs.Overflow', () => {
88
88
jest . useRealTimers ( ) ;
89
89
} ) ;
90
90
91
+ it ( 'menuTab' , ( ) => {
92
+ jest . useFakeTimers ( ) ;
93
+ const wrapper = mount (
94
+ getTabs (
95
+ null ,
96
+ < TabPane key = "menu" tab = "Menu" menuTab = "Tab In Menu" >
97
+ Test
98
+ </ TabPane > ,
99
+ ) ,
100
+ ) ;
101
+
102
+ triggerResize ( wrapper ) ;
103
+ act ( ( ) => {
104
+ jest . runAllTimers ( ) ;
105
+ wrapper . update ( ) ;
106
+ } ) ;
107
+
108
+ // Click to open
109
+ wrapper . find ( '.rc-tabs-nav-more' ) . simulate ( 'mouseenter' ) ;
110
+ jest . runAllTimers ( ) ;
111
+ wrapper . update ( ) ;
112
+ expect (
113
+ wrapper
114
+ . find ( '.rc-tabs-dropdown li' )
115
+ . last ( )
116
+ . text ( ) ,
117
+ ) . toEqual ( 'Tab In Menu' ) ;
118
+ } ) ;
119
+
91
120
[ KeyCode . SPACE , KeyCode . ENTER ] . forEach ( code => {
92
121
it ( `keyboard with select keycode: ${ code } ` , ( ) => {
93
122
jest . useFakeTimers ( ) ;
You can’t perform that action at this time.
0 commit comments