MonthPicker
Inline month, multiple months and months range picker
Source
Docs
Package
Usage
Allow deselect
Set allowDeselect to allow user to deselect current selected date by clicking on it.
allowDeselect is disregarded when type prop is range or multiple. When date is
deselected onChange is called with null.
Multiple dates
Set type="multiple" to allow user to pick multiple dates:
Dates range
Set type="range" to allow user to pick dates range:
Single date in range
By default, it is not allowed to select single date as range – when user clicks the same date second time it is deselected.
To change this behavior set allowSingleDateInRange prop. allowSingleDateInRange is ignored when
type prop is not range.
Default date
Use defaultDate prop to set date value that will be used to determine which year should be displayed initially.
For example to display 2015 year set defaultDate={new Date(2015, 1)}. If value is not specified,
then defaultDate will use new Date(). Month, day, minutes and seconds are ignored in provided date object, only year is used –
you can specify any date value.
Note that if you set date prop, then defaultDate value will be ignored.
Controlled date
Set date, and onDateChange props to make currently displayed year and decade controlled.
By doing so, you can customize date picking experience, for example, when user selects first date in range,
you can add one year to current date value:
Min and max date
Set minDate and maxDate props to define min and max dates. If previous/next page is not available
then corresponding control will be disabled.
Add props to year and month control
You can add props to year and month controls with getYearControlProps and getMonthControlProps functions. Both functions accept date as single argument,
props returned from the function will be added to year/month control. For example, it can be used to disable specific
control or add styles:
Number of columns
Set numberOfColumns prop to define number of pickers that will be rendered side by side:
Demo is not available on small screens. Make your screen larger to see the demo.
Max level
To disallow user going to the decade level set maxLevel="year":
Size
Change year and months controls format
Use yearsListFormat and monthsListFormat props to change dayjs format of year/month controls:
Change label format
Use decadeLabelFormat and yearLabelFormat to change dayjs format of decade/year label:
Localization
Usually it is better to specify @mantine/dates package locale in DatesProvider,
but you can also override locale per component:
Accessibility
Aria labels
Set ariaLabels prop to specify aria-label attributes for next/previous controls:
Year/month control aria-label
Use getYearControlProps/getMonthControlProps to customize aria-label attribute:
Keyboard interactions
Note that the following events will only trigger if focus is on month control.