File tree Expand file tree Collapse file tree 3 files changed +24
-8
lines changed Expand file tree Collapse file tree 3 files changed +24
-8
lines changed Original file line number Diff line number Diff line change @@ -25,11 +25,12 @@ export default function useTimeSelection<DateType>({
25
25
newMinute : number ,
26
26
newSecond : number ,
27
27
) => {
28
- let newDate = value || generateConfig . getNow ( ) ;
28
+ const now = generateConfig . getNow ( ) ;
29
+ let newDate = value || now ;
29
30
30
- const mergedHour = Math . max ( 0 , newHour ) ;
31
- let mergedMinute = Math . max ( 0 , newMinute ) ;
32
- let mergedSecond = Math . max ( 0 , newSecond ) ;
31
+ const mergedHour = newHour < 0 ? generateConfig . getHour ( now ) : newHour ;
32
+ let mergedMinute = newMinute < 0 ? generateConfig . getMinute ( now ) : newMinute ;
33
+ let mergedSecond = newSecond < 0 ? generateConfig . getSecond ( now ) : newSecond ;
33
34
34
35
const newDisabledMinutes = disabledMinutes && disabledMinutes ( mergedHour ) ;
35
36
if ( newDisabledMinutes ?. includes ( mergedMinute ) ) {
Original file line number Diff line number Diff line change @@ -92,6 +92,7 @@ describe('Picker.DisabledTime', () => {
92
92
} ) ;
93
93
94
94
it ( 'dynamic disabledTime should be correct' , ( ) => {
95
+ jest . useFakeTimers ( ) . setSystemTime ( getMoment ( '2023-09-05 22:02:00' ) . valueOf ( ) ) ;
95
96
render (
96
97
< MomentPicker
97
98
open
@@ -106,6 +107,7 @@ describe('Picker.DisabledTime', () => {
106
107
}
107
108
} ,
108
109
disabledSeconds : ( _ , selectMinute ) => {
110
+ console . log ( selectMinute )
109
111
if ( selectMinute === 2 ) {
110
112
return [ 0 , 1 ] ;
111
113
} else {
@@ -134,6 +136,7 @@ describe('Picker.DisabledTime', () => {
134
136
expect ( document . querySelector ( '.rc-picker-input input' ) . getAttribute ( 'value' ) ) . toEqual (
135
137
'02:02:02' ,
136
138
) ;
139
+ jest . useRealTimers ( ) ;
137
140
} ) ;
138
141
139
142
describe ( 'warning for legacy props' , ( ) => {
Original file line number Diff line number Diff line change @@ -52,6 +52,10 @@ describe('Picker.Basic', () => {
52
52
} ) ;
53
53
}
54
54
55
+ function selectColumn ( colIndex : number , rowIndex : number ) {
56
+ fireEvent . click ( document . querySelectorAll ( 'ul' ) [ colIndex ] . querySelectorAll ( 'li' ) [ rowIndex ] ) ;
57
+ }
58
+
55
59
describe ( 'mode' , ( ) => {
56
60
const modeList : { mode : PanelMode ; className : string } [ ] = [
57
61
{
@@ -474,10 +478,6 @@ describe('Picker.Basic', () => {
474
478
const { container } = render ( < MomentPicker picker = "time" onChange = { onChange } onOk = { onOk } /> ) ;
475
479
openPicker ( container ) ;
476
480
477
- function selectColumn ( colIndex : number , rowIndex : number ) {
478
- fireEvent . click ( document . querySelectorAll ( 'ul' ) [ colIndex ] . querySelectorAll ( 'li' ) [ rowIndex ] ) ;
479
- }
480
-
481
481
selectColumn ( 0 , 13 ) ;
482
482
selectColumn ( 1 , 22 ) ;
483
483
selectColumn ( 2 , 33 ) ;
@@ -1107,4 +1107,16 @@ describe('Picker.Basic', () => {
1107
1107
// Reset locale
1108
1108
moment . locale ( 'en' ) ;
1109
1109
} ) ;
1110
+
1111
+ it ( 'select minutes and seconds directly in dateTime mode will apply the current time' , ( ) => {
1112
+ jest . setSystemTime ( getMoment ( '2023-09-04 21:49:10' ) . valueOf ( ) ) ;
1113
+ const ui = < MomentPicker showTime /> ;
1114
+ const { container } = render ( ui ) ;
1115
+
1116
+ openPicker ( container ) ;
1117
+ // Select minute
1118
+ selectColumn ( 1 , 5 ) ;
1119
+
1120
+ expect ( container . querySelector ( 'input' ) ) . toHaveValue ( '2023-09-04 21:05:10' ) ;
1121
+ } ) ;
1110
1122
} ) ;
You can’t perform that action at this time.
0 commit comments