Adding date range picker is an essential part of web applications when it comes to making a date selection or developing any kind of calendar component.
Today, we will try to explore the react 'react-date-range' package which is a handy react date library that allows us to choose date and date ranges.
Let's begin by installing the above mentioned package in our react app:
npm install --save react-date-range
Please note that the above package will expect the date-fns dependency in order to calculate days so we need to install the following also:
npm install --save react date-fns
After the necessary installations, create a separate component where you can add the date range code.
Following are the imports that will be required in our react-component:
import React, { useState } from "react"; import { addDays } from "date-fns"; import 'react-date-range/dist/styles.css'; // main style file import 'react-date-range/dist/theme/default.css'; // theme css file import { DateRangePicker } from 'react-date-range';
Now, we will use react useState hook to define the start_date, end_date and the key (selection of the dates)
const [state, setState] = useState([ { startDate: new Date(), endDate: addDays(new Date(), 7), key: "selection", }, ]);
Please note that we will use the addDays dependency to specify the start_date and end_date.
Now we can call DateRangePicker Component in the following manner:
<DateRangePicker onChange={(item) => setState([item.selection])} showSelectionPreview={true} moveRangeOnFirstSelection={false} months={2} ranges={state} direction="horizontal" />
This will show a nice daterange selection on our web page which is useful in multiple scenarios.
Complete code for this component is shown below:
import React, { useState } from "react"; import { addDays } from "date-fns"; import 'react-date-range/dist/styles.css'; // main style file import 'react-date-range/dist/theme/default.css'; // theme css file import { DateRangePicker } from 'react-date-range'; const DateRange = () => { const [state, setState] = useState([ { startDate: new Date(), endDate: addDays(new Date(), 7), key: "selection", }, ]); return ( <div> <h1>Safe Travels Co</h1> <h2>Book Your Flight below</h2> <DateRangePicker onChange={(item) => setState([item.selection])} showSelectionPreview={true} moveRangeOnFirstSelection={false} months={2} ranges={state} direction="horizontal" /> ; </div> ); }; export default DateRange;
Hope you guys enjoy reading the above article.
Happy coding...
Top comments (0)