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>
50 lines
No EOL
1.7 KiB
Text
50 lines
No EOL
1.7 KiB
Text
/**
|
|
* Returns the start and end months for calendar navigation.
|
|
*
|
|
* @param props The DayPicker props, including navigation and layout options.
|
|
* @param dateLib The date library to use for date manipulation.
|
|
* @returns A tuple containing the start and end months for navigation.
|
|
*/
|
|
export function getNavMonths(props, dateLib) {
|
|
let { startMonth, endMonth } = props;
|
|
const { startOfYear, startOfDay, startOfMonth, endOfMonth, addYears, endOfYear, newDate, today } = dateLib;
|
|
// Handle deprecated code
|
|
const { fromYear, toYear, fromMonth, toMonth } = props;
|
|
if (!startMonth && fromMonth) {
|
|
startMonth = fromMonth;
|
|
}
|
|
if (!startMonth && fromYear) {
|
|
startMonth = dateLib.newDate(fromYear, 0, 1);
|
|
}
|
|
if (!endMonth && toMonth) {
|
|
endMonth = toMonth;
|
|
}
|
|
if (!endMonth && toYear) {
|
|
endMonth = newDate(toYear, 11, 31);
|
|
}
|
|
const hasYearDropdown = props.captionLayout === "dropdown" ||
|
|
props.captionLayout === "dropdown-years";
|
|
if (startMonth) {
|
|
startMonth = startOfMonth(startMonth);
|
|
}
|
|
else if (fromYear) {
|
|
startMonth = newDate(fromYear, 0, 1);
|
|
}
|
|
else if (!startMonth && hasYearDropdown) {
|
|
startMonth = startOfYear(addYears(props.today ?? today(), -100));
|
|
}
|
|
if (endMonth) {
|
|
endMonth = endOfMonth(endMonth);
|
|
}
|
|
else if (toYear) {
|
|
endMonth = newDate(toYear, 11, 31);
|
|
}
|
|
else if (!endMonth && hasYearDropdown) {
|
|
endMonth = endOfYear(props.today ?? today());
|
|
}
|
|
return [
|
|
startMonth ? startOfDay(startMonth) : startMonth,
|
|
endMonth ? startOfDay(endMonth) : endMonth
|
|
];
|
|
}
|
|
//# sourceMappingURL=getNavMonth.js.map |