Duffer Derek
import React from "react"; // Make sure to import React
import {
addDays,
endOfDay,
format,
sub,
subWeeks,
startOfISOWeek,
} from "date-fns";
import { useDataContext } from "../hooks/useDataContext";
const DateRangeSelectionHandle = ({ selectedOption }) => {
const { filters, dispatch } = useDataContext();
const today = new Date(); // Define 'today' variable here
const DAYS_IN_TWO_WEEKS = endOfDay(addDays(today, 13));
const DAYS_IN_ONE_MONTH = endOfDay(addDays(today, 29));
const formattedToday = today.toISOString();
const getStartOfWeek = (date) => {
return addDays(date, 1 - date.getDay());
};
const getEndOfWeek = (date) => {
return addDays(date, 7 - date.getDay());
};
const setFilterPayload = (startDate, endDate) => {
dispatch({
type: "SET_FILTERS",
payload: {
...filters,
startDate,
endDate,
selectedFilter: selectedOption,
getSelectedMonth: null,
getSelectedYear: null,
getSelectedWeekNumbers: null,
},
});
};
switch (selectedOption) {
case "this_week":
const startOfWeek = format(getStartOfWeek(today), "MMMM dd yyyy");
const endOfWeek = format(getEndOfWeek(today), "MMMM dd yyyy");
setFilterPayload(startOfWeek, endOfWeek);
break;
case "next_14_days":
setFilterPayload(today, DAYS_IN_TWO_WEEKS);
break;
case "next_30_days":
setFilterPayload(today, DAYS_IN_ONE_MONTH);
break;
case "last_week":
setFilterPayload(
getStartOfWeek(sub(new Date(), { weeks: 1 })),
getEndOfWeek(sub(new Date(), { weeks: 1 }))
);
break;
case "last_14_days":
setFilterPayload(sub(today, { days: 14 }), sub(new Date(), { days: 1 }));
break;
case "last_30_days":
setFilterPayload(sub(today, { days: 30 }), sub(new Date(), { days: 1 }));
break;
case "clear":
setFilterPayload(
startOfISOWeek(subWeeks(new Date(), 5)),
addDays(new Date(), 90)
);
break;
default:
}
};
export default DateRangeSelectionHandle;
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists