react-native-full-calendars
Version:
React Native Full Calendar (RNFC) is an intuitive and powerful calendar component library designed for React Native.
55 lines (54 loc) • 2.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isSameStartOfWeek = exports.isSameStartOfMonth = exports.isLastWeekOfMonth = exports.getWeeksInMonth = exports.getIterableDateBetweenDates = exports.getDaysRemaining = void 0;
var _dateFns = require("date-fns");
const getWeeksInMonth = date => {
const startWeek = (0, _dateFns.startOfWeek)((0, _dateFns.startOfMonth)(date));
const endWeek = (0, _dateFns.endOfWeek)((0, _dateFns.endOfMonth)(date));
const weeksInMonth = (0, _dateFns.differenceInWeeks)(endWeek, startWeek) + 1;
return weeksInMonth;
};
exports.getWeeksInMonth = getWeeksInMonth;
const isLastWeekOfMonth = date => {
const lastDayOfMonth = (0, _dateFns.endOfMonth)(date);
const startOfLastWeek = (0, _dateFns.startOfWeek)(lastDayOfMonth);
return (0, _dateFns.isSameDay)(date, startOfLastWeek) || (0, _dateFns.isAfter)(date, startOfLastWeek);
};
exports.isLastWeekOfMonth = isLastWeekOfMonth;
const isSameStartOfWeek = (date, {
weekStartDay
}) => {
const startOfTheWeek = (0, _dateFns.startOfWeek)(date, {
weekStartsOn: weekStartDay
});
return (0, _dateFns.isSameDay)(date, startOfTheWeek);
};
exports.isSameStartOfWeek = isSameStartOfWeek;
const isSameStartOfMonth = date => {
const startOfTheMonth = (0, _dateFns.startOfMonth)(date);
return (0, _dateFns.isSameDay)(date, startOfTheMonth);
};
exports.isSameStartOfMonth = isSameStartOfMonth;
const getIterableDateBetweenDates = (startDate, endDate) => {
const dates = [];
let currDate = startDate;
while ((0, _dateFns.isWithinInterval)(currDate, {
start: startDate,
end: endDate
})) {
dates.push((0, _dateFns.format)(currDate, 'yyyy-MM-dd'));
currDate = (0, _dateFns.addDays)(currDate, 1);
}
return dates;
};
exports.getIterableDateBetweenDates = getIterableDateBetweenDates;
const getDaysRemaining = date => {
if (isLastWeekOfMonth(date)) {
return (0, _dateFns.differenceInCalendarDays)((0, _dateFns.endOfMonth)(date), date) + 1;
}
return (0, _dateFns.differenceInCalendarDays)((0, _dateFns.endOfWeek)(date), date) + 1;
};
exports.getDaysRemaining = getDaysRemaining;
//# sourceMappingURL=date.js.map