A date range picker for your React app.
- Pick days, months, years, or even decades
- Supports virtually any language
- No moment.js needed
- Install by executing
npm install @wojtekmaj/react-daterange-pickeroryarn add @wojtekmaj/react-daterange-picker. - Import by adding
import DateRangePicker from '@wojtekmaj/react-daterange-picker'. - Use by adding
<DateRangePicker />. UseonChangeprop for getting new values.
Minimal demo page is included in sample directory.
Online demo is also available!
React-DateRange-Picker will play nicely with React-Date-Picker, React-Time-Picker and React-DateTime-Picker. Check them out!
Your project needs to use React 16 or later.
React-Calendar, on which React-DateRange-Picker relies heavily, uses modern web technologies. That's why it's so fast, lightweight and easy to style. This, however, comes at a cost of supporting only modern browsers.
If you need to support legacy browsers like Internet Explorer 10, you will need to use Intl.js or another Intl polyfill along with React-DateRange-Picker.
Add React-DateRange-Picker to your project by executing npm install @wojtekmaj/react-daterange-picker or yarn add @wojtekmaj/react-daterange-picker.
Here's an example of basic usage:
import React, { Component } from 'react';
import DateRangePicker from '@wojtekmaj/react-daterange-picker';
class MyApp extends Component {
state = {
date: [new Date(), new Date()],
}
onChange = date => this.setState({ date })
render() {
return (
<div>
<DateRangePicker
onChange={this.onChange}
value={this.state.date}
/>
</div>
);
}
}If you don't want to use default React-DateRange-Picker styling to build upon it, you can import React-DateRange-Picker by using import DateRangePicker from '@wojtekmaj/react-daterange-picker/dist/entry.nostyle'; instead.
Displays an input field complete with custom inputs, native input, and a calendar.
| Prop name | Description | Example values |
|---|---|---|
| calendarClassName | Defines class name(s) that will be added along with "react-calendar" to the main React-Calendar <div> element. |
|
| calendarIcon | Defines the content of the calendar button. Setting the value explicitly to null will hide the icon. |
|
| className | Defines class name(s) that will be added along with "react-daterange-picker" to the main React-DateRange-Picker <div> element. |
|
| clearIcon | Defines the content of the clear button. Setting the value explicitly to null will hide the icon. |
|
| disabled | Defines whether the date range picker should be disabled. Defaults to false. | true |
| format | Defines input format based on Unicode Technical Standard #35. Supported values are: y, M, MM, d, DD |
"y-MM-DD" |
| isOpen | Defines whether the calendar should be opened. Defaults to false. | true |
| locale | Defines which locale should be used by the date range picker and the calendar. Can be any IETF language tag. Defaults to user's browser settings. | "hu-HU" |
| maxDate | Defines maximum date that the user can select. Periods partially overlapped by maxDate will also be selectable, although React-DateRange-Picker will ensure that no later date is selected. | Date: new Date() |
| maxDetail | Defines the most detailed calendar view that the user shall see. View defined here also becomes the one on which clicking an item in the calendar will select a date and pass it to onChange. Can be "month", "year", "decade" or "century". Defaults to "month". | "month" |
| minDate | Defines minimum date that the user can select. Periods partially overlapped by minDate will also be selectable, although React-DateRange-Picker will ensure that no earlier date is selected. | Date: new Date() |
| minDetail | Defines the least detailed calendar view that the user shall see. Can be "month", "year", "decade" or "century". Defaults to "century". | "century" |
| name | Defines input name prefix. Date from/Date to fields will be named "yourprefix_from" and "yourprefix_to" respectively. Defaults to "daterange". | "myCustomName" |
| onCalendarClose | Function called when the calendar closes. | () => alert('Calendar closed') |
| onCalendarOpen | Function called when the calendar opens. | () => alert('Calendar opened') |
| onChange | Function called when the user clicks an item on the most detailed view available. | (value) => alert('New date is: ', value) |
| required | Defines whether date input should be required. Defaults to false. | true |
| showLeadingZeros | Defines whether leading zeros should be rendered in date inputs. Defaults to false. | true |
| value | Defines the value of the input. |
|
DateRangePicker component passes all props to React-Calendar, with the exception of className (you can use calendarClassName for that instead). There are tons of customizations you can do! For more information, see Calendar component props.
The MIT License.
|
Wojciech Maj kontakt@wojtekmaj.pl http://wojtekmaj.pl |
