allow empty default date value

This commit is contained in:
Shawn Erquhart 2017-11-27 21:17:17 -05:00
parent 1a7c999f12
commit a7ad6d570e
2 changed files with 18 additions and 2 deletions

View File

@ -99,3 +99,14 @@ collections:
searchFields: [name, twitterHandle] searchFields: [name, twitterHandle]
valueField: name valueField: name
``` ```
### Date Widget / DateTime Widget
The date and datetime widgets provide date or datetime pickers when the widget is active. The resulting date string can be formatted (uses Moment.js), and accepts a default value. The initial value will be the current date unless `false` or an empty string are provided as the default value.
The following field configuration properties are specific to fields using the date or datetime widget:
Property | Accepted Values | Description
--- | --- | ---
`format` | string | format string uses Moment.js [tokens](https://momentjs.com/docs/#/parsing/string-format/)
`default` | boolean, string | can be a date string, or else an empty string - defaults to current date

View File

@ -7,7 +7,12 @@ export default class DateControl extends React.Component {
componentDidMount() { componentDidMount() {
const { value, field, onChange } = this.props; const { value, field, onChange } = this.props;
this.format = field.get('format'); this.format = field.get('format');
if (!value) {
/**
* Set the current date as default value if no default value is provided. An
* empty string means the value is intentionally blank.
*/
if (!value && value !== '') {
this.handleChange(new Date()); this.handleChange(new Date());
} }
} }
@ -16,7 +21,7 @@ export default class DateControl extends React.Component {
const newValue = this.format const newValue = this.format
? moment(datetime).format(this.format) ? moment(datetime).format(this.format)
: datetime; : datetime;
onChange(newValue); this.props.onChange(newValue);
}; };
render() { render() {