diff --git a/packages/react-core/src/components/DatePicker/examples/DatePicker.md b/packages/react-core/src/components/DatePicker/examples/DatePicker.md index b276c094d7e..41b05a1b386 100644 --- a/packages/react-core/src/components/DatePicker/examples/DatePicker.md +++ b/packages/react-core/src/components/DatePicker/examples/DatePicker.md @@ -7,151 +7,38 @@ beta: true --- ## Examples + ### Basic -```js -import React from 'react'; -import { DatePicker } from '@patternfly/react-core'; - console.log('onBlur', str, date)} - onChange={(str, date) => console.log('onChange', str, date)} -/> +```ts file="./DatePickerBasic.tsx" ``` ### American format -```js -import React from 'react'; -import { DatePicker } from '@patternfly/react-core'; - -AmericanFormat = () => { - const dateFormat = date => date.toLocaleDateString('en-US', { year: 'numeric', month: '2-digit', day: '2-digit' }).replace(/\//g,'-'); - const dateParse = date => { - const split = date.split('-'); - if (split.length !== 3) { - return new Date(); - } - let month = split[0]; - let day = split[1]; - let year = split[2]; - return new Date(`${year.padStart(4, '0')}-${month.padStart(2, '0')}-${day.padStart(2, '0')}T00:00:00`); - }; - return ( - - ); -} +```ts file="./DatePickerAmerican.tsx" ``` ### Helper text -```js -import React from 'react'; -import { DatePicker } from '@patternfly/react-core'; - +```ts file="./DatePickerHelperText.tsx" ``` ### Min and max date -```js -import React from 'react'; -import { DatePicker } from '@patternfly/react-core'; -MinMaxDate = () => { - const minDate = new Date(2020, 2, 16); - const maxDate = new Date(2020, 2, 20); - const rangeValidator = date => { - if (date < minDate) { - return 'Date is before the allowable range.'; - } - else if (date > maxDate) { - return 'Date is after the allowable range.'; - } - - return ''; - }; - return ; -} +```ts file="./DatePickerMinMax.tsx" ``` ### French -```js -import React from 'react'; -import { DatePicker, Weekday } from '@patternfly/react-core'; - -FrenchMinMaxDate = () => { - const minDate = new Date(2020, 2, 16); - const maxDate = new Date(2020, 2, 20); - const rangeValidator = date => { - if (date < minDate) { - return 'Cette date est antérieure à la première date valide.'; - } - else if (date > maxDate) { - return 'Cette date est postérieure à la dernière date valide.'; - } - - return ''; - }; - return ( - - ); -} +```ts file="./DatePickerFrench.tsx" ``` ### Controlled -```js -import React from 'react'; -import { Button, DatePicker } from '@patternfly/react-core'; - -ControlledDate = () => { - const initialValue = '2020-03-17'; - const [value, setValue] = React.useState(initialValue); - return ( - - - setValue(value)} - /> - - ); -} +```ts file="./DatePickerControlled.tsx" ``` ### Controlling the date picker calendar state -```js -import React from 'react'; -import { Button, DatePicker } from '@patternfly/react-core'; - -ControllingDatePicker = () => { - const dateRef = React.useRef(null); - const onClick = () => { - if (dateRef.current) { - dateRef.current.toggleCalendar() - } - }; - return ( - - - - - ); -} +```ts file="./DatePickerControlledCalendar.tsx" ``` diff --git a/packages/react-core/src/components/DatePicker/examples/DatePickerAmerican.tsx b/packages/react-core/src/components/DatePicker/examples/DatePickerAmerican.tsx new file mode 100644 index 00000000000..54dba78291f --- /dev/null +++ b/packages/react-core/src/components/DatePicker/examples/DatePickerAmerican.tsx @@ -0,0 +1,19 @@ +import React from 'react'; +import { DatePicker } from '@patternfly/react-core'; + +export const DatePickerAmerican: React.FunctionComponent = () => { + const dateFormat = (date: Date) => + date.toLocaleDateString('en-US', { year: 'numeric', month: '2-digit', day: '2-digit' }).replace(/\//g, '-'); + const dateParse = (date: string) => { + const split = date.split('-'); + if (split.length !== 3) { + return new Date(); + } + const month = split[0]; + const day = split[1]; + const year = split[2]; + return new Date(`${year.padStart(4, '0')}-${month.padStart(2, '0')}-${day.padStart(2, '0')}T00:00:00`); + }; + + return ; +}; diff --git a/packages/react-core/src/components/DatePicker/examples/DatePickerBasic.tsx b/packages/react-core/src/components/DatePicker/examples/DatePickerBasic.tsx new file mode 100644 index 00000000000..000cf4c9807 --- /dev/null +++ b/packages/react-core/src/components/DatePicker/examples/DatePickerBasic.tsx @@ -0,0 +1,11 @@ +import React from 'react'; +import { DatePicker } from '@patternfly/react-core'; + +export const DatePickerBasic: React.FunctionComponent = () => ( + console.log('onBlur', str, date)} + // eslint-disable-next-line no-console + onChange={(str, date) => console.log('onChange', str, date)} + /> +); diff --git a/packages/react-core/src/components/DatePicker/examples/DatePickerControlled.tsx b/packages/react-core/src/components/DatePicker/examples/DatePickerControlled.tsx new file mode 100644 index 00000000000..a55469bfce6 --- /dev/null +++ b/packages/react-core/src/components/DatePicker/examples/DatePickerControlled.tsx @@ -0,0 +1,13 @@ +import React from 'react'; +import { Button, DatePicker } from '@patternfly/react-core'; + +export const DatePickerControlled: React.FunctionComponent = () => { + const initialValue = '2020-03-17'; + const [value, setValue] = React.useState(initialValue); + return ( + + + setValue(value)} /> + + ); +}; diff --git a/packages/react-core/src/components/DatePicker/examples/DatePickerControlledCalendar.tsx b/packages/react-core/src/components/DatePicker/examples/DatePickerControlledCalendar.tsx new file mode 100644 index 00000000000..7065c3d8c8f --- /dev/null +++ b/packages/react-core/src/components/DatePicker/examples/DatePickerControlledCalendar.tsx @@ -0,0 +1,17 @@ +import React from 'react'; +import { Button, DatePicker } from '@patternfly/react-core'; + +export const DatePickerControlledCalendar: React.FunctionComponent = () => { + const dateRef = React.useRef(null); + const onClick = () => { + if (dateRef.current) { + dateRef.current.toggleCalendar(); + } + }; + return ( + + + + + ); +}; diff --git a/packages/react-core/src/components/DatePicker/examples/DatePickerFrench.tsx b/packages/react-core/src/components/DatePicker/examples/DatePickerFrench.tsx new file mode 100644 index 00000000000..1dc033ecb19 --- /dev/null +++ b/packages/react-core/src/components/DatePicker/examples/DatePickerFrench.tsx @@ -0,0 +1,26 @@ +import React from 'react'; +import { DatePicker, Weekday } from '@patternfly/react-core'; + +export const DatePickerFrench: React.FunctionComponent = () => { + const minDate = new Date(2020, 2, 16); + const maxDate = new Date(2020, 2, 20); + const rangeValidator = (date: Date) => { + if (date < minDate) { + return 'Cette date est antérieure à la première date valide.'; + } else if (date > maxDate) { + return 'Cette date est postérieure à la dernière date valide.'; + } + + return ''; + }; + return ( + + ); +}; diff --git a/packages/react-core/src/components/DatePicker/examples/DatePickerHelperText.tsx b/packages/react-core/src/components/DatePicker/examples/DatePickerHelperText.tsx new file mode 100644 index 00000000000..fe47fdd10ad --- /dev/null +++ b/packages/react-core/src/components/DatePicker/examples/DatePickerHelperText.tsx @@ -0,0 +1,6 @@ +import React from 'react'; +import { DatePicker } from '@patternfly/react-core'; + +export const DatePickerHelperText: React.FunctionComponent = () => ( + +); diff --git a/packages/react-core/src/components/DatePicker/examples/DatePickerMinMax.tsx b/packages/react-core/src/components/DatePicker/examples/DatePickerMinMax.tsx new file mode 100644 index 00000000000..1253f5bab56 --- /dev/null +++ b/packages/react-core/src/components/DatePicker/examples/DatePickerMinMax.tsx @@ -0,0 +1,17 @@ +import React from 'react'; +import { DatePicker } from '@patternfly/react-core'; + +export const DatePickerMinMax: React.FunctionComponent = () => { + const minDate = new Date(2020, 2, 16); + const maxDate = new Date(2020, 2, 20); + const rangeValidator = (date: Date) => { + if (date < minDate) { + return 'Date is before the allowable range.'; + } else if (date > maxDate) { + return 'Date is after the allowable range.'; + } + + return ''; + }; + return ; +};