diff --git a/frontend/ops_vue_js/package.json b/frontend/ops_vue_js/package.json index cb74f9a..169a818 100644 --- a/frontend/ops_vue_js/package.json +++ b/frontend/ops_vue_js/package.json @@ -1,6 +1,6 @@ { "name": "ops_vue_js", - "version": "1.5.7", + "version": "1.5.8", "private": true, "type": "module", "engines": { diff --git a/frontend/ops_vue_js/src/views/calendar/CalendarStream.vue b/frontend/ops_vue_js/src/views/calendar/CalendarStream.vue index 66a54be..cdf22b1 100644 --- a/frontend/ops_vue_js/src/views/calendar/CalendarStream.vue +++ b/frontend/ops_vue_js/src/views/calendar/CalendarStream.vue @@ -812,7 +812,6 @@ function handleDragEnd() { function goToToday() { generateInitialWeeks() lastEventsSnapshot = null - if (scrollContainerRef.value) scrollContainerRef.value.scrollTop = 0 const { start, end } = getLoadedRange() fetchEvents(start, end).then(() => scrollToToday()) } @@ -852,22 +851,16 @@ function applyTodayScroll() { const todayCell = container.querySelector(`.day-cell[data-date="${todayStr}"]`) if (!todayCell) return - const idx = weeks.value.findIndex(w => weekKey(w) === dateToStr(getWeekStart(new Date()))) - let desiredTop = idx > 0 - ? (weekLayouts.get(weekKey(weeks.value[idx - 1]))?.weekHeight ?? 90) - : 0 - const todayWeekEl = todayCell.closest('.week-row') - const prevSib = todayWeekEl?.previousElementSibling - if (prevSib?.classList.contains('month-separator')) { - desiredTop += prevSib.getBoundingClientRect().height + let targetEl = todayWeekEl?.previousElementSibling + if (targetEl && !targetEl.classList.contains('week-row')) { + targetEl = targetEl.previousElementSibling + } + if (targetEl && targetEl.classList.contains('week-row')) { + targetEl.scrollIntoView({ block: 'start' }) + } else { + todayCell.scrollIntoView({ block: 'start' }) } - - const contRect = container.getBoundingClientRect() - const cellRect = todayCell.getBoundingClientRect() - const currentTop = cellRect.top - contRect.top - - container.scrollTop += (currentTop - desiredTop) } function applyScrollToTitle(titleEl) {