6.3.5: Фикс пустого таба и ошибки после авторизации
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m6s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m6s
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "play-life-web",
|
"name": "play-life-web",
|
||||||
"version": "6.3.4",
|
"version": "6.3.5",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -160,11 +160,33 @@ function AppContent() {
|
|||||||
// Обновляем ref только после того, как authLoading стал false
|
// Обновляем ref только после того, как authLoading стал false
|
||||||
if (!authLoading) {
|
if (!authLoading) {
|
||||||
const wasNotAuthenticated = prevIsAuthenticatedRef.current === false
|
const wasNotAuthenticated = prevIsAuthenticatedRef.current === false
|
||||||
prevIsAuthenticatedRef.current = isAuthenticated
|
|
||||||
|
// Обновляем ref только если инициализация завершена,
|
||||||
|
// чтобы не потерять переход false→true при ожидании isInitialized
|
||||||
|
if (isInitialized) {
|
||||||
|
prevIsAuthenticatedRef.current = isAuthenticated
|
||||||
|
}
|
||||||
|
|
||||||
// Проверяем, что это новая авторизация (переход с false на true)
|
// Проверяем, что это новая авторизация (переход с false на true)
|
||||||
// и что инициализация уже завершена (чтобы не конфликтовать с восстановлением из URL/localStorage)
|
// и что инициализация уже завершена (чтобы не конфликтовать с восстановлением из URL/localStorage)
|
||||||
if (wasNotAuthenticated && isAuthenticated && isInitialized) {
|
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
|
// Переключаемся на экран прогресса только если нет таба в URL
|
||||||
const urlParams = new URLSearchParams(window.location.search)
|
const urlParams = new URLSearchParams(window.location.search)
|
||||||
const tabFromUrl = urlParams.get('tab')
|
const tabFromUrl = urlParams.get('tab')
|
||||||
@@ -276,6 +298,9 @@ function AppContent() {
|
|||||||
if (savedTab && validTabs.includes(savedTab) && mainTabs.includes(savedTab)) {
|
if (savedTab && validTabs.includes(savedTab) && mainTabs.includes(savedTab)) {
|
||||||
setActiveTab(savedTab)
|
setActiveTab(savedTab)
|
||||||
setLoadedTabs(prev => ({ ...prev, [savedTab]: true }))
|
setLoadedTabs(prev => ({ ...prev, [savedTab]: true }))
|
||||||
|
} else {
|
||||||
|
// Если нет сохранённого таба — активируем current по умолчанию
|
||||||
|
setLoadedTabs(prev => ({ ...prev, current: true }))
|
||||||
}
|
}
|
||||||
// Очищаем URL от параметров таба, если это основной таб
|
// Очищаем URL от параметров таба, если это основной таб
|
||||||
if (tabFromUrl && mainTabs.includes(tabFromUrl)) {
|
if (tabFromUrl && mainTabs.includes(tabFromUrl)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user