pickadate
Version:
The composable date & time picker.
28 lines (22 loc) • 688 B
JavaScript
// @flow
import type { DatePickerActor, SetTimePayload } from 'pickadate/types'
const setTimeActor: DatePickerActor<SetTimePayload> = (state, payload) => {
let { selected } = state
if (!selected) {
throw new Error('Cannot set the time without a selected date')
}
if (payload.hours != null && payload.hours !== selected.getHours()) {
selected = new Date(selected)
selected.setHours(payload.hours)
}
if (payload.minutes != null && payload.minutes !== selected.getMinutes()) {
selected = new Date(selected)
selected.setMinutes(payload.minutes)
}
if (selected !== state.selected) {
return {
selected,
}
}
}
export default setTimeActor