Fix wrong year used for calendar week 1
Some checks failed
Tests and checks on push / run-checks-and-tests (push) Has been cancelled
Updates translation progress / update-translation-progress-issue (push) Has been cancelled

This commit is contained in:
Kalle
2024-12-30 21:37:23 +02:00
parent c2f1896b48
commit b4974baf84
2 changed files with 15 additions and 1 deletions

View File

@@ -25,6 +25,7 @@ import { joinListToNaturalString } from "~/utils/arrays";
import {
databaseTimestampToDate,
dateToThisWeeksMonday,
dateToThisWeeksSunday,
dateToWeekNumber,
dayToWeekStartsAtMondayDay,
getWeekStartsAtMondayDay,
@@ -116,6 +117,7 @@ export const loader = async ({ request }: LoaderFunctionArgs) => {
});
const mondayDate = dateToThisWeeksMonday(new Date());
const sundayDate = dateToThisWeeksSunday(new Date());
const currentWeek = dateToWeekNumber(mondayDate);
const displayedWeek = parsedWeekParams.success
@@ -123,7 +125,9 @@ export const loader = async ({ request }: LoaderFunctionArgs) => {
: currentWeek;
const displayedYear = parsedWeekParams.success
? parsedWeekParams.data.year
: mondayDate.getFullYear();
: currentWeek === 1 // handle first week of the year special case
? sundayDate.getFullYear()
: mondayDate.getFullYear();
const tagsToFilterBy = parsedFilterParams.success
? (parsedFilterParams.data.tags as PersistedCalendarEventTag[])
: [];

View File

@@ -32,6 +32,16 @@ export function dateToThisWeeksMonday(date: Date) {
return copiedDate;
}
export function dateToThisWeeksSunday(date: Date) {
const copiedDate = new Date(date.getTime());
while (copiedDate.getDay() !== 0) {
copiedDate.setDate(copiedDate.getDate() + 1);
}
return copiedDate;
}
export function getWeekStartsAtMondayDay(date: Date) {
const currentDay = date.getDay();