Observed since 20 Oct, 20:43 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
605-react-date-range
A React component for choosing dates and date ranges.
A date library agnostic React component for choosing dates and date ranges. Uses date-fns for date operations.
react-date-range?Live Demo : http://hypeserver.github.io/react-date-range

npm install --save react-date-range
This plugin expects react and date-fns as peerDependencies, It means that you need to install them in your project folder.
npm install --save react date-fns
You need to import skeleton and theme styles first.
import 'react-date-range/dist/styles.css'; // main style file
import 'react-date-range/dist/theme/default.css'; // theme css file
DatePickerimport { Calendar } from 'react-date-range';
class MyComponent extends Component {
handleSelect(date){
console.log(date); // native Date object
}
render(){
return (
<Calendar
date={new Date()}
onChange={this.handleSelect}
/>
)
}
}
DateRangePicker / DateRangeimport { DateRangePicker } from 'react-date-range';
class MyComponent extends Component {
handleSelect(ranges){
console.log(ranges);
// {
// selection: {
// startDate: [native Date Object],
// endDate: [native Date Object],
// }
// }
}
render(){
const selectionRange = {
startDate: new Date(),
endDate: new Date(),
key: 'selection',
}
return (
<DateRangePicker
ranges={[selectionRange]}
onChange={this.handleSelect}
/>
)
}
}
| Property | type | Default Value | Description |
|---|---|---|---|
| locale | Object | enUS from locale | you can view full list from here. Locales directly exported from date-fns/locales. |
| className | String | wrapper classname | |
| months | Number | 1 | rendered month count |
| showSelectionPreview | Boolean | true | show preview on focused/hovered dates |
| showMonthAndYearPickers | Boolean | true | show select tags for month and year on calendar top, if false it will just display the month and year |
| rangeColors | String[] | defines color for selection preview. | |
| shownDate | Date | initial focus date | |
| minDate | Date | defines minimum date. Disabled earlier dates | |
| maxDate | Date | defines maximum date. Disabled later dates | |
| direction | String | 'vertical' | direction of calendar months. can be vertical or horizontal |
| disabledDates | Date[] | [] | dates that are disabled |
| disabledDay | Func | predicate function that disable day fn(date: Date) | |
| scroll | Object | { enabled: false } | infinite scroll behaviour configuration. Check out Infinite Scroll section |
| showMonthArrow | Boolean | true | show/hide month arrow button |
| navigatorRenderer | Func | renderer for focused date navigation area. fn(currentFocusedDate: Date, changeShownDate: func, props: object) | |
| ranges | *Object[] | [] | Defines ranges. array of range object |
| moveRangeOnFirstSelection(DateRange) | Boolean | false | move range on startDate selection. Otherwise endDate will replace with startDate unless retainEndDateOnFirstSelection is set to true. |
| retainEndDateOnFirstSelection(DateRange) | Boolean | false | Retain end date when the start date is changed, unless start date is later than end date. Ignored if moveRangeOnFirstSelection is set to true. |
| onChange(Calendar) | Func | callback function for date changes. fn(date: Date) | |
| onChange(DateRange) | Func | callback function for range changes. fn(changes). changes contains changed ranges with new startDate/endDate properties. | |
| color(Calendar) | String | #3d91ff | defines color for selected date in Calendar |
| date(Calendar) | Date | date value for Calendar | |
| showDateDisplay(DateRange) | Boolean | true | show/hide selection display row. Uses dateDisplayFormat for formatter |
| onShownDateChange(DateRange,Calendar) | Function | Callback function that is called when the shown date changes | |
| initialFocusedRange(DateRange) | Object | Initial value for focused range. See focusedRange for usage. | |
| focusedRange(DateRange) | Object | It defines which range and step are focused. Common initial value is [0, 0]; first value is index of ranges, second one is which step on date range(startDate or endDate). | |
| onRangeFocusChange(DateRange) | Object | Callback function for focus changes | |
| preview(DateRange) | Object | displays a preview range and overwrite DateRange's default preview. Expected shape: { startDate: Date, endDate: Date, color: String } | |
| showPreview(DateRange) | bool | true | visibility of preview |
| editableDateInputs(Calendar) | bool | false | whether dates can be edited in the Calendar's input fields |
| dragSelectionEnabled(Calendar) | bool | true | whether dates can be selected via drag n drop |
| onPreviewChange(DateRange) | Object | Callback function for preview changes | |
| dateDisplayFormat | String | MMM d, yyyy | selected range preview formatter. Check out date-fns's format option |
| dayDisplayFormat | String | d | selected range preview formatter. Check out date-fns's format option |
| weekdayDisplayFormat | String | E | selected range preview formatter. Check out date-fns's format option |
| monthDisplayFormat | String | MMM yyyy | selected range preview formatter. Check out date-fns's format option |
| weekStartsOn | Number | Whether the week start day that comes from the locale will be overriden. Default value comes from your locale, if no local is specified, note that default locale is enUS | |
| startDatePlaceholder | String | Early | Start Date Placeholder |
| endDatePlaceholder | String | Continuous | End Date Placeholder |
| fixedHeight | Boolean | false | Since some months require less than 6 lines to show, by setting this prop, you can force 6 lines for all months. |
renderStaticRangeLabel(DefinedRange) | Function | Callback function to be triggered for the static range configurations that have hasCustomRendering: true on them. Instead of rendering staticRange.label, return value of this callback will be rendered. | |
staticRanges(DefinedRange, DateRangePicker) | Array | default preDefined ranges | - |
inputRanges(DefinedRange, DateRangePicker) | Array | default input ranges | - |
| ariaLabels | Object | {} | inserts aria-label to inner elements |
| dayContentRenderer | Function | null | Function to customize the rendering of Calendar Day. given a date is supposed to return what to render. |
*shape of range:
{
startDate: PropTypes.object,
endDate: PropTypes.object,
color: PropTypes.string,
key: PropTypes.string,
autoFocus: PropTypes.bool,
disabled: PropTypes.bool,
showDateDisplay: PropTypes.bool,
}
**shape of ariaLabels:
{
// The key of dateInput should be same as key in range.
dateInput: PropTypes.objectOf(
PropTypes.shape({
startDate: PropTypes.string,
endDate: PropTypes.string
})
),
monthPicker: PropTypes.string,
yearPicker: PropTypes.string,
prevButton: PropTypes.string,
nextButton: PropTypes.string,
}
To enable infinite scroll set scroll={{enabled: true}} basically. Infinite scroll feature is affected by direction(rendering direction for months) and months(for rendered months count) props directly.
If you prefer, you can overwrite calendar sizes with calendarWidth/calendarHeight or each month's height/withs with monthWidth/monthHeight/longMonthHeight at scroll prop.
// shape of scroll prop
scroll: {
enabled: PropTypes.bool,
monthHeight: PropTypes.number,
longMonthHeight: PropTypes.number, // some months has 1 more row than others
monthWidth: PropTypes.number, // just used when direction="horizontal"
calendarWidth: PropTypes.number, // defaults monthWidth * months
calendarHeight: PropTypes.number, // defaults monthHeight * months
}),
release/<new_version> and let Github Action handle publishingDownload counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
classnamesEnvironment{
"local_name": "classnames",
"alias": false,
"peer_metadata": null
} | ^2.2.6 | runtime |
prop-typesEnvironment{
"local_name": "prop-types",
"alias": false,
"peer_metadata": null
} | ^15.7.2 | runtime |
react-listEnvironment{
"local_name": "react-list",
"alias": false,
"peer_metadata": null
} | ^0.8.13 | runtime |
shallow-equalEnvironment{
"local_name": "shallow-equal",
"alias": false,
"peer_metadata": null
} | ^1.2.1 | runtime |
jestEnvironment{
"local_name": "jest",
"alias": false,
"peer_metadata": null
} | ^24.9.0 | development |
reactEnvironment{
"local_name": "react",
"alias": false,
"peer_metadata": null
} | ^16.12.0 | development |
enzymeEnvironment{
"local_name": "enzyme",
"alias": false,
"peer_metadata": null
} | ^3.11.0 | development |
eslintEnvironment{
"local_name": "eslint",
"alias": false,
"peer_metadata": null
} | ^6.8.0 | development |
precssEnvironment{
"local_name": "precss",
"alias": false,
"peer_metadata": null
} | ^4.0.0 | development |
postcssEnvironment{
"local_name": "postcss",
"alias": false,
"peer_metadata": null
} | ^7.0.25 | development |
webpackEnvironment{
"local_name": "webpack",
"alias": false,
"peer_metadata": null
} | ^4.41.5 | development |
date-fnsEnvironment{
"local_name": "date-fns",
"alias": false,
"peer_metadata": null
} | ^2.8.1 | development |
prettierEnvironment{
"local_name": "prettier",
"alias": false,
"peer_metadata": null
} | ^1.19.1 | development |
react-domEnvironment{
"local_name": "react-dom",
"alias": false,
"peer_metadata": null
} | ^16.12.0 | development |
@babel/cliEnvironment{
"local_name": "@babel/cli",
"alias": false,
"peer_metadata": null
} | ^7.7.7 | development |
css-loaderEnvironment{
"local_name": "css-loader",
"alias": false,
"peer_metadata": null
} | ^3.2.0 | development |
url-loaderEnvironment{
"local_name": "url-loader",
"alias": false,
"peer_metadata": null
} | ^3.0.0 | development |
@babel/coreEnvironment{
"local_name": "@babel/core",
"alias": false,
"peer_metadata": null
} | ^7.4.4 | development |
postcss-cliEnvironment{
"local_name": "postcss-cli",
"alias": false,
"peer_metadata": null
} | ^6.1.3 | development |
autoprefixerEnvironment{
"local_name": "autoprefixer",
"alias": false,
"peer_metadata": null
} | ^9.7.3 | development |
babel-eslintEnvironment{
"local_name": "babel-eslint",
"alias": false,
"peer_metadata": null
} | ^10.0.3 | development |
babel-loaderEnvironment{
"local_name": "babel-loader",
"alias": false,
"peer_metadata": null
} | ^8.0.6 | development |
style-loaderEnvironment{
"local_name": "style-loader",
"alias": false,
"peer_metadata": null
} | ^1.0.0 | development |
normalize.cssEnvironment{
"local_name": "normalize.css",
"alias": false,
"peer_metadata": null
} | ^8.0.1 | development |
enzyme-to-jsonEnvironment{
"local_name": "enzyme-to-json",
"alias": false,
"peer_metadata": null
} | ^3.4.3 | development |
postcss-importEnvironment{
"local_name": "postcss-import",
"alias": false,
"peer_metadata": null
} | ^12.0.1 | development |
postcss-loaderEnvironment{
"local_name": "postcss-loader",
"alias": false,
"peer_metadata": null
} | ^3.0.0 | development |
@babel/preset-envEnvironment{
"local_name": "@babel/preset-env",
"alias": false,
"peer_metadata": null
} | ^7.4.4 | development |
react-styleguidistEnvironment{
"local_name": "react-styleguidist",
"alias": false,
"peer_metadata": null
} | ^10.4.0 | development |
@babel/preset-reactEnvironment{
"local_name": "@babel/preset-react",
"alias": false,
"peer_metadata": null
} | ^7.7.4 | development |
eslint-plugin-reactEnvironment{
"local_name": "eslint-plugin-react",
"alias": false,
"peer_metadata": null
} | ^7.17.0 | development |
eslint-plugin-importEnvironment{
"local_name": "eslint-plugin-import",
"alias": false,
"peer_metadata": null
} | ^2.19.1 | development |
babel-plugin-date-fnsEnvironment{
"local_name": "babel-plugin-date-fns",
"alias": false,
"peer_metadata": null
} | ^2.0.0 | development |
eslint-config-prettierEnvironment{
"local_name": "eslint-config-prettier",
"alias": false,
"peer_metadata": null
} | ^6.7.0 | development |
eslint-plugin-jsx-a11yEnvironment{
"local_name": "eslint-plugin-jsx-a11y",
"alias": false,
"peer_metadata": null
} | ^6.2.3 | development |
eslint-plugin-prettierEnvironment{
"local_name": "eslint-plugin-prettier",
"alias": false,
"peer_metadata": null
} | ^3.1.2 | development |
enzyme-adapter-react-16Environment{
"local_name": "enzyme-adapter-react-16",
"alias": false,
"peer_metadata": null
} | ^1.15.2 | development |
@babel/plugin-proposal-class-propertiesEnvironment{
"local_name": "@babel/plugin-proposal-class-properties",
"alias": false,
"peer_metadata": null
} | ^7.5.5 | development |
@babel/plugin-proposal-export-default-fromEnvironment{
"local_name": "@babel/plugin-proposal-export-default-from",
"alias": false,
"peer_metadata": null
} | ^7.7.4 | development |
reactEnvironment{
"local_name": "react",
"alias": false,
"peer_metadata": null
} | ^0.14 || ^15.0.0-rc || >=15.0 | peer |
date-fnsEnvironment{
"local_name": "date-fns",
"alias": false,
"peer_metadata": null
} | 2.0.0-alpha.7 || >=2.0.0 | peer |
Source distribution
{
"shasum": "83a42d006389ea222dedecabe5337324744959f1",
"tarball": "https://registry.npmjs.org/605-react-date-range/-/605-react-date-range-1.4.2.tgz",
"fileCount": 92,
"integrity": "sha512-3gWFdAAmthVcpEMcn6MU4Kj4RThpSIo+Az8lVhAvCt/JyP7HlXCYzKdxJsQHrXaY8KL4Z6vDLUq1vmUoeJ2EZg==",
"signatures": [
{
"sig": "MEYCIQCTPixV7pbMJ/wWyT6h83ZUVXLOnP2niqE1sMW9X86/ywIhAMUKCVaA1xL38a0Jn2Wo9k/FAZj4iCngZgkW9dU7gIq7",
"keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"
}
],
"unpackedSize": 312762,
"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiIPMPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrKRRAAmT4U0EkxWtiSM7xMlC+4BagAMx/wdIgLb+3NeeaeASRem/yl\r\nWOMPUPJFw8liHtMXEYJ1kOOThFS/36cU4pRJsYwGd8N1kt4VIg/UyvxjEdhz\r\n7JjcVd153vo1jYh8quR+hvwD1C2sq5PNZjfbEvdWFFNHrjciKNjPvV9yvBM0\r\nkOkqHPvZ7iJR4thlZfHdwIFd+Kj2SjH1K/Rffz+r8j7Y25ru4WbE0v1efDgK\r\noEs9074Wxzc6hfKfrfovZWW261kv+9hxTkkl/pnIMMQnAiRN+2xs687BGzIN\r\n0Jlg1Pm33Z3uvwZfjHvsybE/my3wVOncnz8CKdrRlz0FHMikyQ8WYpxoA/2i\r\nyQ0q8wqQEefOHVBp/krtGNDs2q6UDD+GGgtyOKbUV1VyINtqPxGt8KBrBqpf\r\nOK6oN7zGWBvU2Bhe3JEbR27lLGrvKz3a7FyUgbJjJocmfui2s1cU59FoKmto\r\nsgDEFZi34zTCkVAT7HJl2ND2veHGh3WCuOFhuArbFcd27MJlhSFb6Q5ENl34\r\nP/qXzSC1+r1neSDs4N5lbfYGgOkVQ8LeVpWtvaY+S1bDK233Dz3kd+ZURIVg\r\nu6+jFCgfy6IUWRcEcTbkOk4jp2pYW/zV8+Z9+Dly3zNPqQARialxuOWTAbu2\r\nFoeLjdjQa7u7/B5MIMPQDTfH8Cq+zOENPfQ=\r\n=ooTh\r\n-----END PGP SIGNATURE-----\r\n"
}Shared repository data · GitHub
Observed since 20 Oct, 20:43 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:a5d09eb30c8ebef6a5e3d8c79bb5fa6d4d5c4d9701159ac0a02aab063aefeeac