Skip to content

Commit 5266faf

Browse files
fix(ios): minuteInterval breaks minimumDate (#992)
#126 Co-authored-by: TatsunoriMorita <[email protected]>
1 parent 897add5 commit 5266faf

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

ios/fabric/RNDateTimePickerComponentView.mm

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,16 @@
2121
return [NSDate dateWithTimeIntervalSince1970: time];
2222
}
2323

24+
NSDate* adjustMinimumDate (NSDate* minimumDate, int minuteInterval) {
25+
NSInteger minute = [[NSCalendar currentCalendar] component:NSCalendarUnitMinute fromDate:minimumDate];
26+
NSInteger remainder = minute % minuteInterval;
27+
NSInteger adjustment = (remainder == 0) ? 0 : (minuteInterval - remainder);
28+
return [[NSCalendar currentCalendar] dateByAddingUnit:NSCalendarUnitMinute
29+
value:adjustment
30+
toDate:minimumDate
31+
options:0];
32+
}
33+
2434
@interface RNDateTimePickerComponentView () <RCTRNDateTimePickerViewProtocol>
2535
@end
2636

@@ -160,7 +170,8 @@ - (Boolean)updatePropsForPicker:(UIDatePicker *)picker props:(Props::Shared cons
160170
}
161171

162172
if (oldPickerProps.minimumDate != newPickerProps.minimumDate) {
163-
picker.minimumDate = convertJSTimeToDate(newPickerProps.minimumDate);
173+
NSDate *minimumDate = convertJSTimeToDate(newPickerProps.minimumDate);
174+
picker.minimumDate = adjustMinimumDate(minimumDate, newPickerProps.minuteInterval);
164175
}
165176

166177
if (oldPickerProps.maximumDate != newPickerProps.maximumDate) {

0 commit comments

Comments
 (0)