diff --git a/docs/widgets.md b/docs/widgets.md index 022fea5c..7cae9f68 100644 --- a/docs/widgets.md +++ b/docs/widgets.md @@ -99,3 +99,14 @@ collections: searchFields: [name, twitterHandle] 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 diff --git a/src/components/Widgets/DateControl.js b/src/components/Widgets/DateControl.js index ebd218af..56fcb08e 100644 --- a/src/components/Widgets/DateControl.js +++ b/src/components/Widgets/DateControl.js @@ -7,7 +7,12 @@ export default class DateControl extends React.Component { componentDidMount() { const { value, field, onChange } = this.props; 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()); } } @@ -16,7 +21,7 @@ export default class DateControl extends React.Component { const newValue = this.format ? moment(datetime).format(this.format) : datetime; - onChange(newValue); + this.props.onChange(newValue); }; render() {