date-range-picker-mui
Version:
A React date range picker implementation using @mui.
65 lines (62 loc) • 1.34 kB
text/typescript
import {
addDays,
addMonths,
addWeeks,
addYears,
endOfMonth,
endOfWeek,
endOfYear,
startOfMonth,
startOfWeek,
startOfYear,
} from 'date-fns';
// eslint-disable-next-line no-unused-vars
import {DefinedRange} from './types';
import {Locale} from "date-fns/locale";
export const getDefaultRanges = (date: Date, locale?: Locale): DefinedRange[] => [
{
label: 'Today',
startDate: date,
endDate: date,
},
{
label: 'Yesterday',
startDate: addDays(date, -1),
endDate: addDays(date, -1),
},
{
label: 'This Week',
startDate: startOfWeek(date, {locale}),
endDate: endOfWeek(date, {locale}),
},
{
label: 'Last Week',
startDate: startOfWeek(addWeeks(date, -1), {locale}),
endDate: endOfWeek(addWeeks(date, -1), {locale}),
},
{
label: 'Last 7 Days',
startDate: addWeeks(date, -1),
endDate: date,
},
{
label: 'This Month',
startDate: startOfMonth(date),
endDate: endOfMonth(date),
},
{
label: 'Last Month',
startDate: startOfMonth(addMonths(date, -1)),
endDate: endOfMonth(addMonths(date, -1)),
},
{
label: 'This Year',
startDate: startOfYear(date),
endDate: endOfYear(date),
},
{
label: 'Last Year',
startDate: startOfYear(addYears(date, -1)),
endDate: endOfYear(addYears(date, -1)),
},
];