diff --git a/components/component-docs.json b/components/component-docs.json index 07279911a4..ce750c286d 100644 --- a/components/component-docs.json +++ b/components/component-docs.json @@ -5771,6 +5771,17 @@ "computed": false } }, + "disabledSelection": { + "type": { + "name": "array" + }, + "required": false, + "description": "An array of objects of rows that selection is disabled. See `items` prop for shape of objects.", + "defaultValue": { + "value": "[]", + "computed": false + } + }, "selectRows": { "type": { "name": "union", @@ -6309,6 +6320,13 @@ "params": [], "returns": null }, + { + "name": "handleResetDate", + "docblock": null, + "modifiers": [], + "params": [], + "returns": null + }, { "name": "openDialogFromIcon", "docblock": null, diff --git a/components/date-picker/__docs__/storybook-stories.jsx b/components/date-picker/__docs__/storybook-stories.jsx index 4d59f300fd..b8f2b4e67b 100644 --- a/components/date-picker/__docs__/storybook-stories.jsx +++ b/components/date-picker/__docs__/storybook-stories.jsx @@ -13,6 +13,7 @@ import CustomInput from '../__examples__/custom-input'; import SnaphotDefault from '../__examples__/snapshot-default'; import WeekdayPicker from '../__examples__/weekday-picker'; import ErrorPicker from '../__examples__/error-picker'; +import Clearable from '../__examples__/clearable'; // eslint-disable-next-line camelcase import UNSAFE_DirectionSettings from '../../utilities/UNSAFE_direction'; @@ -52,4 +53,5 @@ storiesOf(DATE_PICKER, module) )) .add('DOM Snapshot', () => ) .add('Weekday picker', () => ) - .add('Error', () => ); + .add('Error', () => ) + .add('Clearable', () => ); diff --git a/components/date-picker/__examples__/clearable.jsx b/components/date-picker/__examples__/clearable.jsx new file mode 100644 index 0000000000..1f687d7cfe --- /dev/null +++ b/components/date-picker/__examples__/clearable.jsx @@ -0,0 +1,71 @@ +/* eslint-disable no-console, react/prop-types */ +import React from 'react'; +import moment from 'moment'; + +import IconSettings from '~/components/icon-settings'; +import Datepicker from '~/components/date-picker'; +import Button from '~/components/button'; + +class Example extends React.Component { + static displayName = 'DatepickerExample'; + + constructor() { + super(); + this.state = { + value: undefined, + }; + } + + handleChange = (event, data) => { + this.setState({ value: data.date }); + }; + + render() { + return ( + + { + this.handleChange(event, data); + + if (this.props.action) { + const dataAsArray = Object.keys(data).map((key) => data[key]); + this.props.action('onChange')(event, data, ...dataAsArray); + } else if (console) { + console.log('onChange', event, data); + } + }} + onCalendarFocus={(event, data) => { + if (this.props.action) { + const dataAsArray = Object.keys(data).map((key) => data[key]); + this.props.action('onCalendarFocus')(event, data, ...dataAsArray); + } else if (console) { + console.log('onCalendarFocus', event, data); + } + }} + formatter={(date) => { + return date ? moment(date).format('M/D/YYYY') : ''; + }} + parser={(dateString) => { + return moment(dateString, 'MM-DD-YYYY').toDate(); + }} + value={this.state.value} + /> +