Datepicker: auto open
This commit is contained in:
parent
8e168fdc0a
commit
f0e53c2b2c
|
@ -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} />
|
||||||
|
|
Loading…
Reference in New Issue