diff --git a/VERSION b/VERSION index 8ac3c44..b98d1d3 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.3.4 +6.3.5 diff --git a/play-life-web/package.json b/play-life-web/package.json index 54f98de..00e8ad9 100644 --- a/play-life-web/package.json +++ b/play-life-web/package.json @@ -1,6 +1,6 @@ { "name": "play-life-web", - "version": "6.3.4", + "version": "6.3.5", "type": "module", "scripts": { "dev": "vite", diff --git a/play-life-web/src/App.jsx b/play-life-web/src/App.jsx index 960bc20..ceae6fa 100644 --- a/play-life-web/src/App.jsx +++ b/play-life-web/src/App.jsx @@ -160,15 +160,37 @@ function AppContent() { // Обновляем ref только после того, как authLoading стал false if (!authLoading) { const wasNotAuthenticated = prevIsAuthenticatedRef.current === false - prevIsAuthenticatedRef.current = isAuthenticated - + + // Обновляем ref только если инициализация завершена, + // чтобы не потерять переход false→true при ожидании isInitialized + if (isInitialized) { + prevIsAuthenticatedRef.current = isAuthenticated + } + // Проверяем, что это новая авторизация (переход с false на true) // и что инициализация уже завершена (чтобы не конфликтовать с восстановлением из URL/localStorage) if (wasNotAuthenticated && isAuthenticated && isInitialized) { + // Сбрасываем ошибки, кеш данных и состояние инициализации табов при повторной авторизации + setCurrentWeekError(null) + setFullStatisticsError(null) + setPrioritiesError(null) + setTasksError(null) + setTodayEntriesError(null) + setCurrentWeekData(null) + setFullStatisticsData(null) + setTasksData(null) + setTodayEntriesData(null) + // Сбрасываем инициализацию табов, чтобы данные загрузились заново + Object.keys(tabsInitializedRef.current).forEach(key => { + tabsInitializedRef.current[key] = false + }) + cacheRef.current = { current: null, full: null, tasks: null, todayEntries: null } + lastLoadedTabRef.current = null + // Переключаемся на экран прогресса только если нет таба в URL const urlParams = new URLSearchParams(window.location.search) const tabFromUrl = urlParams.get('tab') - + // Если в URL нет таба, переключаемся на current (экран прогресса) if (!tabFromUrl) { setActiveTab('current') @@ -276,6 +298,9 @@ function AppContent() { if (savedTab && validTabs.includes(savedTab) && mainTabs.includes(savedTab)) { setActiveTab(savedTab) setLoadedTabs(prev => ({ ...prev, [savedTab]: true })) + } else { + // Если нет сохранённого таба — активируем current по умолчанию + setLoadedTabs(prev => ({ ...prev, current: true })) } // Очищаем URL от параметров таба, если это основной таб if (tabFromUrl && mainTabs.includes(tabFromUrl)) {