diff --git a/VERSION b/VERSION index 902f6a6..59af327 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.19.6 +6.19.7 diff --git a/play-life-web/package.json b/play-life-web/package.json index a9290fd..0f32759 100644 --- a/play-life-web/package.json +++ b/play-life-web/package.json @@ -1,6 +1,6 @@ { "name": "play-life-web", - "version": "6.19.6", + "version": "6.19.7", "type": "module", "scripts": { "dev": "vite", diff --git a/play-life-web/src/App.jsx b/play-life-web/src/App.jsx index 960356e..f5416b4 100644 --- a/play-life-web/src/App.jsx +++ b/play-life-web/src/App.jsx @@ -677,6 +677,8 @@ function AppContent() { // Refs для отслеживания активного таба const prevActiveTabRef = useRef(null) const lastLoadedTabRef = useRef(null) // Отслеживаем последний загруженный таб, чтобы избежать двойной загрузки + const fullStatisticsScrollRef = useRef(null) + const lastFullProjectRef = useRef(selectedProject) // Обновляем ref при изменении данных useEffect(() => { @@ -1102,11 +1104,15 @@ function AppContent() { lastLoadedTabRef.current = tabKey const projectName = activeTab === 'full' ? selectedProject : null loadTabData(activeTab, false, projectName) + if (activeTab === 'full') lastFullProjectRef.current = selectedProject } else if (isReturningToTab) { - // Возврат на таб - фоновая загрузка + // Возврат на таб lastLoadedTabRef.current = tabKey const projectName = activeTab === 'full' ? selectedProject : null - loadTabData(activeTab, true, projectName) + // Если проект изменился - загрузка с индикатором, иначе фоновая + const isBackground = activeTab === 'full' && lastFullProjectRef.current !== selectedProject ? false : true + loadTabData(activeTab, isBackground, projectName) + if (activeTab === 'full') lastFullProjectRef.current = selectedProject } prevActiveTabRef.current = activeTab @@ -1128,6 +1134,13 @@ function AppContent() { const isAnyLoading = currentWeekLoading || fullStatisticsLoading || prioritiesLoading || isRefreshing const hasAnyError = currentWeekError || fullStatisticsError || prioritiesError + // Сбрасываем скролл экрана статистики при его открытии + useEffect(() => { + if (activeTab === 'full' && fullStatisticsScrollRef.current) { + fullStatisticsScrollRef.current.scrollTop = 0 + } + }, [activeTab]) + // Сохраняем выбранный таб, чтобы восстановить его после перезагрузки useEffect(() => { try { @@ -1238,7 +1251,7 @@ function AppContent() { )} {loadedTabs.full && ( -