Datepicker: auto open

This commit is contained in:
Alex Gleason 2021-06-30 21:02:53 -05:00
parent 8e168fdc0a
commit f0e53c2b2c
No known key found for this signature in database
GPG Key ID: 7211D1F99744FBB7
1 changed files with 24 additions and 6 deletions

View File

@ -31,16 +31,21 @@ class ScheduleForm extends React.Component {
active: PropTypes.bool, active: PropTypes.bool,
}; };
state = {
initialized: false,
}
setSchedule = date => { setSchedule = date => {
this.props.onSchedule(date); this.props.onSchedule(date);
} }
openDatePicker(datePicker) { setRef = c => {
if (!datePicker) { this.datePicker = c;
return;
} }
datePicker.setOpen(true); openDatePicker = () => {
if (!this.datePicker) return;
this.datePicker.setOpen(true);
} }
isCurrentOrFutureDate(date) { isCurrentOrFutureDate(date) {
@ -59,6 +64,19 @@ class ScheduleForm extends React.Component {
e.preventDefault(); e.preventDefault();
} }
initialize = () => {
const { initialized } = this.state;
if (!initialized && this.datePicker) {
this.openDatePicker();
this.setState({ initialized: true });
}
}
componentDidUpdate() {
this.initialize();
}
render() { render() {
if (!this.props.active) { if (!this.props.active) {
return null; return null;
@ -82,7 +100,7 @@ class ScheduleForm extends React.Component {
placeholderText={this.props.intl.formatMessage(messages.schedule)} placeholderText={this.props.intl.formatMessage(messages.schedule)}
filterDate={this.isCurrentOrFutureDate} filterDate={this.isCurrentOrFutureDate}
filterTime={this.isFiveMinutesFromNow} filterTime={this.isFiveMinutesFromNow}
ref={this.isCurrentOrFutureDate(scheduledAt) ? null : this.openDatePicker} ref={this.setRef}
/> />
<div className='datepicker__cancel'> <div className='datepicker__cancel'>
<IconButton size={20} title={intl.formatMessage(messages.remove)} icon='times' onClick={this.handleRemove} /> <IconButton size={20} title={intl.formatMessage(messages.remove)} icon='times' onClick={this.handleRemove} />