['onChange']>>((date) => {
if (date && !Array.isArray(date)) {
- setInternalDate((prevState) => {
- // If we don't use time from prevState
- // the time will be reset to 00:00:00
- date.setHours(prevState.getHours());
- date.setMinutes(prevState.getMinutes());
- date.setSeconds(prevState.getSeconds());
-
- return date;
- });
+ setReactCalendarDate(date);
}
}, []);
const onChangeTime = useCallback((date: DateTime) => {
- setInternalDate(date.toDate());
+ setTimeOfDayDateTime(date);
}, []);
+ // here we need to stitch the 2 date objects back together
+ const handleApply = () => {
+ // we take the date that's set by TimeOfDayPicker
+ const newDate = dateTime(timeOfDayDateTime);
+
+ // and apply the date/month/year set by react-calendar
+ newDate.set('date', reactCalendarDate.getDate());
+ newDate.set('month', reactCalendarDate.getMonth());
+ newDate.set('year', reactCalendarDate.getFullYear());
+
+ onChange(newDate);
+ };
+
return (
}
nextAriaLabel="Next month"
prevLabel={}
@@ -323,14 +346,14 @@ const DateTimeCalendar = React.forwardRef
-