# DatePicker The DatePicker component is a calendar picker UI that allows users to select a single date or a date range ```tsx import { reactExtension, DatePicker, } from '@shopify/ui-extensions-react/checkout'; export default reactExtension( 'purchase.checkout.block.render', () => , ); function Extension() { return ; } ``` ```js import {extension, DatePicker} from '@shopify/ui-extensions/checkout'; export default extension('purchase.checkout.block.render', (root) => { const datepicker = root.createComponent(DatePicker, { selected: '2021-06-01', }); root.appendChild(datepicker); }); ``` ## DatePickerProps ### DatePickerProps ### defaultYearMonth value: `YearMonth` - YearMonth: {year: number; month: number} | YearMonthString Default [uncontrolled](https://reactjs.org/docs/forms.html#controlled-components) year and month to display. Ignored when year/month navigation is controlled. ### disabled value: `DisabledDate[] | boolean` - DisabledDate: DateString | DateRange | DayString Disabled dates, days, and/or ranges, or the date picker. Unbound range disables all dates either from `start` date or to `end` date. `true` disables the date picker. ### onChange value: `(selected: T) => void` A callback that is run whenever a date is selected or unselected. This callback is called with a string, an array of strings or a range object representing the selected dates. This component is [controlled](https://reactjs.org/docs/forms.html#controlled-components), so you must store these values in state and reflect it back in the `selected` props. ### onYearMonthChange value: `(yearMonth: { year: number; month: number; }) => void` A callback that is run whenever the month is changed. This callback is called with an object indicating the year/month the UI should change to. When year/month navigation is controlled you must store these values in state and reflect it back in the `yearMonth` prop. ### readOnly value: `boolean` Whether the date picker is read-only. ### selected value: `T` A date, an array of dates, or a range object with `start` and/or `end` keys indicating the selected dates. When a range is set, dates between the boundaries will be selected. ### yearMonth value: `YearMonth` - YearMonth: {year: number; month: number} | YearMonthString [Controlled](https://reactjs.org/docs/forms.html#controlled-components) year and month to display. Use in combination with `onYearMonthChange`. Makes year/month navigation controlled. ### DateRange ### end value: `DateString` - DateString: string Last day (inclusive) of the selected range ### start value: `DateString` - DateString: string First day (inclusive) of the selected range ### Day ### Sunday value: `0` ### Monday value: `1` ### Tuesday value: `2` ### Wednesday value: `3` ### Thursday value: `4` ### Friday value: `5` ### Saturday value: `6`