@@ -16,23 +16,17 @@ const STEP_DELAY = 600;
1616
1717export interface StepHandlerProps {
1818 prefixCls : string ;
19- upNode ?: React . ReactNode ;
20- downNode ?: React . ReactNode ;
21- upDisabled ?: boolean ;
22- upHidden ?: boolean ;
23- downDisabled ?: boolean ;
24- downHidden ?: boolean ;
19+ action : 'up' | 'down' ;
20+ children ?: React . ReactNode ;
21+ disabled ?: boolean ;
2522 onStep : ( up : boolean , emitter : 'handler' | 'keyboard' | 'wheel' ) => void ;
2623}
2724
2825export default function StepHandler ( {
2926 prefixCls,
30- upNode,
31- downNode,
32- upDisabled,
33- downDisabled,
34- upHidden,
35- downHidden,
27+ action,
28+ children,
29+ disabled,
3630 onStep,
3731} : StepHandlerProps ) {
3832 // ======================== Step ========================
@@ -49,15 +43,15 @@ export default function StepHandler({
4943 } ;
5044
5145 // We will interval update step when hold mouse down
52- const onStepMouseDown = ( e : React . MouseEvent , up : boolean ) => {
46+ const onStepMouseDown = ( e : React . MouseEvent ) => {
5347 e . preventDefault ( ) ;
5448 onStopStep ( ) ;
5549
56- onStepRef . current ( up , 'handler' ) ;
50+ onStepRef . current ( action === 'up' , 'handler' ) ;
5751
5852 // Loop step for interval
5953 function loopStep ( ) {
60- onStepRef . current ( up , 'handler' ) ;
54+ onStepRef . current ( action === 'up' , 'handler' ) ;
6155
6256 stepTimeoutRef . current = setTimeout ( loopStep , STEP_INTERVAL ) ;
6357 }
@@ -79,11 +73,8 @@ export default function StepHandler({
7973 // ======================= Render =======================
8074 const handlerClassName = `${ prefixCls } -handler` ;
8175
82- const upClassName = clsx ( handlerClassName , `${ handlerClassName } -up` , {
83- [ `${ handlerClassName } -up-disabled` ] : upDisabled ,
84- } ) ;
85- const downClassName = clsx ( handlerClassName , `${ handlerClassName } -down` , {
86- [ `${ handlerClassName } -down-disabled` ] : downDisabled ,
76+ const className = clsx ( handlerClassName , `${ handlerClassName } -up` , {
77+ [ `${ handlerClassName } -${ action } -disabled` ] : disabled ,
8778 } ) ;
8879
8980 // fix: https://github.com/ant-design/ant-design/issues/43088
@@ -100,47 +91,23 @@ export default function StepHandler({
10091 onMouseLeave : safeOnStopStep ,
10192 } ;
10293
103- const upHandle = (
104- < span
105- { ...sharedHandlerProps }
106- onMouseDown = { ( e ) => {
107- onStepMouseDown ( e , true ) ;
108- } }
109- aria-label = "Increase Value"
110- aria-disabled = { upDisabled }
111- className = { upClassName }
112- >
113- { upNode || < span unselectable = "on" className = { `${ prefixCls } -handler-up-inner` } /> }
114- </ span >
115- ) ;
116-
117- const downHandle = (
94+ return (
11895 < span
11996 { ...sharedHandlerProps }
12097 onMouseDown = { ( e ) => {
121- onStepMouseDown ( e , false ) ;
98+ onStepMouseDown ( e ) ;
12299 } }
123- aria-label = " Decrease Value"
124- aria-disabled = { downDisabled }
125- className = { downClassName }
100+ aria-label = { action === 'up' ? 'Increase Value' : ' Decrease Value' }
101+ aria-disabled = { disabled }
102+ className = { className }
126103 >
127- { downNode || < span unselectable = "on" className = { `${ prefixCls } -handler-down -inner` } /> }
104+ { children || < span unselectable = "on" className = { `${ prefixCls } -handler-${ action } -inner` } /> }
128105 </ span >
129106 ) ;
130107
131- if ( upHidden ) {
132- return downHandle ;
133- }
134-
135- if ( downHidden ) {
136- return upHandle ;
137- }
138-
139108 return (
140109 < div className = { clsx ( `${ handlerClassName } -wrap` , classNames ?. actions ) } style = { styles ?. actions } >
141- { upHandle }
142-
143- { downHandle }
110+ //
144111 </ div >
145112 ) ;
146113}
0 commit comments