Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
38 lines
No EOL
1.5 KiB
Text
38 lines
No EOL
1.5 KiB
Text
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.getNextMonth = getNextMonth;
|
|
/**
|
|
* Returns the next month the user can navigate to, based on the given options.
|
|
*
|
|
* The next month is not always the next calendar month:
|
|
*
|
|
* - If it is after the `calendarEndMonth`, it returns `undefined`.
|
|
* - If paged navigation is enabled, it skips forward by the number of displayed
|
|
* months.
|
|
*
|
|
* @param firstDisplayedMonth The first month currently displayed in the
|
|
* calendar.
|
|
* @param calendarEndMonth The latest month the user can navigate to.
|
|
* @param options Navigation options, including `numberOfMonths` and
|
|
* `pagedNavigation`.
|
|
* @param dateLib The date library to use for date manipulation.
|
|
* @returns The next month, or `undefined` if navigation is not possible.
|
|
*/
|
|
function getNextMonth(firstDisplayedMonth, calendarEndMonth, options, dateLib) {
|
|
if (options.disableNavigation) {
|
|
return undefined;
|
|
}
|
|
const { pagedNavigation, numberOfMonths = 1 } = options;
|
|
const { startOfMonth, addMonths, differenceInCalendarMonths } = dateLib;
|
|
const offset = pagedNavigation ? numberOfMonths : 1;
|
|
const month = startOfMonth(firstDisplayedMonth);
|
|
if (!calendarEndMonth) {
|
|
return addMonths(month, offset);
|
|
}
|
|
const monthsDiff = differenceInCalendarMonths(calendarEndMonth, firstDisplayedMonth);
|
|
if (monthsDiff < numberOfMonths) {
|
|
return undefined;
|
|
}
|
|
return addMonths(month, offset);
|
|
}
|
|
//# sourceMappingURL=getNextMonth.js.map |