update
This commit is contained in:
@@ -1732,12 +1732,36 @@ export default function Kalender() {
|
||||
setCalLoading(true);
|
||||
setCalError(null);
|
||||
try {
|
||||
const firstDay = new Date(viewMonth.year, viewMonth.month, 1);
|
||||
const dayOfWeek = (firstDay.getDay() + 6) % 7;
|
||||
const gridStart = new Date(firstDay);
|
||||
gridStart.setDate(gridStart.getDate() - dayOfWeek);
|
||||
const gridEnd = new Date(gridStart);
|
||||
gridEnd.setDate(gridStart.getDate() + 41);
|
||||
let gridStart: Date;
|
||||
let gridEnd: Date;
|
||||
|
||||
if (viewMode === 'day') {
|
||||
// Fetch the full month containing currentDate (plus padding)
|
||||
const monthStart = startOfMonth(currentDate);
|
||||
const dayOfWeek = (monthStart.getDay() + 6) % 7;
|
||||
gridStart = subDays(monthStart, dayOfWeek);
|
||||
gridEnd = addDays(gridStart, 41);
|
||||
} else if (viewMode === 'week') {
|
||||
// Fetch the month containing the current week
|
||||
const weekStart = startOfWeek(currentDate, { weekStartsOn: 1 });
|
||||
const weekEnd = endOfWeek(currentDate, { weekStartsOn: 1 });
|
||||
const monthStart = startOfMonth(weekStart);
|
||||
const monthEnd = endOfMonth(weekEnd);
|
||||
gridStart = subDays(monthStart, 7);
|
||||
gridEnd = addDays(monthEnd, 7);
|
||||
} else if (viewMode === 'list') {
|
||||
// Fetch from listFrom to listTo, with padding
|
||||
gridStart = subDays(parseISO(listFrom), 1);
|
||||
gridEnd = addDays(parseISO(listTo), 1);
|
||||
} else {
|
||||
// Month view: 42-day grid based on viewMonth
|
||||
const firstDay = new Date(viewMonth.year, viewMonth.month, 1);
|
||||
const dayOfWeek = (firstDay.getDay() + 6) % 7;
|
||||
gridStart = new Date(firstDay);
|
||||
gridStart.setDate(gridStart.getDate() - dayOfWeek);
|
||||
gridEnd = new Date(gridStart);
|
||||
gridEnd.setDate(gridStart.getDate() + 41);
|
||||
}
|
||||
|
||||
const [trainData, eventData] = await Promise.all([
|
||||
trainingApi.getCalendarRange(gridStart, gridEnd),
|
||||
@@ -1750,7 +1774,7 @@ export default function Kalender() {
|
||||
} finally {
|
||||
setCalLoading(false);
|
||||
}
|
||||
}, [viewMonth]);
|
||||
}, [viewMonth, viewMode, currentDate, listFrom, listTo]);
|
||||
|
||||
// Load kategorien + groups once
|
||||
useEffect(() => {
|
||||
|
||||
Reference in New Issue
Block a user