<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/17.0.2/umd/react.development.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.2/umd/react-dom.development.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.26.0/babel.min.js"></script>
<script type="text/babel">
const { useState } = React;
{ id: 1, date: '2023-09-10', description: 'Event 1' },
{ id: 2, date: '2023-09-15', description: 'Event 2' },
{ id: 3, date: '2023-09-20', description: 'Event 3' },
{ id: 4, date: '2023-09-25', description: 'Event 4' },
{ id: 5, date: '2023-09-28', description: 'Event 5' },
{ id: 6, date: '2023-10-05', description: 'Event 6' },
{ id: 7, date: '2023-10-12', description: 'Event 7' },
{ id: 8, date: '2023-10-18', description: 'Event 8' },
{ id: 9, date: '2023-10-24', description: 'Event 9' },
{ id: 10, date: '2023-11-02', description: 'Event 10' },
// Add more events as needed
const [dateRange, setDateRange] = useState({ start: null, end: null });
const handleDateChange = (event, key) => {
const newDate = new Date(event.target.value);
setDateRange((prev) => ({ ...prev, [key]: newDate }));
const filteredData = demoData.filter((item) => {
const itemDate = new Date(item.date);
return (!dateRange.start || itemDate >= dateRange.start) && (!dateRange.end || itemDate <= dateRange.end);
<div className='container'>
<h3 className='header'>React Js Filter Data by Date Range</h3>
<label className='start-date-label'>Start Date:</label>
<input type="date" className='start-date-input' onChange={(e) => handleDateChange(e, 'start')} />
<label className='end-date-label'>End Date:</label>
<input type="date" className='end-date-input' onChange={(e) => handleDateChange(e, 'end')} />
<div className='data-container'>
{filteredData.length === 0 ? (
<p className='no-data-message'>No data available for the selected date range.</p>
filteredData.map((item) => (
<div key={item.id} className='data-item'>
<p className='data-date'>Date: {item.date}</p>
<p className='data-description'>Description: {item.description}</p>
<hr className='data-divider' />
ReactDOM.render(<App />, document.getElementById("app"));
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1);
border-top: 1px solid #ccc;