improved functions with useCallback

This commit is contained in:
Bernt Christian Egeland 2021-12-11 10:46:06 +01:00
parent 86f54bb4ff
commit 4e5a368a97

View File

@ -99,25 +99,38 @@ const Calender = ({ onChange, calenderRef }) => {
setState((prev) => ({ ...prev, selectedDay: todayTimestamp, monthDetails: getMonthDetails(year, month) })); setState((prev) => ({ ...prev, selectedDay: todayTimestamp, monthDetails: getMonthDetails(year, month) }));
}, [year, month, getMonthDetails]); }, [year, month, getMonthDetails]);
const isCurrentDay = (day) => { const isCurrentDay = (day) => day.timestamp === todayTimestamp;
return day.timestamp === todayTimestamp;
};
const isSelectedRange = (day) => { const isSelectedRange = useCallback(
if (!state.timeRange.after || !state.timeRange.before) return; (day) => {
if (!state.timeRange.after || !state.timeRange.before) return;
return day.timestamp < state.timeRange.before && day.timestamp >= state.timeRange.after; return day.timestamp < state.timeRange.before && day.timestamp >= state.timeRange.after;
}; },
[state.timeRange]
);
const isFirstDayInRange = (day) => { const isFirstDayInRange = useCallback(
if (isCurrentDay(day)) return; (day) => {
return state.timeRange.after === day.timestamp; if (isCurrentDay(day)) return;
}; return state.timeRange.after === day.timestamp;
const isLastDayInRange = (day) => { },
return state.timeRange.before === new Date(day.timestamp).setHours(24, 0, 0, 0); [state.timeRange.after]
}; );
const getMonthStr = (month) => monthMap[Math.max(Math.min(11, month), 0)] || 'Month'; const isLastDayInRange = useCallback(
(day) => {
return state.timeRange.before === new Date(day.timestamp).setHours(24, 0, 0, 0);
},
[state.timeRange.before]
);
const getMonthStr = useCallback(
(month) => {
return monthMap[Math.max(Math.min(11, month), 0)] || 'Month';
},
[monthMap]
);
const onDateClick = (day) => { const onDateClick = (day) => {
const { before, after } = state.timeRange; const { before, after } = state.timeRange;
@ -155,17 +168,20 @@ const Calender = ({ onChange, calenderRef }) => {
} }
}; };
const setYear = (offset) => { const setYear = useCallback(
const year = state.year + offset; (offset) => {
const month = state.month; const year = state.year + offset;
setState((prev) => { const month = state.month;
return { setState((prev) => {
...prev, return {
year, ...prev,
monthDetails: getMonthDetails(year, month), year,
}; monthDetails: getMonthDetails(year, month),
}); };
}; });
},
[state.year, state.month, getMonthDetails]
);
const setMonth = (offset) => { const setMonth = (offset) => {
let year = state.year; let year = state.year;