Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const calendarItems = createCalendarItems(
this.state.calendarDate,
this.state.timeString,
this.props.intl,
this.props.timeZone
);
const paddingDayCount = getPaddingDayCount(
this.state.calendarDate,
this.props.intl.locale,
this.props.timeZone
);
const paddingDays = Array(paddingDayCount).fill();
const weekdays = getWeekdayNames(this.props.intl.locale);
const today = getToday();
const isTimeInputVisible =
Boolean(this.props.value) && this.props.value !== '';
return (
<div>
{
// we remove the highlight so that the user can use the</div>
return {
inputValue: changes.inputValue || prevState.inputValue,
startDate: changes.isOpen ? prevState.startDate : null,
// set time input value to time from value when menu is opened
timeString:
changes.isOpen && this.props.value !== ''
? formatTime(
this.props.value,
this.props.intl.locale,
this.props.timeZone
)
: '',
// ensure calendar always opens on selected item, or on
// current month when there is no selected item
calendarDate:
this.props.value === '' ? getToday() : this.props.value,
};
}
if (changes.hasOwnProperty('highlightedIndex')) {
return { highlightedIndex: changes.highlightedIndex };
}
return null;
},
() => {
this.setState(() => {
if (!parsedTime) return { timeString: '' };
let date = getToday(this.props.timeZone);
if (parsedTime) {
date = changeTime(
date,
this.props.timeZone,
parsedTime
);
}
return {
timeString: formatTime(
date,
this.props.intl.locale,
this.props.timeZone
),
};
});
},
showToday = () => {
const today = getToday(this.props.timeZone);
this.setState(
prevState => ({
calendarDate: today,
highlightedIndex:
prevState.suggestedItems.length +
getDateInMonth(today, this.props.timeZone) -
1,
}),
() => this.inputRef.current.focus()
);
};
handleBlur = () => {
onChange: PropTypes.func.isRequired,
onFocus: PropTypes.func,
onBlur: PropTypes.func,
timeZone: PropTypes.string.isRequired,
id: PropTypes.string,
name: PropTypes.string,
placeholder: PropTypes.string,
isDisabled: PropTypes.bool,
isReadOnly: PropTypes.bool,
hasError: PropTypes.bool,
hasWarning: PropTypes.bool,
};
inputRef = React.createRef();
timeInputRef = React.createRef();
state = {
calendarDate: getToday(this.props.timeZone),
suggestedItems: [],
highlightedIndex:
this.props.value === ''
? null
: getDateInMonth(this.props.value, this.props.timeZone) - 1,
timeString: '',
};
jumpMonths = amount => {
this.setState(prevState => {
const nextDate = changeMonth(
prevState.calendarDate,
this.props.timeZone,
amount
);
return { calendarDate: nextDate, highlightedIndex: 0 };
});